最近从 opensuse 42.3 转到 xubuntu 20.4,想保留我的长期习惯。我的窗口管理器是 fvwm,我的登录 shell 是 tcsh。
我注意到我的 .login 文件没有在 X 控制台登录时执行,而以前在 openSUSE 上可以执行。显然 ps -H 的进程顺序是
在 openSUSE 上
/usr/bin/sddm/
/usr/bin/X -nolisten tcp -auth ...
/usr/lib/sddm/sddm-helper ... --start fvwm --user lucio
/usr/bin/fvwm
/usr/bin/ssh-agent /usr/bin/gpg-agent --sh ...
在 xubuntu 上
/usr/sbin/lightdm
/usr/lib/xorg/Xorg -core :0 ...
lightdm --session-child 12 19
fvwm2
/usr/bin/ssh-agent /usr/bin/im-launch fvwm2
无论如何,看起来 .login 在 fvwm 之前未在 ubuntu 中执行,因此 fvwm 启动的脚本和终端会忽略 .login 设置的(一些)内容,其中包括:
- 设置 PATH
- 设置 X 字体路径 (xset +fp
- 一些音频设置(目前已注释掉)
- 一些语言环境设置,如 setenv LC_TIME en_US.UTF-8
(步骤 2 和 3 以处于 X 会话中为条件,在 opensuse 上会检查 $?XSESSION_IS_UP ... 等效项是什么?)
我可以轻松地将项目 4 移动到 .cshrc 或需要它的单个脚本,但对于路径(1 和 2),它们应该完成一次,以避免将用户项目多次连接到默认的“系统”路径。
有没有办法在 X 会话开始时设置这样的环境?
编辑:.login 在 ssh 登录中有效