system: vm-image.tmpl: Add a crutch to allow refreshing the resolution.
Inspired by
1270b2e209
.
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.
master
parent
3a0fcaa0fe
commit
945ad48cd8
|
@ -5,7 +5,7 @@
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(use-modules (gnu) (guix) (srfi srfi-1))
|
(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
|
(use-package-modules bootloaders certs fonts nvi
|
||||||
package-management wget xorg)
|
package-management wget xorg)
|
||||||
|
|
||||||
|
@ -24,6 +24,18 @@ Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation.
|
||||||
accounts.\x1b[0m
|
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
|
(operating-system
|
||||||
(host-name "gnu")
|
(host-name "gnu")
|
||||||
(timezone "Etc/UTC")
|
(timezone "Etc/UTC")
|
||||||
|
@ -89,6 +101,9 @@ root ALL=(ALL) ALL
|
||||||
;; integration with the host, etc.
|
;; integration with the host, etc.
|
||||||
(service spice-vdagent-service-type)
|
(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.
|
;; Use the DHCP client service rather than NetworkManager.
|
||||||
(service dhcp-client-service-type))
|
(service dhcp-client-service-type))
|
||||||
|
|
||||||
|
|
Reference in New Issue