あるウィンドウを他のすべてのウィンドウの上に保持したい(他のウィンドウがフルスクリーンであり、フォーカスがあり、別の親ウィンドウに属していても)。マイユースケースでは、これらのウィンドウはフルスクリーンプレゼンテーションとWebカメラウィンドウ(スクリーンキャストに記録されています)です。私の考えに最適なオプションは、オーバーレイリダイレクトウィンドウにして、ウィンドウマネージャにそれを無視させることです。
しかし、私はウィンドウを生成するプログラムのソースコードを変更したくなく、代わりにいくつかのコマンドラインツールを使ってxprop
これを行います。どうすればいいですか?
以下で同様のことを試しましたが、役に立たなかった。
# xprop -id 0x5c00001 -set override-redirect 1
xprop: error: unsupported conversion for override-redirect
答え1
xdotoolを使用して最初にoverride_redirectフラグを設定できます
xdotool set_window --overrideredirect 1 0x5c00001
その後、ウィンドウマネージャが認識できるように、ウィンドウのマッピングを解除してマッピングします。
xdotool windowunmap 0x5c00001
xdotool windowmap 0x5c00001
ウィンドウはキーボード入力をキャッチできず、マウスだけをキャッチできます。ウィンドウマネージャのコントロールにリセットするには:
xdotool set_window --overrideredirect 0 0x5c00001
xdotool windowunmap 0x5c00001
xdotool windowmap 0x5c00001