xdotoolウィンドウスタックからウィンドウIDを取得する方法

xdotoolウィンドウスタックからウィンドウIDを取得する方法

アクティブウィンドウまたはフォーカスされたウィンドウのIDが必要です。命令を使ってみましたxdotool。次のコマンドがあります。

xdotool getactivewindow

結果はウィンドウスタックに保存されます。このウィンドウスタックからWidnow IDを取得したいです。注文する

xdotool getactivewindow getwindowpid

私を満足させることはできません。プロセスIDでウィンドウIDを取得したくありません。

答え1

私の考えでは、xdotool getactivewindowこれがあなたが望むものだと思います。試してみましたか?

コマンドラインに他のxdotoolサブコマンドがない場合(ウィンドウスタック内)、ウィンドウIDを印刷します。

たとえばxdotool getactivewindow getwindowpidgetactivewindowIDをウィンドウスタックに入れ、getwindowpidそのIDを使用してPIDを照会します。端末でこのコマンドを実行すると、アクティブな端末ウィンドウのIDが常に返されます。別のウィンドウからIDを取得するには、sleep 2s && xdotool getactivewindow2秒間の範囲内で興味のあるウィンドウを選択してください。


xdotool別のウィンドウ処理ツールを使用すると、いくつかの問題が発生します。

xdotool出力ではwindwo IDに10進数を使用しますが、他のほとんどのツールでは16進数出力番号(通常は入力をサポートします)。

xdotool getactivewindowたとえば、あるウィンドウを見つけると、すべてのウィンドウを一覧表示する出力に結果が見つかりません。xwininfo -root -treeまず、16進数に変換する必要があります。

$ xdotool getactivewindow                              
69206716
$ printf 0x%x 69206716                  
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
           0x42002bc (has no name): ("konsole" "Konsole")  1154x781+0+0  +1289+498


10進数を16進数に変換する:

printf 0x%x 69206716

16進数を10進数に変換する:

printf %i 0x42002bc

答え2

このコマンドは私にとって効果的でした。

xdotool key --window "$(xdotool getactivewindow)" F5

xdotoolバージョン3.20160805.1

答え3

私はこれが古い質問であることを知っています。たぶん誰かがこの答えが役に立つと思うかもしれません。

xdotool selectwindow getmouselocation --shell

次に、目的のIDのウィンドウをクリックします。

関連情報