有没有办法将文本片段分配给击键

Mar*_*ger 2 keyboard

我想创建一个输入电子邮件地址、邮政地址、城市/州、目录名称的按键。如何创建这些映射?

van*_*ium 6

不存在真正“明显”的方法,即存在不同的方法。

对于当前的旧版图形服务器:Xorg

对于新用户来说,最容易使用的可能是键盘宏程序Autokey。它提供了一个图形用户界面来定义文本片段和扩展。您可以使用快捷键输入某些短语,但更好的是,它可以监视您的输入,并且当您输入定义的缩写(例如:add)时,它会将其扩展为完整的短语。

Espanso的工作方式类似,但可能更难学习设置。您可以通过文本文件对其进行配置。不过,该文档非常好。

许多人使用自定义脚本,这些脚本使用自动化工具,例如xdotool模拟键入击键和xclip/或xsel操作剪贴板。这样的脚本使用快捷键调用,然后允许快速选择并插入片段。Jacob Vlijm 在Askubuntu上发布了一个现成的脚本。Snippy 文本扩展器是一个用 bash 编写的脚本。在这两个示例中,您将文本片段作为小文本文件放置在定义的文件夹中。

一种非常简单的方法,仅使用xdotool分配给快捷键

分配给快捷键的单行 xdotool 命令

对于非常基本的需求,您可以将模拟某些打字的命令分配给快捷键。例如,如果您希望Shift+F1输入您的全名,那么您可以将以下命令分配给Shift+F1键。

xdotool keyup Shift+F1 type "My full name"
Run Code Online (Sandbox Code Playgroud)

备注 keyup模拟再次释放快捷键。如果脚本在您仍按住 时启动Shift,否则将输入大写字母。

多行 xdotool 脚本

对于更复杂的片段,您最好创建一个小的 xdotool 脚本。例如,address在文件夹中创建脚本,例如在主文件夹下的“Snippets”文件夹中。输入以下文本并保存。

#!/usr/bin/xdotool
keyup Shift+F2
type "My full name"
key Return
type "Street and number"
key Return
type "Zip and City"
Run Code Online (Sandbox Code Playgroud)

备注:shebang 行指向xdotool可执行文件。这样,xdotool将被加载以执行后面的命令。使用“回车”键 ( ) 输入新行Enter

使用文件管理器中的“文件属性”对话框使文本文件可执行。

为脚本分配快捷键,例如Shift+ F2:作为命令,指定脚本的完整路径名,例如/home/<yourlogin/Snippets/address

面向未来的图形服务器:Wayland

上面提到的Espanso也支持 Wayland。

Wayland 提供了用于操作剪贴板 ( wl-clipboard) 和键入字符 ( ydotool, ) 的命令行工具。evemu到目前为止,我还不知道已发布的、随时可用的代码片段脚本。

wl-clipboard可在 Ubuntu 软件存储库中找到。`ydotool 也是如此,但在 22.04 中,它是一个非常旧的版本,无法正常工作。幸运的是,在 Ubuntu 上编译它相当容易。