从快捷方式触发时 Cnee 命令不起作用

从快捷方式触发时 Cnee 命令不起作用

我正在使用 Ubuntu 20.04 及其默认桌面,无法使用键盘快捷键触发 cnee 宏。

我用 cnee 录制了一个简单的宏并将其保存在文件中/tmp/recorded_macro.xnl。如果我在终端中使用以下 linux 命令,则宏可以正确播放(我的宏只需在终端中输入“test”即可):

cnee --replay -sp 0 -f /tmp/recorded_macro.xnl

现在,我想使用键盘快捷键在焦点窗口是文本编辑器(例如 emacs、visual studio、gnome-terminal 等)时启动相同的宏。目的是在焦点窗口中写入“test”。为此,我创建了一个键盘快捷键,它会触发完全相同的cnee命令,并在焦点位于多个文本编辑器上时尝试了它。不幸的是,当我使用快捷键时,编辑器中什么都没有写入。

为了检查快捷方式是否正确触发,我创建了以下脚本并将其与另一个键盘快捷键关联:

#!/bin/bash
cnee --replay -sp 0 -f /tmp/recorded_macro.xnl
touch /home/user/test

如果我在终端中执行该脚本,它就会起作用(在终端中写入“测试”并/home/user/test创建文件)。

但是,当我在焦点位于文本编辑器时使用快捷方式时,会创建文件“test”(因此执行脚本)但文本编辑器中不会写入任何文本。

您知道为什么以及我该如何解决这个问题吗?

答案1

为了触发 cnee 命令,我使用了快捷方式:Ctrl+Shift+H

由于我使用了重播速度-sp 0,因此键“t”、“e”、“s”和“t”被立即“按下”。

速度太快,快捷键的CtrlShift键仍然被按下。因此,编辑器不是写“测试”,而是解释为 Ctrl+Shift+tCtrl+Shift+e和。Ctrl+Shift+sCtrl+Shift+t

一种解决方案是在执行 cnee 重放之前添加一个小的延迟-t 1。这对我来说并不完全令人满意,因为连续多次执行宏会让我每次都等待一会儿,但它确实有效。

感谢@WU-TANG 的帮助。

编辑:一种解决方法是让快捷方式触发一个 bash 脚本,该脚本会等待直到Ctrl不再Shift按下 cnee 命令时才执行。不过我还不知道如何在 bash 中做到这一点。

相关内容