Command-Line

在命令行上操作 X 鍵和指針抓取

  • November 27, 2016

有哪些命令行工具可以列出和管理 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僅列出主動抓取,而不是被動抓取,例如目前未按下的鍵上的抓取。如果您想獲取有關被動抓取的資訊,您需要啟動抓取:xdotool key XF86LogGrabInfo在按下您感興趣的鍵弦或滑鼠按鈕組合時執行。執行以下操作:

  1. 跑步sleep 1; xdotool key XF86LogGrabInfo
  2. 在 1 秒內,按下鍵和弦或滑鼠按鍵組合。
  3. 1 秒後,鬆開按鍵/按鈕。
  4. 檢查 X 伺服器日誌中的“主動抓取……”資訊(通常/var/log/Xorg.0.log)。

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