Emacs cursor theme is not inherited from the OS when using foreign Guix

  • Done
  • quality assurance status badge
Details
2 participants
  • Liliana Marie Prikler
  • John Hamelink
Owner
unassigned
Submitted by
John Hamelink
Severity
normal
J
J
John Hamelink wrote on 20 Jan 2022 01:03
(address . bug-guix@gnu.org)
87r193xnd6.fsf@johnhame.link
Hi there,

I'm experiencing an issue with the emacs-next package on my Guix
foreign setup where the cursor (*not* Emacs point) is very dark. It's
perfectly legible against the default Emacs theme, but nonetheless it
is not respecting the settings of the rest of my system. To make
things worse, I'm currently using (and enjoying!) the modus-vivendi
theme.

My host machine is running Arch GNU/Linux with a tiling window
manager. I set my cursor style using xsetroot like so:

xsetoot -xcf /usr/share/icons/Adwaita/cursors/left_ptr 16

I tried installing the adwaita-icon-theme, gnome-themes-standard, and
gnome-themes-extra packages in an attempt at installing the correct
theme, but that didn't help.

I'm not entirely sure what the issue is, but after speaking with some
folks at #guix, it was suggested to me that this may in fact be a
bug. The other option discussed is that Guix needs its own cursor
settings, but I'm too early on in my journey with Guix (maybe 2 hours
of experience using the Guix binary) to know how set that up - if that
is indeed the case, some pointers on what to read would be very warmly
received!

I'm also not entirely sure what to provide to help debug, so I thought
I'd start off by showing my channels and packages, so that my setup
can be replicated? I hope that is helpful. I've also attached a
screenshot showing the difference while using the
"leuven" theme so there is enough contrast.

Thank you for reading,
JH

---

My channels:

,----
| ;; This channel file can be passed to 'guix pull -C' or to
| ;; 'guix time-machine -C' to obtain the Guix revision that was
| ;; used to populate this profile.
|
| (list
| (channel
| (name 'guix)
| (branch "master")
| (commit
| "b2f6b6f6b9df6bcc24794238e7e97357470af95d")
| (introduction
| (make-channel-introduction
| "9edb3f66fd807b096b48283debdcddccfea34bad"
| (openpgp-fingerprint
| "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
`----

---

My manifest:

,----
| ;; This "manifest" file can be passed to 'guix package -m' to reproduce
| ;; the content of your profile. This is "symbolic": it only specifies
| ;; package names. To reproduce the exact same profile, you also need to
| ;; capture the channels being used, as returned by "guix describe".
| ;; See the "Replicating Guix" section in the manual.
|
| (specifications->manifest
| (list "gnome-themes-extra"
| "gnome-themes-standard"
| "adwaita-icon-theme"
| "guix"
| "guile"
| "font-ghostscript"
| "nss-certs"
| "fontconfig"
| "font-gnu-freefont"
| "font-dejavu"
| "glibc-locales"
| "vdirsyncer"
| "emacs-elfeed"
| "emacs-undo-tree"
| "emacs-dash"
| "emacs-treepy"
| "emacs-fsm"
| "emacs-guix"
| "emacs-next"
| "xcursor-themes"
| "emacs-evil"
| "emacs-evil-collection"
| "emacs-bluetooth"
| "emacs-mpdel"
| "emacs-elfeed-org"
| "emacs-vterm"
| "emacs-mu4e-alert"
| "mu"
| "emacs-writeroom"
| "emacs-evil-org"
| "emacs-org-super-agenda"
| "emacs-yasnippet-snippets"
| "emacs-yasnippet"
| "emacs-yaml-mode"
| "emacs-rustic"
| "emacs-php-mode"
| "emacs-eglot"
| "emacs-go-mode"
| "emacs-flycheck"
| "emacs-elixir-mode"
| "emacs-macrostep"
| "emacs-bug-hunter"
| "emacs-editorconfig"
| "emacs-dockerfile-mode"
| "emacs-magit"
| "emacs-forge"
| "emacs-excorporate"
| "emacs-corfu"
| "emacs-pcre2el"
| "emacs-embark"
| "emacs-orderless"
| "emacs-marginalia"
| "emacs-vertico"
| "emacs-consult"
| "emacs-doom-modeline"
| "emacs-all-the-icons"
| "emacs-solaire-mode"
| "emacs-helpful"
| "emacs-general"
| "emacs-which-key"
| "emacs-no-littering"))
`----
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEE+Yt/N+nvP8wO2AcVFT3f6aVKmkwFAmHorHURHG1lQGpvaG5o
YW1lLmxpbmsACgkQFT3f6aVKmkwP9RAAjcdBRB5df3BY50z1uVUpQ8WZt7GR6BxR
1qUYXOkoWBvdhhRnbMsh2a6Fpy1WFUgYUFji+bxPQ+EfBhBxBrVb1vDt9CffeNjW
4HXKm9/jeHGNHsg0iIAu6l2AKY3B2JTKz10EOISBdC6VsM2P8TPMdiR2TZZLBXOQ
BvtURfpiPxEndS2DtSf8d0GvB9QRtWNpDqzjR9dmfsq2U3jYPLUWRJfs1YfIY49t
1UiQNuNfDS+471NBkWNy+EQ9c4ptu3wr1hok4r7Ql7RbQerFWQw1QYC35tHcBSdP
13lTVuNwj321MOvpZx/gHpeZPMCasqAEJF90d6BxfsGxNTxsH2jSLJvPAezqJLeL
zfI2sNukBn4TFd0VEq25JcyXJPUpxHMvEGy0brG7qcc3nAsMk3KzjDjiMnqnlyhB
XVpf6PdNjYw+sn8NXDdr7knKwl9vLbyJXsdDkVdSJOTlPBOFukU/d8udCbSsTEeq
tiyCgU7O1dWVWDSmEmnjruqrASGhHlkt64yHNoOj2deN918kHfYAduKxSzP/PTtX
+97hlvh/+1LcN8816y874SwcGeo9aanRY11giuHmO3/6nYsAwijx2WBgX5pkEbUO
YVzSSwnuVeFa47ZuiZoZhh8/bz/4CPFNth1jMCmoinB1PL2kW0KkQ5r3lthFf9Jf
w+iQ2qMVko4=
=TH0V
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 20 Jan 2022 09:18
(address . 48300-done@debbugs.gnu.org)
36cc0373db290039046a8235f68e7b62f487489b.camel@ist.tugraz.at
Hi

Am Donnerstag, dem 20.01.2022 um 00:03 +0000 schrieb John Hamelink:
Toggle quote (13 lines)
> Hi there,
>
> I'm experiencing an issue with the emacs-next package on my Guix
> foreign setup where the cursor (*not* Emacs point) is very dark. It's
> perfectly legible against the default Emacs theme, but nonetheless it
> is not respecting the settings of the rest of my system. To make
> things worse, I'm currently using (and enjoying!) the modus-vivendi
> theme.
>
> My host machine is running Arch GNU/Linux with a tiling window
> manager. I set my cursor style using xsetroot like so:
>
> xsetroot -xcf /usr/share/icons/Adwaita/cursors/left_ptr 16
Corrected your xsetroot invocation there :P

Toggle quote (11 lines)
> I tried installing the adwaita-icon-theme, gnome-themes-standard, and
> gnome-themes-extra packages in an attempt at installing the correct
> theme, but that didn't help.
>
> I'm not entirely sure what the issue is, but after speaking with some
> folks at #guix, it was suggested to me that this may in fact be a
> bug. The other option discussed is that Guix needs its own cursor
> settings, but I'm too early on in my journey with Guix (maybe 2 hours
> of experience using the Guix binary) to know how set that up - if that
> is indeed the case, some pointers on what to read would be very
> warmly received!
It turns out this issue is actually related to another issue of Guix'
Emacs on foreign distros, which is it not finding timezones. Since
I've found a permanent solution to both, I will close that bug and pat
myself on the back for doing so.

The main issue here is that foreign distros with systemd really cut
down on their use of environment variables, whereas Guix (System) makes
prominent use of them. In the case of the other bug, TZDIR was unset,
in the case of yours it was XCURSOR_PATH.

Writing an override configuration file with the following contents

Toggle snippet (6 lines)
# ~/.config/systemd/user/gnome-shell-x11.service.d/override.conf
[Service]
Environment=TZDIR='/usr/share/zoneinfo'
Environment=XCURSOR_PATH='/usr/share/icons'

fixed this for me, although I should specify that I previously only had
TZDIR set and bound XCURSOR_PATH interactively in the shell (I am
typing this just as I found the fix and haven't yet had the opportunity
to restart my X session).

Now one thing I don't quite get is the interaction with GNOME Shell.
With my current setup as detailed above, Emacs inherits whichever
cursor was set in GNOME at the time of launch for the entire process
duration -- i.e. even if the corresponding GNOME setting changes.  
I'm pretty sure in your setup with xsetroot there's nothing else
setting the cursor, so it ought to be displayed correctly after that.
If not, you might have to play around with cursor themes in other ways
(refer to [1]).

Cheers


J
J
John Hamelink wrote on 20 Jan 2022 10:03
(name . Liliana Marie Prikler)(address . liliana.prikler@ist.tugraz.at)
87pmom7p6g.fsf@johnhame.link
Hi Liliana,


Liliana Marie Prikler <liliana.prikler@ist.tugraz.at> writes:

Toggle quote (5 lines)
> It turns out this issue is actually related to another issue of Guix'
> Emacs on foreign distros, which is it not finding timezones. Since
> I've found a permanent solution to both, I will close that bug and pat
> myself on the back for doing so.

Allow me to join in! That worked perfectly for me. Thank you :)

Best,
JH
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEE+Yt/N+nvP8wO2AcVFT3f6aVKmkwFAmHpJccRHG1lQGpvaG5o
YW1lLmxpbmsACgkQFT3f6aVKmkwVYhAAuHB5PpUzAi+Z/wpkDDTKlftdIRFH11Qg
FuXlVlPOulOsAzKnd7vwjg6s2/lXf5hWrzemaVhvt0wbwEMVV842mgYTCDIVAhxl
MuOYEeWiOmBZRaBRqHWHDb/7I303uqR1Emj3HegCYvlpYS1WTtJcU9nDrLqivMr4
rmkhdgHMewPrV7ekdmQqcAjL82+0C80Iqh8cMOPNHBtlpZV84usUR+cMsr9AGrIV
TE+PG2L3MqtmgQTbEwG4yLq5l8AuEniQ0poF2xsVyaC+HIJgBJ8cEmlXMztk/e+P
0djOqsFKh7at8ojlBsGCnN1zyH/dSDCRP69A2nAnwkxfOgoSTmFTjCHw1M8j7QEt
zci6qc1yE+0HGkuGgcUvzosanrVvSDxyjRRcaaw5R53RvYGoymG9h3+qwEl15F2R
+FXCU51A7fGQpKYSkm2wU76uQmihghStbftqNjlSP90pnskidKcLhFjhgg4bsQF+
7X8yubpcf51/P/k51yJp1J3hxmf1uy5YnlaCM8kc/mNMLXjSp/7r7gYGW47AJrgN
LQi/WmhZ/4RolXSO4dmCkN2SMkq4xqjrIXju07MItvk/FibPpMLCp3+Ns2zHTmTT
CdnwiTiHRc0ZbykKWxMyl1HOzE7/xNEZru9K1BUWCL01+b731HfxVSBmnc77B8st
uastSuZwX30=
=H8Tf
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 20 Jan 2022 10:16
(name . John Hamelink)(address . me@johnhame.link)(address . 53379-done@debbugs.gnu.org)
6dab15bfab8ebb5014cc605d54fa33c1632c980c.camel@ist.tugraz.at
Am Donnerstag, dem 20.01.2022 um 09:03 +0000 schrieb John Hamelink:
Toggle quote (10 lines)
> Hi Liliana,
>
> Liliana Marie Prikler <liliana.prikler@ist.tugraz.at> writes:
>
> > It turns out this issue is actually related to another issue of
> > Guix' Emacs on foreign distros, which is it not finding timezones. 
> > Since I've found a permanent solution to both, I will close that
> > bug and pat myself on the back for doing so.
>
> Allow me to join in! That worked perfectly for me. Thank you :)
Good to hear. Note that you can also write to BUG-done@debbugs.gnu.org
yourself, you don't need my permission to do so ;) Anyway, done.

In order to avoid future instances of this issue, we should probably
drop a paragraph or two about it in the manual or (more likely) the
cookbook. I'll get to that when I do.

Cheers
Closed
?