如何模拟键盘输入?

这是让我无法享受Ubuntu / Linux的最重要的事情。

理想情况下,我希望能够在Ubuntu上运行我的AutoHotKey脚本,但是我没有太多运气来使用Wine。

这是我在AHK中所做的事情(使用额外的修饰符也可以, Shift + Alt + lShift + )。

!l:: Send, {Right} +!l:: Send, +{Right} ^!l:: Send, ^{Right} ^+!l:: Send, ^+{Right} 

我尝试了AutoKey,但它没有消耗输入,重新映射Alt + I到右箭头键工作,但它仍然执行Alt + I ,有时从应用程序菜单中选择一个项目。

我得到的最接近的是设置热键的xbindkeys ,这看起来效果很好。 和xvkbd用于模拟输入; 这部分真的很不对劲; 它并不适用于所有程序,并且使我在其他问题中失去了很多关注。

对于任何想知道我正在尝试做什么的人:我使用I J K L作为箭头键而Alt是关闭的。

我从来没有使用过xvkbd,但还有另外两个很棒的程序来模拟我喜欢和使用的键盘输入。 一个是xdotool ,另一个是xdotool

 sudo apt-get install xautomation xdotool 

xdotoolxdotool都非常相似,但是因为我使用xte最多,所以我会进入那个。

XTE:

xte最基本的语法是:

 xte 'command key/mousebutton/xyCoordinates' 

xte可以做的不仅仅是创建键盘输入,它还可以移动鼠标并模拟鼠标按键等。

语法示例:

  • 要拨打单键,请按: xte 'key keyName'

  • 要调用组合键: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • 要调用鼠标按钮: xte 'mouseclick buttonNumber' (您可以通过xev找到按钮编号)

  • 移动鼠标: xte 'mousemove xCoordinate yCoordinate'

  • 和更多! 读man xte

键名:

这是一个关键名称列表(除了显而易见的名称):

 Home Left Up Right Down Page_Up Page_Down End Return BackSpace Tab Escape Delete Shift_L Shift_R Control_L Control_R Meta_L Meta_R Alt_L Alt_R Multi_key Super_L Super_R 

读:

您可能也有兴趣阅读:

如何更改键盘上的键? (如何创建自定义键盘命令/快捷方式?)

如何重新映射某些键或设备?