如何为每个图形会话配置环境变量

如何为每个图形会话配置环境变量

考虑以下设置:

  1. 我已经安装了GDM
  2. 我配置了多个图形会话,包括 X11 和 Wayland:i3,摇摆,侏儒(x11)。

我想为每个图形会话导出不同的环境变量集。例如我想设置VAR_A=1i3VAR_A=2为了侏儒VAR_A=3摇摆

我还需要考虑一些其他功能:

  1. systemd-user 单元应该继承这些变量。例如,如果我在 中有一个服务,那么如果我从以下位置运行它,$HOME/.config/systemd/user/则应该启动它:VAR_A=1i3

  2. 应该可以在图形会话之间切换,而无需手动重新配置。例如,如果我要退出i3并启动摇摆,我不必手动替换符号链接或重新创建文件。

  3. 它应该是容错解决方案。例如,如果我在使用时不小心拉断了电源线i3并启动摇摆会话之后,就不会出现这种情况,当我得到 i3 环境变量时摇摆会议。

我不在乎这些变量集是否会在非图形会话(如 ssh 或 tty)中加载。我也不介意更改显示管理器,但我真的不喜欢使用startxWayland 或其等效项启动图形会话。

我发现的唯一方法是修补和*.desktop中的文件:将每个可执行文件包装在 shell 脚本中,从特定于会话的文件加载变量,并在./usr/share/xsessions//usr/share/wayland-sessions$HOME/.config$HOME/environment.d/

这个问题还有其他解决办法吗?

相关内容