アクティブウィンドウまたはフォーカスされたウィンドウのIDが必要です。命令を使ってみましたxdotool
。次のコマンドがあります。
xdotool getactivewindow
結果はウィンドウスタックに保存されます。このウィンドウスタックからWidnow IDを取得したいです。注文する
xdotool getactivewindow getwindowpid
私を満足させることはできません。プロセスIDでウィンドウIDを取得したくありません。
答え1
私の考えでは、xdotool getactivewindow
これがあなたが望むものだと思います。試してみましたか?
コマンドラインに他のxdotoolサブコマンドがない場合(ウィンドウスタック内)、ウィンドウIDを印刷します。
たとえばxdotool getactivewindow getwindowpid
、 getactivewindow
IDをウィンドウスタックに入れ、getwindowpid
そのIDを使用してPIDを照会します。端末でこのコマンドを実行すると、アクティブな端末ウィンドウのIDが常に返されます。別のウィンドウからIDを取得するには、sleep 2s && xdotool getactivewindow
2秒間の範囲内で興味のあるウィンドウを選択してください。
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のウィンドウをクリックします。