一些背景
我是一名开发人员,我将大部分工具安装在我的主文件夹中。所以我的 shell 的 rc 文件充满了JAVA_HOME
, GROOVY_HOME
, MAVEN_HOME
, ... 变量。为了将所有这些环境变量公开给我的 GUI 应用程序(想想我的 IDE),我曾经通过首先定义这些变量来编写 shell 脚本再次然后运行应用程序;最后在我的应用程序菜单中添加一个启动器来运行该脚本。
有一天,我意识到我可以通过 shell 运行我的应用程序。因为 shell 的 rc 文件中定义的所有变量都将在应用程序环境中设置。所以我的应用程序菜单中的条目变成了类似的东西/usr/bin/my-shell ~/my-ide/bin/start.sh
现在问题
我可以指示我的 DM 始终使用我的 shell 来运行我的所有应用程序吗?
旁注
我用中兴和侏儒,但如果有更通用的解决方案,我们将不胜感激。
我已经将默认 shell 设置为中兴, 但侏儒似乎并没有认为这是使用该 shell 完成所有事情的充分理由。
答案1
一些建议:
将变量保存在一个除了设置变量之外不执行任何操作的文件中,这样您就可以轻松地使用
. my-dev-vars.sh
.在您的登录 shell 中获取该文件一次,(
.profile
,.bash_profile
, 请参阅维基百科有关登录 shell 的配置文件的详细列表)。这可确保您在远程登录时获得权限变量。~/.xinitrc
还可以在您的或中获取该文件~/.xsession
(某些发行版有其他变体,请参阅 X11 文档);这确保您的桌面 X11 会话也具有变量。
目标应该是定义它们一次,为任何流程组获取它们一次。那么它们确实是“环境”变量,并且按设计工作。
与当前的解决方案相比,这还有一个优点,即它不会不必要地产生额外的外壳。
答案2
是的,
修改xdg-open
命令或者exo-open
在xfce4上(这是一个二进制程序)
这就是 DE 打开文件或程序的方式。
但是如果您希望这些设置全局,您应该修改 /etc/{zshrc,profile} 等内容。