回答:
私xdotool getactivewindow
はあなたが望むものだと思います-あなたはそれを試しましたか?
コマンドラインにxdotoolサブコマンドが他にない場合は、(ウィンドウスタックから)ウィンドウIDを出力します。
ではxdotool getactivewindow getwindowpid
例えば、 getactivewindow
ウィンドウスタックにIDを入れ、getwindowpid
PIDを照会し、このIDを使用しています。ターミナルでコマンドを実行すると、アクティブであるため、常にターミナルウィンドウのIDが返されることに注意してください。別のウィンドウからIDを取得するにsleep 2s && xdotool getactivewindow
は、2秒のタイムスパンで対象のウィンドウを選択してください。
xdotool
ウィンドウ処理のために他のツールを
使用すると、複雑になります。
一方でxdotool
、出力用途はwindwo IDの番号を小数、他のほとんどのツールは使い進(彼らは通常、入力の両方をサポートする)出力用の番号を。
たとえば、でウィンドウを見つけた場合、すべてのウィンドウをリスト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
xwininfo -root -tree
このコマンドはすべてのウィンドウを印刷し、ウィンドウには別のタイプの番号付けがあります。
xwininfo
ウィンドウIDを16進数として表示し、xdotoolは10進数を表示しますが、まったく同じです。
xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
このコマンドは私のために働きます
xdotool key --window "$(xdotool getactivewindow)" F5
xdotoolバージョン3.20160805.1
xdotool getactivewindow key F5
同じ結果になるはずです
xdotool getactivewindow
コマンドを試してみましたが、ターミナルに結果が表示されないのが問題です。結果をウィンドウスタックに保存します。このコマンドはいくつかの番号を出力しますが、ウィンドウIDではありません(例:35651588)