Hi! Leo Prikler <leo.prik...@student.tugraz.at> skribis:
> Am Dienstag, den 03.11.2020, 23:46 +0100 schrieb Ludovic Courtès: >> Ludovic Courtès <l...@gnu.org> skribis: >> >> > This is not news to us, but as >> > <https://distrowatch.com/weekly.php?issue=20190624#guixsd> notes, >> > the >> > application menu of desktop environments is not automatically >> > updated >> > when a package is installed or removed. It’d be great if we could >> > somehow notify the desktop environment. >> >> We’ve investigated today on IRC with Maxim and Leo P. and here’s the >> summary of our findings: > Seeing my name thrown around more and more lately makes me blush a > little. Heheh, you provided useful hints! >> The GLib patch below is an attempt to monitor ~/.guix-profile and to >> treat changes to that symlink as if they were changes to >> ~/.guix-profile/share/applications (which contains ‘.desktop’ files.) >> It actually builds but I haven’t tested it yet. :-) >> >> WDYT? > Not having tested it either, I think that we should also listen on > /run/current-system/ (if it exists), so that changes to the system as > done by `reconfigure` are picked up. This includes most importantly > changes to the GNOME ecosystem itself. Like I wrote in the related bug, I think /run/current-system is less important because it typically doesn’t change much: https://issues.guix.gnu.org/35594#6 But I guess I’m also being a bit lazy… Anyhow, I’ve tested the patch in ‘guix system vm gnu/system/examples/desktop.tmpl’, with a ‘glib’ replacement as shown below. I strace’d the user’s gnome-shell and ran: ln -s /run/current-system/profile ~/.guix-profile The trace showed that this led gnome-shell to traverse files in ~/.guix-profile/share (not just the applications/ sub-directory.) I wanted to test ‘guix install’ for real, which meant doing it on ‘guix system vm-image’, but that took too long; so I tried ‘disk-image -t qcow2’ instead but partition.img.drv fails. So I haven’t been able to actually test with ‘guix install’. Anyway, here’s the Guix patch. You need to drop the GLib patch in the right place. Thanks, Ludo’.
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index bba9461d44..1c0de6eaed 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -181,6 +181,7 @@ shared NFS home directories.") (package (name "glib") (version "2.62.6") + (replacement glib-with-gio-patch) (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -387,6 +388,14 @@ dynamic loading, and an object system.") (home-page "https://developer.gnome.org/glib/") (license license:lgpl2.1+))) +(define glib-with-gio-patch + (package + (inherit glib) + (source (origin + (inherit (package-source glib)) + (patches (append (search-patches "glib-appinfo-watch.patch") + (origin-patches (package-source glib)))))))) + (define-public glib-with-documentation ;; glib's doc must be built in a separate package since it requires gtk-doc, ;; which in turn depends on glib. diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 716b9feb8d..4797111c67 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -4,7 +4,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop xorg) -(use-package-modules certs gnome) +(use-package-modules certs gnome linux) (operating-system (host-name "antelope") @@ -57,7 +57,8 @@ ;; for HTTPS access nss-certs ;; for user mounts - gvfs) + gvfs + strace) %base-packages)) ;; Add GNOME and Xfce---we can choose at the log-in screen @@ -65,7 +66,6 @@ ;; include the X11 log-in service, networking with ;; NetworkManager, and more. (services (append (list (service gnome-desktop-service-type) - (service xfce-desktop-service-type) (set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout))))