不要放置多个执行程序!

不要放置多个执行程序!

我将 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 会话

我实际上不知道为什么你的设置适用于壁纸,但我很确定如果你删除所有的execs 会更好。还要将 放在exec dwm最后一行,因为它是管理其他所有内容的主程序

这就是你的样子.xinitrc

xrdb -merge ~/.Xresources &
~/.fehbg &
urxvt &

exec dwm

编辑:明白了,您不需要xrdb在后台启动(使用 & 符号&),因为否则urxvt可能会打开之前的任务已完成(我猜这就是后台进程的全部意义)

urxvt因此,要么从您的 中删除.xinitrc,要么在它之前在前台运行xrdb,在这种情况下这并不是什么坏事,因为它通常只需要一点时间即可完成,所以您不应该感觉到任何差异(除了正常工作的终端)

相关内容