我使用的是 Debian 12。Gnome 43。zsh 是我的默认 shell ( sudo chsh --shell /usr/bin/zsh ismail
)。
在我的 .zshrc 中,我设置了路径变量,如下所示:
export PATH="$HOME/.dotfiles/.cargo/bin:$PATH"
alacritty 二进制文件位于:
% which alacritty
/home/ismail/.dotfiles/.cargo/bin/alacritty
以下桌面文件有效:
[Desktop Entry]
Type=Application
Exec="/home/ismail/.dotfiles/.cargo/bin/alacritty"
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;
以下桌面文件不起作用:
[Desktop Entry]
Type=Application
Exec=alacritty
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;
我不知道为什么这不起作用。
我想指出一件事。
$ which foliate
/usr/bin/foliate
如果我设置了Exec=foliate
,那么它就起作用了。所以,我猜这与路径有关。运行文件的系统.desktop
可能看不到 中设置的路径变量.zshrc
。
这个时候我能做什么呢。
更新1:
如果我使用以下桌面文件:
[Desktop Entry]
Type=Application
Exec=gnome-terminal -e "zsh -c 'echo $PATH;$SHELL'"
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;
Name=Alacritty
GenericName=Terminal
Comment=A fast, cross-platform, OpenGL terminal emulator
StartupWMClass=Alacritty
Actions=New;
那么路径变量是:
/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
% echo $SHELL
/usr/bin/zsh
% echo $PATH
/home/ismail/.dotfiles/.cargo/bin:/home/ismail/.local/bin:/home/ismail/bin:/home/ismail/.dotfiles/.resources/git-scripts:/home/ismail/.dotfiles/.resources/zsh-scripts:/home/ismail/.dotfiles/.resources/python-scripts:/home/ismail/.dotfiles/.resources/bash-scripts:/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
因此,桌面文件看不到第一部分或我稍后在 .zshrc ( /home/ismail/.dotfiles/.cargo/bin:/home/ismail/.local/bin:/home/ismail/bin:/home/ismail/.dotfiles/.resources/git-scripts:/home/ismail/.dotfiles/.resources/zsh-scripts:/home/ismail/.dotfiles/.resources/python-scripts:/home/ismail/.dotfiles/.resources/bash-scripts:
) 中设置的路径变量。
我需要在哪里设置 $PATH 变量,以便.desktop
当我使用 zsh 作为默认 shell 时文件可以看到。
您的桌面环境并不关心您的 shell 设置。
您必须按照您的 DE 期望的方式镜像此设置(各个 DE 有所不同)。
以下解决了我的问题:
当bash是默认shell时,必须使用
.profile
来设置环境变量。当zsh是默认shell时,必须使用
.zshenv
设置环境变量。我们必须注销然后登录才能获取路径变量。