Sample Header Ad - 728x90

gnome-wayland: unable to change $PATH at gnome-shell level

1 vote
0 answers
54 views
I can't change the PATH at gnome-shell level so I can execute programs in my ~/bin or ~/.local/bin folder from my .desktop files. I am able to easily define other variables through ~/.config/environment.d/envvars.conf e.g. TEXMFHOME. The problem is reported elsewhere and most recently on these pages: - https://www.reddit.com/r/archlinux/comments/i2ybvc/cant_change_path_in_environmentd5/ - https://gitlab.gnome.org/GNOME/gdm/-/issues/385 - https://gitlab.gnome.org/GNOME/gdm/-/commit/349e6af855a1c1dbee9af3e5881e00b66482d155 I have changed these files:
~/.bashrc : 
export PATH="$HOME/.local/bin:$PATH"

~/.config/environment.d/envvars.conf:
PATH=$HOME/.local/bin:$PATH
TEXMFHOME=$HOME/.texmf # this variable is available at gnome-shell level

~/.pam_environment
PATH        OVERRIDE=${HOME}/bin:${HOME}/.local/bin:${PATH}

/etc/environment
PATH=/home/farid/.local/bin:$PATH
And at my bash prompt in gnome-terminal, I get:
~$ /usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator
GTK_MODULES=gail:atk-bridge:gail:atk-bridge
QT_ACCESSIBILITY=1
PATH=/home/farid/.local/bin:/home/farid/.local/bin:/home/farid/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PYTHONSTARTUP=/home/farid/.python_startup
GCC_COLORS="error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01"
VISUAL="vi EDITOR=vi SYSTEMD_EDITOR=vi"
TEXMFHOME=/home/farid/.texmf
TEXMFCNF=/home/farid/.texmf/web2c:/home/farid/.texmf/web2c:


~$ systemctl --user show-environment
HOME=/home/farid
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LOGNAME=farid
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
SHELL=/bin/bash
USER=farid
XDG_RUNTIME_DIR=/run/user/1000
GTK_MODULES=gail:atk-bridge
QT_ACCESSIBILITY=1
PYTHONSTARTUP=/home/farid/.python_startup
GCC_COLORS=$'error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
VISUAL=vi
TEXMFHOME=/home/farid/.texmf
TEXMFCNF=/home/farid/.texmf/web2c:
COLORTERM=truecolor
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=gnome
DISPLAY=:0
EDITOR=vi
GDMSESSION=gnome
GDM_LANG=en_US.UTF-8
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/64064a9f_0993_4156_8610_1df4e8733ddb
GNOME_TERMINAL_SERVICE=:1.92
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GPG_TTY=/dev/pts/0
GROFF_NO_SGR=1
The TEXMFHOME variable set in ~/.config/environment.d/envvars.conf file is available to Gnome-shell but PATH seems to be overridden by some program. I am not sure if it's related to systemd or Gnome-shell, But in the reddit link I shared above, a person says the problem stems from Gnome-shell. I expect that when I press alt+f2 and type an executable name which is present in ~/.local/bin/ to be executed. I reported the bug to Debian gnome-shell package maintainers as well: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1104035 If I press alt+f2 and execute sh -c 'echo "$PATH" > /tmp/path', then the content of /tmp/path is:
cat /tmp/path
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
If I press alt+f2 and execute sh -c 'echo "$TEXMFHOME" > /tmp/TEXMFHOME', which is defined in ~/.config/environment.d/envvars.conf, then:
cat /tmp/TEXMFHOME
/home/farid/.texmf
Asked by Farid Cheraghi (117 rep)
Apr 24, 2025, 06:54 PM
Last activity: May 1, 2025, 07:12 AM