我可以更改用于从桌面管理器运行 GUI 应用程序的 shell 吗?

我可以更改用于从桌面管理器运行 GUI 应用程序的 shell 吗?

一些背景

我是一名开发人员,我将大部分工具安装在我的主文件夹中。所以我的 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

一些建议:

  1. 将变量保存在一个除了设置变量之外不执行任何操作的文件中,这样您就可以轻松地使用. my-dev-vars.sh.

  2. 在您的登录 shell 中获取该文件一次,( .profile, .bash_profile, 请参阅维基百科有关登录 shell 的配置文件的详细列表)。这可确保您在远程登录时获得权限变量。

  3. ~/.xinitrc还可以在您的或中获取该文件~/.xsession(某些发行版有其他变体,请参阅 X11 文档);这确保您的桌面 X11 会话也具有变量。

目标应该是定义它们一次,为任何流程组获取它们一次。那么它们确实是“环境”变量,并且按设计工作。

与当前的解决方案相比,这还有一个优点,即它不会不必要地产生额外的外壳。

答案2

是的,

修改xdg-open命令或者exo-open在xfce4上(这是一个二进制程序)

这就是 DE 打开文件或程序的方式。

但是如果您希望这些设置全局,您应该修改 /etc/{zshrc,profile} 等内容。

相关内容