アクティブまたはフォーカスされているウィンドウのIDが必要です。 xdotool
コマンドを使用しようとしています。コマンドがあります:
xdotool getactivewindow
結果はウィンドウスタックに保存されます。このウィンドウスタックからwidnow IDを取得したい。コマンド
xdotool getactivewindow getwindowpid
私を満足させません。プロセスIDでウィンドウIDを取得したくありません。
xdotool getactivewindow
はあなたが望むものだと思います-試しましたか?
コマンドラインにxdotoolサブコマンドがない場合は、ウィンドウIDを(ウィンドウスタックから)表示します。
たとえばxdotool getactivewindow getwindowpid
では、getactivewindow
はIDをウィンドウスタックに配置し、getwindowpid
はこのIDを使用してPIDを照会します。ターミナルでコマンドを実行すると、アクティブであるため、常にターミナルウィンドウのIDが返されることに注意してください。別のウィンドウからIDを取得するには、sleep 2s && xdotool getactivewindow
を試して、2秒の時間間隔で対象のウィンドウを選択します。
ウィンドウ処理の他のツールでxdotool
を使用すると、複雑になります。
xdotool
出力はwindwo idに10進数を使用しますが、他のほとんどのツールは出力に hexadecimal 数値を使用します(これらは通常、入力に対して両方をサポートします)。
たとえば、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
このコマンドは私のために働きます
xdotool key --window "$(xdotool getactivewindow)" F5
xdotoolバージョン3.20160805.1