如何将 CTRL+q 按键映射到 CTRL+c 事件?

Ric*_*tte 4 xorg keyboard shortcut-keys

如何能在Ctrl+Q 组合键映射到Ctrl+C事件?

我的键盘映射到程序员 dvorak,我希望将Ctrl+ XCtrl+CCtrl+V 事件分别映射到Ctrl+ 'Ctrl+ QCtrl+J按键。

Mac OSX 有一个叫做Dvorak - Qwerty 的东西可以做到这一点。

您可能还想尝试 Dvorak-Qwerty,它使用 Dvorak 进行打字,但使用 Qwerty 进行键盘快捷键,例如?(command) A. 如果您已经按照键盘上的位置记住了常见的命令组合,例如 ?X,C,V(用于剪切、复制、粘贴)等,这会很方便,

到目前为止,我已经尝试了 xbindkeys 和 xdotool 的组合,但没有任何运气。

#Dvorak Cut
"xdotool key --delay 0 --clearmodifiers ctrl+x"
    m:0x4 + c:52
    Control + apostrophe 

#Dvorak Copy
"xdotool key --delay 0 --clearmodifiers ctrl+c"
    m:0x4 + c:53
    Control + q 

#Dvorak Paste
"xdotool key --delay 0 --clearmodifiers ctrl+v"
    m:0x4 + c:54
    Control + j
Run Code Online (Sandbox Code Playgroud)

我还尝试通过 XKB 使用以下条目。

// Ctrl+' for Cut
interpret apostrophe + Ctrl {action = Redirect(Key=<AB05>, modifiers=Control);};

// Ctrl+q for Copy
interpret q + Ctrl {action = Redirect(Key=<AD08>, modifiers=Control);};

// Ctrl+j for Paste
interpret j + Ctrl {action = Redirect(Key=<AB09>, modifiers=Control);};
Run Code Online (Sandbox Code Playgroud)

但这也行不通。

小智 5

您可以使用autokey-gtk. 如果您将 Autokey 设置为在登录时运行,它将位于后台并监视来自键盘和鼠标的输入。

示例:你说你想让Ctrl+ 表现Q得像Ctrl+ C。如果你问autokey-gtk到“按” Ctrl+CCtrl+Q被按下。

要安装,请autokey-gtk在终端中发出以下命令

sudo apt-get install autokey-gtk
Run Code Online (Sandbox Code Playgroud)

安装后,您可以通过 Dash 或auto-gtk在终端中输入来访问它。要设置上述组合键,请执行以下操作:

第1步

Run autokey-gtk
Run Code Online (Sandbox Code Playgroud)

第2步

File -> Create -> New Top-Level Folder创建一个新的顶级文件

第 3 步

选择文件夹并从File -> Create -> New Script创建新脚本

第四步

#输入脚本代码框中,输入"keyboard.send_keys(shortcut you desire to imitate)"

例子:

1. keyboard.send_keys("<ctrl>+c")

2. keyboard.send_keys("<ctrl>+v")

3. keyboard.send_keys("<ctrl>+x")
Run Code Online (Sandbox Code Playgroud)

注意:对要添加的每个热键重复步骤 3-4

第 5 步

对于您创建的每个脚本,单击Hotkey 旁边的第二个“设置按钮”并输入您将用来模仿的组合键。

在您的情况下,keyboard.send_keys("<ctrl>+c") script您将Q在文本框中键入click on the Control button,然后单击OK

**为每个脚本执行此操作,当然一定要修改您的热键。*

第 6 步

Click on *Edit* -> *Preferences*
Run Code Online (Sandbox Code Playgroud)

选中旁边的复选框 Automatically start Autokey at Login

这应该可以完成您的要求:)