Short GNOME Forum Inquiry: Guix Apps Only Show with Bash

Hello,

I’m facing an issue where applications installed via GNU Guix do not appear in the GNOME Shell App Launcher, even though the $XDG_DATA_DIRS environment variable is set correctly and includes the Guix profile path.

The crucial finding is that the applications only appear when my login shell is set to Bash. If I switch my login shell to Zsh (using a standard .zprofile setup), the applications do not appear.

Key Points:

  • Bash works: Guix apps show up when my login shell is set to bash.
  • Zsh fails: Guix apps disappear when my login shell is set to zsh.
  • Variable is correct: I have verified inside the running GNOME session that $XDG_DATA_DIRS correctly includes /home/lamby/.guix-profile/share/ in both cases.
  • Expected error: I receive a “Read-only file system” error when running update-desktop-database on the Guix path, which is normal for Guix.

My Question:

Why would GNOME Shell successfully read the .desktop files when the session starts via a Bash login, but fail to do so when the session starts via a Zsh login, despite the environment variable being correct in both resulting sessions?

Is there a known issue with how GDM/GNOME sources environment files specifically when Zsh is the login shell, or a known incompatibility between Zsh and the standard Guix environment setup that affects GNOME’s application scanning?

Thank you for any insight!

Do the .desktop files provide the full path to their binaries on the Exec line? If not, does $PATH differ between your two shells?