bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24445: GNOME desktop session crash when re-arranging dock


From: Ludovic Courtès
Subject: bug#24445: GNOME desktop session crash when re-arranging dock
Date: Sun, 08 Oct 2017 17:08:58 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Hello!

Thomas Danckaert <address@hidden> skribis:

> libxcursor's configure script has an option "--with-cursorpath=<paths>"
> to set a default search path for cursors.  If no option is given (as is
> the case with our package), the default is
> DEF_CURSORPATH="~/.icons:${datadir}/icons:${datadir}/pixmaps", which is
> exactly the set of directories in the strace (${HOME}/.icons and
> ${INSTALLPREFIX}/share/icons).
>
> So I guess that adding relevant directories to the libxcursor search
> path would solve the problem.  For Guix, it'd be useful to add
> /run/current-system/profile/share/icons, as well as
> ~/.guix-profile/share/icons (for users installing other icon themes in
> their profile).  Would this be ok?

I think that’d be OK.

Though libXcursor contains a few ‘getenv’ calls, notably for
XCURSOR_PATH, which looks like it’s what we’re looking for.

I tested the attached path in a VM and it seems to fix the bug: I can
drag a window in the overview area on the right and it no longer crashes
(*and* I get a hand-shaped cursor when hovering that area :-)).  And we
don’t need to modify libXcursor.

(We could do slightly better by using the absolute file name of the
actual icon theme instead of /run/current-system, but it’s complicated
because I guess it doesn’t have to be Adwaita.)

Thoughts?

Ludo’.

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 527a3101c..4633f0fc6 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -791,7 +791,11 @@ accountsservice web site} for more information."
                                       gnome-package))
           (service-extension profile-service-type
                              (compose list
-                                      gnome-package))))))
+                                      gnome-package))
+          (service-extension session-environment-service-type
+                             (const
+                              '(("XCURSOR_PATH"
+                                 . 
"/run/current-system/profile/share/icons"))))))))
 
 (define* (gnome-desktop-service #:key (config (gnome-desktop-configuration)))
   "Return a service that adds the @code{gnome} package to the system profile,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]