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

From: John Hamelink <[email-masked]>
Date: Thu, 20 Jan 2022 00:03:52 +0000

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)
|        (url "https://git.savannah.gnu.org/git/guix.git")
|        (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"))
`----