如何在Linux上使用AutoKey自动执行重复键入(文本扩展)

文本扩展(或替换)可通过将缩写词转换为长字符串来帮助您节省时间,并通过在任何应用程序中快速插入需要频繁键入的短语,地址,代码等来提高生产率。本文介绍了如何使用自动执行重复键入 自动键,这是适用于Linux / X11的桌面自动化实用程序。无论您使用哪种应用程序,使用它都可以减少键入并完成更多工作,因为文本扩展/替换可以在任何应用程序中使用-网络浏览器,文本或代码编辑器,等等。
例如,您可以输入 addr,然后按 SpaceTab 要么 Enter,然后自动键将其扩展到您的完整地址。或者您可以在自动键中设置键盘快捷键,然后按此键自动在重点应用程序中输入您的地址(或您喜欢的任何其他文本)。还有一些更高级的用例,例如例如,选择一些文本并将其包装在代码块中。值得注意的是,由于这是X11应用程序,因此如果您使用Wayland,它将无法正常工作(例如,Fedora默认使用Wayland;如果您要使用Xorg,则必须注销,然后从“登录”按钮旁边的齿轮图标中选择“ Xorg上的GNOME”。

安装自动密钥

我强烈建议使用最新的AutoKey版本,例如在具有AutoKey 0.90.4(Debian具有相同版本,但我没有在Debian中尝试过)的Ubuntu上,尝试使用此应用程序时我经常会死机,此问题在安装了AutoKey GitHub上可用的最新版本后已修复 项目页面。安装自动密钥:

  • 基于Debian,Ubuntu和基于Debian或Ubuntu的Linux发行版,例如Linux Mint,Elementary OS,Pop!_OS等:

从以下位置下载最新的自动密钥 GitHub发布标签您将找到用于下载(安装)自动密钥公用DEB软件包的DEB软件包,以及用于QT版本的autokey-qt(例如,如果您使用Kubuntu / KDE Plasma)或用于GTK版本的autokey-gtk(例如,如果您将Ubuntu与基于GNOME的桌面一起使用,包括Xfce,Cinnamon,MATE等)。
在AutoKey GitHub版本页面上安装DEB之前,请删除您可能已安装的所有AutoKey软件包:

sudo apt purge autokey*

例如,假设您已经在主文件夹中下载了autokey-common和autokey-gtk DEB软件包,请使用以下命令将它们安装在Debian / Ubuntu上:

sudo apt install ~/autokey-*.deb
  • 软呢帽:
    • 安装AutoKey-GTK:
sudo dnf install autokey-gtk
    • 安装AutoKey-Qt:
sudo dnf install autokey-qt
  • 如果您使用其他Linux发行版,请在存储库中搜索“自动密钥”,或查看 安装说明 在AutoKey项目页面上(您也可以克隆存储库并直接运行而不安装它)。

值得注意的是AutoKey需要一个托盘/指示器才能工作。如果您使用GNOME Shell,请确保有托盘(例如,通过安装 AppIndicator支持 扩展名-在Ubuntu上不需要,因为默认情况下已安装此扩展名。该托盘可用于显示主应用程序窗口(AutoKey在托盘中启动,其主窗口处于隐藏状态)并运行短语或脚本。
我还应该补充一点,需要运行自动键才能使文本扩展缩写和热键正常工作,因此请确保启用 Automatically start AutoKey at login 从其首选项中选择。

使用AutoKey在Linux上进行文本扩展

您可以在下面的说明中更改缩写和词组以适合您的需要,因为这仅是显示AutoKey如何工作以及如何创建自己的文本扩展名的示例。
让我们创建一个缩写,将使用AutoKey替换为一个短语。启动主AutoKey窗口(单击 Show Main Window 从“自动键”托盘菜单中),单击 My Phrases 在边栏中,然后单击 New > Phrase 从工具栏中添加一个新短语。让我们将此新短语称为 test 在这个例子中。
在右侧窗格中,输入要将其扩展到的短语。对于此测试,让我们使用 Testing AutoKey text expansion on Linux 作为短语:自动键文本扩展教程1

AutoKey支持使用缩写或热键来插入此重复文本,下面我将解释如何使用这两个选项。

使用缩写来展开文字

点击 Set 旁边的按钮 Abbreviations在弹出的窗口中,添加 test 作为缩写,然后单击 OK 按钮(将缩写选项保留为默认值,如下面的屏幕截图所示):自动键文本扩展教程2

接下来,点击 Save 按钮,然后就可以尝试进行测试扩展了。
要尝试此测试文本扩展,请键入 test 在文本编辑器中,在浏览器文本输入字段中或所需的任何位置,然后按 SpaceEnter 要么 Tab或任何非单词,且文本应从 testTesting AutoKey text expansion on Linux
这是因为在缩写窗口中,我们使用了默认触发器 All non-word您可以更改此设置,以便仅在按时替换文本 Space and Enter, 要么 Tab,从缩写窗口:自动键缩写

您还可以在此处设置各种其他选项,例如将短语大小写匹配为键入的缩写,作为单词的一部分键入时触发(我不推荐这样做),等等。

使用热键插入重复文本

缩写只是使用自动键插入文本的一种方法。如果愿意,还可以使用键盘快捷键插入文本,不需要键入缩写。
要插入一些需要使用键盘快捷键经常输入的文本,请单击 Set 旁边的按钮 Hotkey,然后点击 Press to Set 在新打开的窗口中,然后按一下要用于此短语的组合键:自动键设置热键

请确保使用尚未使用的热键,否则它可能无法正常工作/会干扰已设置的热键。要尝试此操作,请将其设置为类似 Ctrl + F1 (至少不应由系统设置)。
记得点击 Save 设置词组热键后,单击“自动键”工具栏上的“按钮”,否则更改将没有任何效果。现在尝试一下:将文本编辑器,Web表单中的某些文本字段聚焦等,然后按已设置的热键在AutoKey中设置 Testing AutoKey text expansion on Linux 按下键盘快捷键后,应会自动插入该词组。

将文本扩展限制为特定的应用程序/窗口

如果你想:

  • 仅在特定的应用程序或窗口中使用文本扩展,或者
  • 在多个应用程序/窗口中使用相同的缩写/热键,但对于每个应用程序或窗口使用不同的短语

然后,您可以将窗口过滤器应用于您的词组。自动按键设置窗口过滤器

为此,请按 Set (1)旁边的按钮 Window Filter,然后点击 Detect Window Properties (2)弹出的窗口中的按钮,然后单击您希望此文本扩展起作用的窗口(3)(上面示例屏幕快照中的Gedit)。
之后,一个新的 Set Window Filter 窗口将弹出,询问您是否要使用窗口类(因此,无论其标题如何,它都与该窗口匹配)或窗口标题(因此,仅当它具有该特定窗口标题时,它才与该窗口匹配)-选择一个满足您的需求,然后单击 OK (四)
记得点击 Save 设置此设置后,请单击“自动键”工具栏中的“否”按钮,否则所做的更改将无效。

将文字或代码包装在现有文字周围

我开始使用AutoKey的主要原因之一是能够在现有文本周围包装一些代码。例如,我可以选择 this text,然后按键盘快捷键,然后 this text 变成 this text
AutoKey实际上内置了一个用于执行此任务(和其他一些高级任务)的示例,但我想还是应该提到这一点,因为可能尚不清楚使用此简洁的应用程序既可行又容易做到这一点:

text = clipboard.get_selection()
keyboard.send_key("")
keyboard.send_keys("The text %s was here previously" % text)

您将在自动键中找到此示例 Sample Scripts 在其侧边栏中, Selection Test 名称。
分配了键盘快捷键后,此脚本会将当前选定的文本替换为 The text %s was here previously,在哪里 %s 是原始选定的文本。
示例:如果您选择单词 TEST,然后按一下分配给该脚本的热键, TEST 被替换为 The text TEST was here previously (这在可编辑的文本字段中有效,因此请不要在此网页上尝试它,因为它将无法正常工作)。
这样,您可以例如包装 要么 `` `` 在所选文字周围,例如:

text = clipboard.get_selection()
keyboard.send_key("")
keyboard.send_keys('%s' % text)

使用此选择 TEST 然后按分配的热键进行更改 TESTTEST
附带说明,如果要放置AutoKey v0.95.4或更高版本,请确保使用 短语中的文字,或者如果您想使用 keyboard.send_keys 功能,因为该版本由于错误而无法在此版本之前发布。
AutoKey维基 用于常见问题,已知限制和一些示例脚本。

Sidebar