Subject: bug#48796: Guix on Debian 11 - Cant run or find applications from Guix in Desktop Menus

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 29 Apr 2022 21:18:20 +0200

Hi Giovanni,

Am Donnerstag, dem 28.04.2022 um 17:59 +0200 schrieb Giovanni Biscuolo:
> [...]
> > # set XDG_DATA_DIRS to include Guix installations
> > export XDG_DATA_DIRS="$GUIX_PROFILE/share:${XDG_DATA_DIRS:-
> > /usr/local/share/:/usr/share/}"
> > --8<---------------cut here---------------end--------------->8---
> > 
> > It even set XDG_DATA_DIRS, which should allow integration with the
> > GNOME Shell and other graphical dashboards.
> 
> No: this does not work, for three reasons:
> 
> 1. AFAIU "/etc/profile.d/guix.sh" or "~/.profile" are not
> sourced/executed in a graphical session (graphical shell?), we need
> to ~/.xsessionrc to configure that environment: am I wrong?
Depends on your setup.  Some systemd setups don't source it, but note
that you can work around that by editing the offending file.  More
importantly...

> 2. XDG_DATA_DIRS gets someway hard reset by "something" to this
> value:
> 
> XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/men
> u-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-
> xdg/
I would investigate what actually "resets" this.  If it survives
XDG_DATA_DIRS=blah $SHELL, then it's in the stuff your shell sources. 
If it doesn't, then you probably just experience (1).

> (I found workaround, see below)
> 
> 3. desktop menus (I tested LXDE and Mate, not Gnome Shell) are not
> updated
We hacked our Gnome Shell package to do this on Guix – naturally this
won't work for foreign systems or other packages.

> [...]
> The main point of this workaround is that I configure XDG_DATA_HOME,
> described in the specifications:
And that is evil.

> [...]
> Anyway to make the new installed *.desktop files appear in the menu,
> I have to logout and login again: I've still not found a command (or
> configuration) to update the menu, "xdg-desktop-menu forceupdate"
> does not work.
Should it?  It might only honor XDG_DATA_DIRS and ignore XDG_DATA_HOME
by accident.  Other than that, restarting your shell (if running on X)
might be a more lightweight way of refreshing the menu.

Cheers