我将 DWM Archbox 配置为在 X 启动时启动 URXVT 终端。我通过 .Xresources 文件按照我喜欢的方式配置了 URXVT。下面是我的 .xinitrc
#! /bin/sh
exec xrdb -merge ~/.Xresources &
exec dwm &
exec ~/.fehbg &
exec urxvt
当 X 启动时,通过 .fehbg 的壁纸显示正常,但终端没有任何 .Xresources 设置(包括外观和 Perl 脚本),但字体有奇怪的例外(加载 Inconsolata)
如果我打开另一个终端,.Xresources 设置可以正常加载,并且我可以获得我想要的终端外观和功能。
有人知道可能是什么问题吗?
更新:在摆脱除了最后一个(将 dwm 移到最后)之外的所有执行人员后,我仍然遇到同样的问题。我sleep 1
在加载壁纸后添加,URXVT 最终加载正确。很好奇为什么这会起作用。
答案1
不要放置多个执行程序!
从拱门维基:
请记住,使用 exec 的命令后面的行将被忽略。例如,要在后台启动 xscreensaver,然后启动 openbox,请使用以下命令:
〜/.xinitrc
...
x屏保&
执行 openbox 会话
我实际上不知道为什么你的设置适用于壁纸,但我很确定如果你删除所有的exec
s 会更好。还要将 放在exec dwm
最后一行,因为它是管理其他所有内容的主程序
这就是你的样子.xinitrc
:
xrdb -merge ~/.Xresources &
~/.fehbg &
urxvt &
exec dwm
编辑:明白了,您不需要xrdb
在后台启动(使用 & 符号&
),因为否则urxvt
可能会打开前之前的任务已完成(我猜这就是后台进程的全部意义)
urxvt
因此,要么从您的 中删除.xinitrc
,要么在它之前在前台运行xrdb
,在这种情况下这并不是什么坏事,因为它通常只需要一点时间即可完成,所以您不应该感觉到任何差异(除了正常工作的终端)