在 x 显示服务器启动后,应该将自动启动脚本放在哪里?

在 x 显示服务器启动后,应该将自动启动脚本放在哪里?

我正在使用带有 dwm(动态窗口管理器)的 manjaro linux,我需要运行一些只有在启动 x 显示服务器后才会起作用的命令。Lightdm 用于登录。

示例命令:

/usr/bin/xrandr --output eDP1 --auto --right-of HDMI1
/usr/bin/xset r rate 280 40
/usr/bin/copyq

我尝试过将这些添加到,,~/.xinitrc并延迟/etc/X11/xinit/xinitrccrontab~/.xsession

将它们放入后~/.xession确实可以运行,但只会加载壁纸,而窗口管理器永远不会启动。

将它们放在用户crontab给出的输出中,例如: Can't open display

xset: unable to open display ""

ERROR: QtFatal: This application failed to start because no Qt platform plugin could be initialized.

将这些命令放在哪里比较合适?

答案1

LightDM 是启动 X 显示服务器(因此称为“显示管理器”)的程序,因此命令应该位于 LightDM 可以查看的位置。(另一个不错的选择是使用窗口管理器“自动启动”脚本(如果有) - 但不幸的是 dwm 没有。)

对于 LightDM 来说,~/.xsession是个好地方,但请注意,它是同步运行的 - 也就是说,你的会话仅在 xsession 脚本之后启动结束。因此,如果您想启动任何长时间运行的命令,您必须使用以下&运算符“在后台”运行它们:

/usr/bin/copyq &

~/.xprofileGDM 则以同样的方式使用。

也可以放入/etc/X11/xinit/xinitrc.d/*有同样要求的脚本。


~/.xinitrc类似,但通常不曾用过由显示管理器执行;只有 startx 和 SDDM 读取它,而其他 DM 则在 /usr/share/xsessions 中查找会话配置。此外,xinitrc 还负责启动实际会话 - 即它需要dwm在最后调用。

相关内容