我在 bash 脚本文件中使用以下命令:
xdotool type --clearmodifiers $(xclip -o -sel c)
我使用快捷方式调用它,例如CTRL+SHIFT+e
该操作按预期进行。但是,完成后,修改键仍保持按下状态。这就是我需要解决的问题。
从 xdotool 手册页来看,这个问题是有道理的:
透明改性剂
任何带有 --clearmodifiers 标志的命令都将尝试清除命令期间任何活动的输入修饰符然后恢复它们。
我希望它们没有被恢复,但既然它们被恢复了,我需要一个额外的命令来清除这些修饰符。
背景:
我尝试在脚本文件的末尾添加这些行:
xdotool keyup Control
xdotool keyup Shift
这导致我无法正确打字,甚至无法正确使用鼠标。
我正在使用 KDE 和 X11。我使用美国国际键盘布局,并且在 KDE 系统设置中设置了以下键盘自定义设置:
- 两个 Shift 键一起启用大写锁定,而一个 Shift 键则禁用它
- 大写锁定为 Ctrl
答案1
(激活器击键)的 keydown 消息CTRL+SHIFT+e
已发送,而修饰键的 keyup 未发送。
sleep 0.2
xdotool keyup Control_L Control_R Shift_L Shift_R
实际的键 ( e
) 可能也必须列在 keyup 中,但排除它没有问题。 sleep 命令并不总是需要的,但将其放在每个 xdotool 命令之前有助于加快解决问题的速度,因为 xdotool 速度很快。