After doing an OS upgrade (opensuse leap 15.2 -> 15.3), my XDG setup broke. Among other things, my XDG_DATA_DIR env var uses two different value separators: : and .

Current XDG_DATA_DIRS value:

/home/bernard/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop /var/lib/snapd/desktop

When looking for the code that populates this variable, I came across scripts in /etc/profile.d/, but from debugging the snapd.sh one, it doesn't seem to be causing the deficiency. I modified snapd.sh and I printed the variable into a /tmp/var at the script start and script end. By observing the results it looks as if this script wasn't changing anything in XDG_DATA_DIRS.

snap version: 2.54.1

fish version: 3.3.1

1 Answer 1


I don't know about the dot: I think you'll have to dig into which process is adding that.

The last directory element separated by a space is telling though. It seems you're adding a directory to XDG_DATA_DIRS in fish and expecting subprocess to get a colon-separated value. fish does that automatically only for PATH variables.

In your fish config, try this before you do any manipulation of that variable:

  • 1
    Placing that in ~/.config/fish/config.fish has fixed it for me. Thank you! Commented Jan 10, 2022 at 15:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .