X11

使用 xdotool 後釋放修飾鍵

  • March 17, 2022

我在 bash 腳本文件中使用以下命令:

xdotool type --clearmodifiers $(xclip -o -sel c)

我使用快捷方式呼叫它,例如CTRL+SHIFT+e

該操作按預期工作。但是,完成後,修改鍵仍然被按下。這就是我需要解決的問題。

從 xdotool 手冊頁,這個問題是有道理的:

CLEARMODIFIERS

任何帶有–clearmodifiers 標誌的命令都將嘗試在命令期間清除任何活動的輸入修飾符並在之後恢復它們

我希望它們沒有被恢復,但既然它們是,我需要一個額外的命令來清除這些修飾符

背景:

我嘗試在腳本文件的末尾添加這些行:

xdotool keyup Control
xdotool keyup Shift

這導致我無法正確鍵入甚至使用滑鼠。

我正在使用 KDE 和 X11。我使用美國國際鍵盤佈局,並且在 KDE 系統設置中設置了以下鍵盤自定義:

  1. 兩個shift鍵一起啟用大寫鎖定,一個shift鍵禁用它
  2. 大寫鎖定作為 Ctrl

(啟動器擊鍵)的Keydown 消息CTRL+SHIFT+e已發送,而修飾鍵的 keyup 未發送。

sleep 0.2
xdotool keyup Control_L Control_R Shift_L Shift_R

實際的鍵 ( e) 也可能必須在 keyup 中列出,但排除它沒有問題。sleep 命令並不總是需要,但將它放在每個 xdotool 命令之前有助於加速問題,因為 xdotool 速度很快。

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