- - コンテキスト - -
私はOpenboxを使ってブラウザ専用のワークスペース/デスクトップを作成しています。ブラウザはそのワークスペースでのみ開き、その上に作成された他のウィンドウは別のワークスペースで起動します。
これはほとんどのナビゲーションで機能しますが、フルスクリーンをサポートするコンテンツ(ストリーミングビデオやFlashアプリなど)の場合、「フルスクリーンモード」に切り替えると、実際にコンテンツを再生できる新しいウィンドウが作成されます。したがって、Openbox Kick it専用のワークスペースで。つまり、フルスクリーンモードを終了すると、ブラウザに戻るのではなく、ランダムに複雑なワークスペースに入ります。
Openboxが専用のワークスペースに全画面コンテンツを保持できるように、例外を作成する必要があります。
- - 質問 - -
xprop
フルスクリーンWebコンテンツが再生されているウィンドウに関する情報を取得するために(または)を使用したいのですがwmctrl -l
(私が知っている限り)、ウィンドウはフォーカスを失うとすぐに自動的に閉じるので、それはできません。私の端末に切り替えて手動で実行します。バックグラウンドで情報を記録する方法が必要です。理想的には、開いている各ウィンドウの名前を記録する一種の背景モニターが必要です。
これをスクリプト化する比較的簡単な方法はありますか?これを行うモニタリングパッケージを見つけることができると確信していますが、これは私の要件に比べてやや過度のようです。
sleep 10; xprop
答えを追加するように編集されました:Gilesが提案したように、タイマー()を使用してください。後で参照できるように、関連行は次のとおりです。_OB_APP_CLASS(UTF8_STRING) = "Plugin-container"
答え1
ウィンドウの作成を監視するプログラムを考えていませんでしたが、必要ありません。
wmctrl -l
ループやタイマー(例:)で実行し、フルスクリーンsleep 10; wmctrl -l
アプリケーションを実行してそのウィンドウのプロパティを記録できます。より多くの情報が必要な場合は、次のようにできます。
sleep 10; xprop
10秒後にマウスカーソルが変わります。クリックすると、xprop
前景ウィンドウに関する情報が表示されます。
またはxdotool
(タイマーまたはループから再び)ウィンドウ一致機能を使用してウィンドウIDを見つけます(たとえば、フルスクリーンxdotool --pid
ウィンドウが既存のプロセスにある場合)、またはフォーカスがあるウィンドウのウィンドウIDをxdotool getwindowfocus
取得します。getactivewindow
前景ウィンドウには実際に入力フォーカスがない場合があります。一部のフルスクリーンアプリケーションは、前景に追加のフルスクリーンウィンドウを表示しますが、「一般」ウィンドウにフォーカスを維持します。代わりに、特定の画面位置でウィンドウを照会してください。または、xdotool getmouselocation
フルスクリーンウィンドウにのみ適用されます(マルチモニタ設定の場合は、マウスカーソルがすでに右モニタにある場合)。
または、Linuxではテキストコンソール(たとえばCtrl++)に切り替えてログインして実行し、AltGUI(実行など)にアクセスすることもできます。いくつかの設定でF1export DISPLAY=:0
xprop
xdotool
XAUTHORITY
設定が必要な場合があります。。