Mark H Weaver <[email protected]> writes: > I can confirm that the problem does not occur on Debian, and I've not > found reports of it happening on any other mainstream distro. I would > guess that our unusual filesystem layout prevents GNOME Shell from > finding something that it's looking for, and that the error handling in > that case is deficient or non-existent.
Hi,
I think I understand what's going on, and I may even have a solution ;-)
What's happening is that gnome-shell wants certain cursors, but can't
find them. These cursors are provided by Adwaita icon theme, but
gnome-shell somehow isn't looking in Adwaita's location (unless you
symlink adwaita's icons into ${HOME}/.icons as I mentioned before).
I've attached an strace from gnome-shell, the relevant part is here:
open("/home/thomas/.icons/Adwaita/cursors/dnd-none", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/home/thomas/.icons/Adwaita/index.theme", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/gnu/store/14f4vh3y3wdf3rfpzkpqfqbl9i81hyw8-libxcursor-1.1.14/share/icons/Adwaita/cursors/dnd-none",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/gnu/store/14f4vh3y3wdf3rfpzkpqfqbl9i81hyw8-libxcursor-1.1.14/share/icons/Adwaita/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/gnu/store/14f4vh3y3wdf3rfpzkpqfqbl9i81hyw8-libxcursor-1.1.14/share/pixmaps/Adwaita/cursors/dnd-none",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/gnu/store/14f4vh3y3wdf3rfpzkpqfqbl9i81hyw8-libxcursor-1.1.14/share/pixmaps/Adwaita/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/thomas/.icons/default/cursors/dnd-none", O_RDONLY) = -1
ENOENT (No such file or directory)
[...]
--- SIGTRAP {si_signo=SIGTRAP, si_code=SI_KERNEL} ---
+++ killed by SIGTRAP +++
I've been looking through the sources, and
gtk+-3.22.15/gdk/x11/gdkcursor-x11.c makes me think that cursor lookup
in our case is ultimately done by libxcursor.
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'll go and test this, but building everything from libxcursor up to
gnome-desktop
will probably take a while :).
Comments are welcome!
Thomas
gnomeshell.log
Description: strace from gnome-shell
