ウィンドウマネージャーと単一のフルスクリーンプログラムだけで最小限のXセッションを実行したいと思います。これを行うための明白な方法は、次のようなものを.xinitrcに入れることです。
metacity & # this could be any window manager
exec my-fullscreen-app
ただし、これらは並行して起動されるため、競合状態が少しあります。ウィンドウマネージャーの準備が整う前にアプリを表示したくないのは、ウィンドウのサイズがフルスクリーンモードに表示されるためです。最初にウィンドウマネージャーの初期化が完了していることを確認したいと思います。
私が思いついた最高のものは次のようなものです:
metacity &
while ! xprop -root | grep -q _NET_SUPPORTING_WM_CHECK
do
sleep 0.1
done
sleep 0.3
exec my-fullscreen-app
ただし、ルートウィンドウに_NET_SUPPORTING_WM_CHECKが設定されているからといって、必ずしもWMの準備ができているとは限りません。また、0.3秒のスリープは、一部のシステムでは深刻なやり過ぎであり、他のシステムでは完全に不十分である可能性があります。
それで、ウィンドウマネージャーが完全に初期化されていることを確実に感知するためのより良い方法はありますか?