AutoKey 是一款开源的 Linux 桌面自动化工具,一旦将其纳入您的工作流程,您会惊讶自己过去没有它该怎么办。 它可以是一个变革性的工具,可以提高您的工作效率,或者仅仅是一种减少与打字相关的身体压力的方法。
本文将介绍如何安装和开始使用 AutoKey,涵盖您可以在工作流程中立即使用的一些简单方法,并探索 AutoKey 高级用户可能会感兴趣的一些高级功能。
安装和设置 AutoKey
AutoKey 作为软件包在许多 Linux 发行版上可用。 该项目的安装指南 包含适用于许多平台的说明,包括从源代码构建。 本文使用 Fedora 作为操作系统平台。
AutoKey 有两种变体:autokey-gtk,专为基于 GTK 的环境(如 GNOME)而设计;autokey-qt,基于 QT。
您可以从命令行安装任一变体
sudo dnf install autokey-gtk
安装完成后,使用 autokey-gtk
(或 autokey-qt
)运行它。
探索界面
在将 AutoKey 设置为在后台运行并自动执行操作之前,您首先需要对其进行配置。 打开配置用户界面 (UI)
autokey-gtk -c
AutoKey 预配置了一些示例。 您可能希望在熟悉 UI 时保留它们,但如果您愿意,可以删除它们。

(Matt Bargenquast, CC BY-SA 4.0)
左侧窗格包含基于文件夹的短语和脚本层次结构。短语是您希望 AutoKey 代表您输入的文本。脚本是动态的、程序化的等价物,可以使用 Python 编写,并且基本上可以实现与键盘向活动窗口发送击键的相同结果。
右侧窗格是构建和配置短语和脚本的地方。
对您的配置感到满意后,您可能希望在登录时自动运行 AutoKey,这样您就不必每次都启动它。 您可以在 首选项 菜单(编辑 -> 首选项)中通过选择 登录时自动启动 AutoKey 来配置此功能。

(Matt Bargenquast, CC BY-SA 4.0)
使用 AutoKey 纠正常见的输入错误
修复常见的输入错误是 AutoKey 容易解决的问题。 例如,我总是输入“gerp”而不是“grep”。 以下是如何配置 AutoKey 来为您修复这些类型的问题。
创建一个新的子文件夹,您可以在其中对所有“拼写错误更正”配置进行分组。 在左侧窗格中选择 My Phrases,然后选择 文件 -> 新建 -> 子文件夹。 将子文件夹命名为 Typos。
在 文件 -> 新建 -> 短语 中创建一个新短语,并将其命名为“grep”。
通过突出显示短语“grep”,然后在 输入短语内容 部分中输入“grep”(替换默认的“输入短语内容”文本),配置 AutoKey 以插入正确的单词。
接下来,通过定义一个缩写来设置 AutoKey 如何触发这个短语。 单击 UI 底部 缩写 旁边的 设置 按钮。
在弹出的对话框中,单击 添加 按钮,并将“gerp”添加为新的缩写。 保持选中 删除键入的缩写; 这指示 AutoKey 将任何键入的单词“gerp”替换为“grep”。 取消选中 当作为单词的一部分键入时触发,这样,如果您键入包含“gerp”的单词(例如“fingerprint”),它不会尝试将其变成“fingreprint”。 它仅在“gerp”作为孤立词键入时才起作用。

(Matt Bargenquast, CC BY-SA 4.0)
将更正限制到特定应用程序
您可能希望仅当您在某些应用程序(例如终端窗口)中出现拼写错误时才应用更正。 您可以通过设置窗口过滤器来配置此功能。 单击 设置 按钮来定义一个。
设置窗口过滤器的最简单方法是让 AutoKey 为您检测窗口类型
- 启动一个新的终端窗口。
- 返回 AutoKey,单击 检测窗口属性 按钮。
- 单击终端窗口。
这将自动填充窗口过滤器,可能具有 gnome-terminal-server.Gnome-terminal
的窗口类值。 这就足够了,因此请单击 确定。

<p class="rtecenter"><sup>(Matt Bargenquast, <a href="https://open-source.net.cn/%3Ca%20href%3D"https://creativecommons.org/licenses/by-sa/4.0/" rel="ugc">https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a>)</sup></p>
保存并测试
对您的新配置感到满意后,请确保保存它。 单击 文件 并选择 保存 以激活更改。
现在进行大测试! 在您的终端窗口中,键入“gerp”,后跟一个空格,它应该会自动更正为“grep”。 要验证窗口过滤器是否正常工作,请尝试在浏览器 URL 栏或其他应用程序中键入单词“gerp”。 它不应该改变。
您可能认为这个问题可以通过 shell 别名 轻松解决,我完全同意! 与面向命令行的别名不同,无论您使用什么应用程序,AutoKey 都可以纠正错误。
例如,我常犯的另一个错误是“openshfit”而不是“openshift”,我将其输入到浏览器、集成开发环境和终端中。 别名无法完全解决这个问题,而 AutoKey 可以在任何情况下纠正它。
使用 AutoKey 输入常用的短语
您还可以通过许多其他方式调用 AutoKey 的短语来帮助您。 例如,作为一名在 OpenShift 上工作的站点可靠性工程师 (SRE),我经常在命令行上键入 Kubernetes 命名空间名称
oc get pods -n openshift-managed-upgrade-operator
这些命名空间是静态的,因此它们是理想的短语,AutoKey 可以在键入临时命令时为我插入。
为此,我创建了一个名为 Namespaces 的短语子文件夹,并为我经常键入的每个命名空间添加了一个短语条目。
分配热键
接下来,最重要的是,我为子文件夹分配了一个 热键。 每当我按下该热键时,它都会打开一个菜单,我可以在其中选择(使用 箭头键+Enter 或使用数字)我要插入的短语。 这减少了我需要输入这些命令的击键次数,只需几次击键即可。
My Phrases 文件夹中 AutoKey 的预配置示例配置了 Ctrl+F7 热键。 如果您在 AutoKey 的默认配置中保留了这些示例,请尝试一下。 您应该看到所有可用短语的菜单。 使用数字或箭头键选择您想要的项目。
高级 AutoKeying
AutoKey 的 脚本引擎 允许用户运行可以通过相同的缩写和热键系统调用的 Python 脚本。 这些脚本可以执行诸如切换窗口、发送击键或通过支持的 API 函数执行鼠标单击等操作。
AutoKey 用户已经通过发布自定义脚本供其他人采用来拥抱此功能。 例如,NumpadIME 脚本 将数字键盘转换为旧的手机式文本输入方法,并且 Emojis-AutoKey 可以轻松地通过将诸如 :smile:
之类的短语转换为其表情符号等效项来插入表情符号。
这是一个我设置的小脚本,它进入 Tmux 的复制模式,将前一行的第一个单词复制到粘贴缓冲区中
from time import sleep
# Send the tmux command prefix (changed from b to s)
keyboard.send_keys("<ctrl>+s")
# Enter copy mode
keyboard.send_key("[")
sleep(0.01)
# Move cursor up one line
keyboard.send_keys("k")
sleep(0.01)
# Move cursor to start of line
keyboard.send_keys("0")
sleep(0.01)
# Start mark
keyboard.send_keys(" ")
sleep(0.01)
# Move cursor to end of word
keyboard.send_keys("e")
sleep(0.01)
# Add to copy buffer
keyboard.send_keys("<ctrl>+m")
sleep 在那里是因为有时 Tmux 无法跟上 AutoKey 发送击键的速度,并且它们对整体执行时间的影响可以忽略不计。
使用 AutoKey 自动化
我希望您喜欢这次使用 AutoKey 进行键盘自动化的探索,并且它为您提供了一些关于如何改进您的工作流程的好主意。 如果您以有帮助或新颖的方式使用 AutoKey,请务必在下面的评论中分享它。
4 条评论