使用独立窗口管理器配置 ~/.Xsession 以正常结束会话的正确方法

使用独立窗口管理器配置 ~/.Xsession 以正常结束会话的正确方法

我正在使用xdm并且我的~/.Xsession外观如下:

# <initialization stuff here>

exec openbox

它可以工作,但我注意到当我注销时,Openbox不会正常终止所有应用程序。尤其Google Chrome抱怨这一点。

我如何确保等待所有进程退出(就像其他配置一样:Gnome,KDE,Windows......)?

唯一的 (丑陋的) 我发现的解决方案涉及sleepkill融入~/.Xsession

答案1

您需要一个会话管理器来正常终止应用程序。 openbox-session可能会做您想做的事。文档明确指出它不执行保存会话部分,但它可能会执行正常终止部分。 openbox-gnome-session或者openbox-kde-session让您在使用 openbox 作为窗口管理器时使用相应的会话管理器。

答案2

以下是我解决的方法,我~/.Xsession按以下方式编辑:

# <initialization stuff here>

openbox-session &
WM_PID=$!

sleep 0.5 # time needed to start openbox

# <autostart applications here>

wait $WM_PID

for i in `ps -u $USER -o pid= | grep -v $$` ; do
    kill $i
done

sleep 1 # grace time

到目前为止,我找不到更好的了。也许我应该使用会话管理器,但我不知道哪一个适合我的情况。

相关内容