我需要在哪里设置 $PATH 变量,以便当我使用 zsh 作为默认 shell 时 .desktop 文件可以看到

我需要在哪里设置 $PATH 变量,以便当我使用 zsh 作为默认 shell 时 .desktop 文件可以看到

我使用的是 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 时文件可以看到。

答案1

您的桌面环境并不关心您的 shell 设置。

您必须按照您的 DE 期望的方式镜像此设置(各个 DE 有所不同)。

答案2

以下解决了我的问题:

当bash是默认shell时,必须使用.profile来设置环境变量。

当zsh是默认shell时,必须使用.zshenv设置环境变量。

我们必须注销然后登录才能获取路径变量。

相关内容