Command-Line
在命令行上操作 X 鍵和指針抓取
有哪些命令行工具可以列出和管理 X 伺服器抓取?(就像在鍵和指針抓取中的抓取一樣,即將特定鍵或滑鼠按鈕的使用限制在特定應用程序中,或者將滑鼠指針限制在特定螢幕區域中。)我正在尋找一個假設的
xgrab
實用程序,它將顯示類似的東西Key 0x00f00ba5 0x123 0 Button 0x00f00ba5 2 Pointer 0x00abcdef
表示已經用, , , (如果可能的話)呼叫了
XGrabKey(display, 0x123, 0, 0x00f00ba5, ...)
等等。顯示格式無關緊要,我想要的是某種方式來查看誰在抓取什麼,並且可能以某種方式撤銷這些抓取(如果可能的話,我不確定 X11 API 是否允許這樣做)。XGrabButton``XGrabPointer``XGrabKeyboard``XGrabServer
X 的最新版本(X.org 伺服器≥1.11)支持幾個調試鍵符,在這個送出中引入。觸發時,它們會執行與抓取相關的操作。
預設情況下(至少在最近的版本中),這些被禁用(預設鍵盤映射中不存在)。
但是,如果您已
xdotool
安裝,則可以通過在命令行上執行來呼叫它們:xdotool key NameOfKey
NameOfKey
您要啟動的鍵符在哪裡。例如,要將活動抓取列表列印到 X 伺服器日誌,請使用xdotool key XF86LogGrabInfo
.相關的鍵符是:
XF86LogGrabInfo
: 將活動抓取列表列印到 X 伺服器日誌XF86Ungrab
: 中斷所有活動的抓取,而不殺死持有抓取的應用程序XF86ClearGrab
: 殺死所有持有活動抓取的程序請注意,
XF86LogGrabInfo
僅列出主動抓取,而不是被動抓取,例如目前未按下的鍵上的抓取。如果您想獲取有關被動抓取的資訊,您需要啟動抓取:xdotool key XF86LogGrabInfo
在按下您感興趣的鍵弦或滑鼠按鈕組合時執行。執行以下操作:
- 跑步
sleep 1; xdotool key XF86LogGrabInfo
- 在 1 秒內,按下鍵和弦或滑鼠按鍵組合。
- 1 秒後,鬆開按鍵/按鈕。
- 檢查 X 伺服器日誌中的“主動抓取……”資訊(通常
/var/log/Xorg.0.log
)。