Linux 中的自动键

Linux 中的自动键

我想按选定的热键立即粘贴 YYYYMMDDHHmmSS 格式 20180509145153 的时间戳,就像 Windows 上的 AutoHotKey 允许的那样。

答案1

您可以根据您希望发生的位置在不同级别上进行操作。例如,您可以配置您的或首选文本编辑器这样做,但这只会影响他们。

或者您可以配置screen/tmux或您的终端仿真器来执行此操作,当终端仿真器是活动窗口时,它会影响在该终端仿真器中运行的命令。

在 X11 下,您可以用来xbindkey处理特定的按键或按键组合,并让它模拟一系列按键和按键释放事件(例如使用xte或)。xdotool这适用于连接到同一 X 服务器并且处于活动状态的任何应用程序。

例如,添加到您的~/.xbindkeysrc

"sleep 0.1; xdotool type --clearmodifiers $(date +%Y%m%d%H%M%S)"
  control+space

以便将该时间戳作为一系列按键发送Ctrl+Space。 (我发现如果我不添加sleep 0.1,我有时会错过时间戳的开头)。

另一种选择是将时间戳存储为 PRIMARY X11 选择,并模拟鼠标中键单击,这对于许多应用程序来说会导致 PRIMARY 选择的内容插入到当前鼠标指针位置。在~/.xbindkeysrc

"date +%Y%m%d%H%M%S | tr -d '\n' | xclip; sleep 0.1; exec xdotool click --clearmodifiers 2"
  control+space

答案2

您可以在不同的操作系统中使用不同的脚本来完成此操作。

Linux 中的自动键

自动键 Python脚本语言用于以下解决方案。在我的 KUbuntu 版本 20.04(基于 Ubuntu)中进行了测试。

设置热键自动键GUI 是不言自明的(例如 Meta+n)

# output = system.exec_command("date") # Sa 20. Feb 09:38:39 CET 2021
output = system.exec_command("(date +%Y%m%d%H%M%S)") # 20210220093839
keyboard.send_keys(output)

Linux 中的自动热键

您还可以在 Linux 中使用 AutoHotkey(需要使用 Wine 进行一些设置)。

下面是一个 Github 解决方案示例:https://github.com/sl5net/Lintalist4Linux。它使用的提示是写在https://ubuntuhandbook.org/index.php/2020/01/install-wine-5-0-stable-ubuntu-18-04-19-10/

相关内容