AutoHotkey 是否有等效的产品/方法?
对于那些不知道的人来说,这是一款允许您对鼠标移动和键盘进行编程的产品。这使我能够“宏”程序上的某些功能,而不必手动执行。在过去,他们习惯称他们为键盘填充者。但这只是解决方案的一半,因为我还需要一个“鼠标移动”填充器。
有这样的猛兽吗?
答案1
Linux 上有一个 AutoHotKey 端口,称为铁AHK和一个类似的工具称为自动键。我也没用过,不知道效果如何。
除了此类程序之外,您找不到完全相同类型的自动化工具。 UNIX 系统上基本的用户自动化工具是 shell。 shell 是结合其他工具的粘合剂:它可以启动外部程序并控制它们交换数据的方式。 shell 本身不包含任何操作 GUI 概念(如窗口和鼠标指针)的内容。您所做的就是在 shell 脚本中调用专门的工具,特别是xdo工具操作窗口并注入击键和鼠标事件。
例如,以下脚本单击Myapp窗口中的位置(40,20)。
#!/bin/sh
xdotool search --class Myapp \
mousemove --window %1 40 20 \
click 1
¹除了德特克什,但我从未见过它的 Linux 端口。
答案2
有几个项目可以解决这个问题。据我所知,最活跃的两个是 斯库里和自动键(我帮助支持的一个项目。)
我没有使用过 sikuli,但它似乎是基于在屏幕上查找模式并根据它们触发操作。
AutoKey 允许用户定义触发短语和热键,以扩展短语(类似于非常强大的自动更正功能)或运行用 Python3 编写的脚本,仅受用户编程技能的限制。它提供了用于生成键盘和鼠标事件的 API。它还与 Xautomation 集成,允许您在屏幕上找到小图像并将鼠标光标移动到它。
我已经使用 AutoKey 多年并在我们的网站上支持它列表。它就像许多生产力工具:没有它你也可以过得去,但一旦你开始使用它,你就会想知道没有它你是怎么做的。
一些具体细节:
AutoKey 不适用于 AutoHotKey 定义和脚本。它们必须被重写。
我确实编写了一个概念验证 bash 脚本(可根据要求提供),它将 AutoHotKey 短语转换为 AutoKey 短语,但这只是一个起点,并且忽略了 AutoHotKey 的大部分选项。
由于 AutoKey 脚本是用 Python3 编写的,因此还可以从脚本中调用 xdotool 和 wmctrl 等工具来提供附加功能,但这通常不是必需的。尽管 AutoKey 脚本是用 Python 编写的,但只需非常有限的 Python 知识就可以完成很多工作。对于大多数用途来说,您不需要成为一名流利的 Python 程序员。
如果您使用基于 Debian 的发行版,请不要安装您的发行版提供的 AutoKey 版本。他们的 AutoKey 软件包没有维护并且非常旧。从以下位置获取当前版本我们。编辑:这个问题在 2020 年的 Debian 测试和衍生版本中得到了纠正。他们现在提供最新版本。
答案3
对于像我这样的菜鸟来说,这是一个菜鸟解决方案:
大多数桌面环境 (DE) 都包含内置键盘快捷键编辑器。使用快捷方式编辑器,您可以编写自定义 bash 脚本、控制台命令等。
要获得超出 DE 通过自定义快捷方式实现的类似 AHK 的功能,请安装 xdotool ( sudo apt install xdotool
) 并将 xdotool 命令写入快捷方式编辑器(如果为您提供了多种类型快捷方式的选项,请选择“命令”选项):
xdotool [command]
man xdotool
(在终端中输入以访问xdotool手册。)
如果您使用 xdotool 来扩展自定义快捷方式,最好在将命令设置为热键之前在终端中输入命令,以确保其按预期工作。
我还没有弄清楚如何在 Linux 中获得类似 AHK 的热字符串,但如果我发现可行的解决方案,我会更新。
答案4
使用 AutohotkeyX,它是 autohotkey 的最新 WINE 端口,根据 winehq 测试,它可以执行 Autohokey 在 Windows 上能够执行的所有操作。这无疑是最好、最直接的答案。
https://appdb.winehq.org/objectManager.php?sClass=version&iId=17738
我没有亲自测试过这个,但 WINEHQ 结果倾向于