我正在使用带有 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/xinitrc
,crontab
延迟和~/.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.
放置这些命令的合适位置在哪里?
LightDM 是启动 X 显示服务器的程序(因此是“显示管理器”),因此命令应该位于 LightDM 可以查看的位置。(另一个不错的选择是使用窗口管理器“自动启动”脚本,如果它有一个 -但不幸的是 dwm 没有。)
对于 LightDM,
~/.xsession
这是一个好地方,但请注意它是同步运行的——也就是说,您的会话仅在 xsession 脚本结束后才开始。因此,如果要启动任何长时间运行的命令,则必须使用&
操作员“在后台”运行它们:GDM
~/.xprofile
以相同的方式使用。也可以
/etc/X11/xinit/xinitrc.d/*
按照相同的要求放置脚本。~/.xinitrc
类似,但通常不被显示管理器使用;只有 startx 和 SDDM 读取它,而其他 DM 会在 /usr/share/xsessions 中找到会话配置。此外,xinitrc 还负责启动实际会话——即它需要dwm
在最后调用。