Xdotool
如何從 xdotool 視窗堆棧獲取視窗 ID
我需要啟動或聚焦的視窗的 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
在兩秒的時間跨度內選擇感興趣的視窗。
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