Desktop entries icons not showing up in app launcher

My XDG Desktop Entry icons aren’t appearing in my GNOME app launcher anymore… They were showing up last night, but I must have accidentally messed something up.

I feel like it has to do with $XDG_DATA_DIRS possibly not being set correctly… but not sure. Here’s my home-config.scm. I didn’t install anything with guix install, just using home manager.

(use-modules (gnu home)
             (gnu packages)
             (gnu packages vim)
             (gnu services)
             (guix gexp)
             (gnu home services dotfiles))

(home-environment
  (packages (specifications->packages (list "vim"
                                            "ncurses"
                                            "git"
                                            "openssh"
                                            "librewolf"
                                            "bitwarden-desktop"
                                            "wl-clipboard"
                                            "glib:bin")))

  (services
   (append (list (service home-dotfiles-service-type
			  (home-dotfiles-configuration
			    (directories '("./dotfiles")))))
           %base-home-services)))

and the bashrc.

# Bash initialization for interactive non-login shells and
# for remote shells (info "(bash) Bash Startup Files").

# Export 'SHELL' to child processes.  Programs such as 'screen'
# honor it and otherwise use /bin/sh.
export SHELL

if [[ $- != *i* ]]
then
    # We are being invoked from a non-interactive shell.  If this
    # is an SSH session (as in "ssh host command"), source
    # /etc/profile so we get PATH and other essential variables.
    [[ -n "$SSH_CLIENT" ]] && source /etc/profile

    # Don't do anything else.
    return
fi

# Source the system-wide file.
source /etc/bashrc

# Adjust the prompt depending on whether we're in 'guix environment'.
if [ -n "$GUIX_ENVIRONMENT" ]
then
    PS1='\u@\h \w [env]\$ '
else
    PS1='\u@\h \w\$ '
fi

alias ls='ls -A --color=auto'
alias grep='grep --color=auto'

and my $XDG_DATA_DIRS value.

$ echo $XDG_DATA_DIRS 
/gnu/store/bz2h5k8hmzkg8mxdxnhd0hdw7m32ixbp-shared-mime-info-2.3/share:/gnu/store/ighagji4dmx0wh57618l12gizjnnyac2-glib-2.83.3/share:/gnu/store/z6qi2hjksh10zx17qj3h2cdshrldckk5-gsettings-desktop-schemas-46.1/share:/gnu/store/df8vh7n4q1gxkkq18f2y7nk05a2yhh0a-libadwaita-1.6.0/share:/gnu/store/dkszdq234dfz83q6p4rpbhys1gw05rm4-gtk-4.16.13/share:/gnu/store/bbvvb1h9vj36rxzm9a59wq8xdw5lmxki-gnome-console-46.0/share:/gnu/store/bz2h5k8hmzkg8mxdxnhd0hdw7m32ixbp-shared-mime-info-2.3/share:/gnu/store/ighagji4dmx0wh57618l12gizjnnyac2-glib-2.83.3/share:/gnu/store/dkszdq234dfz83q6p4rpbhys1gw05rm4-gtk-4.16.13/share:/gnu/store/d13k08dg70kp03j1k34mycb5m7n510pf-gtk+-3.24.51/share:/gnu/store/z6qi2hjksh10zx17qj3h2cdshrldckk5-gsettings-desktop-schemas-46.1/share:/gnu/store/0qi3cd311hrx6a5z611wyw6sss11dkic-gnome-session-46.0/share:/run/current-system/profile/share:/home/me/.guix-profile/share:/run/current-system/profile/share

Aaah. OK, so I did a guix home switch-generation to go back to a known good state.

I see that $XDG_DATA_DIR does indeed differ. The beginnings of both XDG_DATA_DIR paths is the same, except for the last few paths. These are different

Before (good)

...:/home/me/.guix-home/profile/share:/run/current-system/profile/share:/home/me/.guix-profile/share:/run/current-system/profile/share

After (bad)

...:/run/current-system/profile/share:/home/me/.guix-profile/share:/run/current-system/profile/share

Specifically, /home/me/.guix-home/profile/share is missing from my newer (broken) XDG_DATA_DIR path.

Wait. wat.

I just did a guix home switch-generation back to my latest (supposedly bugged) generation… and… now XDG_DATA_DIR has /home/me/.guix-home/profile/share and my desktop icons work again…? I didn’t do anything except bounce around different generations with switch-generation:face_with_spiral_eyes:

I’ve been rebooting between each generation switch just to be extra careful… uh… strange…