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! Jan 10 at 15:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.