Xdotool

如何從 xdotool 視窗堆棧獲取視窗 ID

  • September 21, 2021

我需要啟動或聚焦的視窗的 id。我嘗試使用xdotool命令。有命令:

xdotool getactivewindow

結果保存到視窗堆棧。我想從此視窗堆棧中獲取 widnow id。命令

xdotool getactivewindow getwindowpid

不滿足我。我不想通過程序 ID 獲取視窗 ID。

我想xdotool getactivewindow這就是你想要的——你試過了嗎?

如果命令行上沒有進一步的 xdotool 子命令,它會列印視窗 ID(來自視窗堆棧)。

例如xdotool getactivewindow getwindowpidgetactivewindow將 id 放在視窗堆棧上,並getwindowpid使用此 id 查詢 PID。請注意,在終端中執行該命令將始終返回終端視窗的 ID,因為它處於活動狀態。為了從另一個視窗獲取 ID,請嘗試sleep 2s && xdotool getactivewindow在兩秒的時間跨度內選擇感興趣的視窗。

xdotool與其他視窗處理工具一起 使用時會出現複雜情況:

雖然xdotool輸出使用十進制數作為windwo id,但大多數其他工具使用十六進制數作為輸出(它們通常支持兩者作為輸入)。

例如,如果您找到一個帶有 的視窗xdotool getactivewindow,您將不會在 的輸出中找到xwininfo -root -tree列出所有視窗的結果。需要先轉換成十六進制數:

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

十進制轉十六進制:

printf 0x%x 69206716

十六進制轉十進制:

printf %i 0x42002bc

引用自:https://unix.stackexchange.com/questions/154546