diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-05-09 23:40:34 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-05-10 10:18:19 -0400 |
commit | 945ad48cd8029fa77a643e00c7fd350e98cacca0 (patch) | |
tree | 0ef4de6039c24e7c4ec7ddef68e337398a7c0035 /gnu | |
parent | 3a0fcaa0fe721792d1543e863c3fba805376bdac (diff) | |
download | guix-945ad48cd8029fa77a643e00c7fd350e98cacca0.tar.gz guix-945ad48cd8029fa77a643e00c7fd350e98cacca0.zip |
system: vm-image.tmpl: Add a crutch to allow refreshing the resolution.
Inspired by
https://github.com/jollheef/appvm/commit/1270b2e209bc002e69bbe6351ad5b04b7facfcc8.
The price to pay is about 5% of a CPU core usage in the guest in the worst
scenario.
* gnu/system/examples/vm-image.tmpl
(auto-update-resolution-crutch): New mcron job.
[services]: Extend the mcron-service with it.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/system/examples/vm-image.tmpl | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl index 1a2dfca452..697019e877 100644 --- a/gnu/system/examples/vm-image.tmpl +++ b/gnu/system/examples/vm-image.tmpl @@ -5,7 +5,7 @@ ;; (use-modules (gnu) (guix) (srfi srfi-1)) -(use-service-modules desktop networking spice ssh xorg) +(use-service-modules desktop mcron networking spice ssh xorg) (use-package-modules bootloaders certs fonts nvi package-management wget xorg) @@ -24,6 +24,18 @@ Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation. accounts.\x1b[0m ")) +;;; XXX: Xfce does not implement what is needed for the SPICE dynamic +;;; resolution to work (see: +;;; https://gitlab.xfce.org/xfce/xfce4-settings/-/issues/142). Workaround it +;;; by manually invoking xrandr every second. +(define auto-update-resolution-crutch + #~(job '(next-second) + (lambda () + (setenv "DISPLAY" ":0.0") + (setenv "XAUTHORITY" "/home/guest/.Xauthority") + (execl (string-append #$xrandr "/bin/xrandr") "xrandr" "-s" "0")) + #:user "guest")) + (operating-system (host-name "gnu") (timezone "Etc/UTC") @@ -89,6 +101,9 @@ root ALL=(ALL) ALL ;; integration with the host, etc. (service spice-vdagent-service-type) + (simple-service 'cron-jobs mcron-service-type + (list auto-update-resolution-crutch)) + ;; Use the DHCP client service rather than NetworkManager. (service dhcp-client-service-type)) |