无法初始化 i3 exec 脚本的环境变量

无法初始化 i3 exec 脚本的环境变量

我有一个名为 的脚本display,它使用 来设置我的桌面背景feh。它通过以下行执行此操作:

feh --bg-scale $WALLPAPER &

环境变量 $WALLPAPER 在我的.bashrc.如果我在登录后从普通 shell 执行该脚本,该脚本将正常工作。

我希望 i3 在启动时执行该脚本。因此,我添加了以下行~/.config/i3/config

exec display

但它不起作用。我尝试将 STDERR 重定向到文件,结果是:

feh: No loadable images specified.
See 'man feh' for detailed usage information

此外,如果我尝试echo $WALLPAPER进入display,我会得到一个空行。所以环境变量还没有初始化。很好 - 我尝试添加exec /bin/bash -c "source ~/.bashrc"上面的行,但这似乎没有什么区别。如何确保 i3 启动时初始化该变量?

答案1

i3 是否由其他用户执行,请尝试提供源命令的绝对路径,而不是使用 ~ 的相对路径

答案2

这是为我回答的在 Reddit 上。问题是它.bashrc仅由 bash 加载 - 将环境变量放入~/.profile意味着它可以正确运行。

相关内容