将Caps Lock重新映射到Ctrl-b
在终端中如何使用xkb或其他工具将Caps Lock永久绑定到ctrl + b ?
(这是为了使Caps Lock成为tmux的默认前缀键。如果太难了,它也可以映射到特定的键,例如一个function键,然后可以将其作为tmux前缀。)
XKB适用于Xwindows或Wayland GUI。 它不会影响虚拟控制台,但GUI终端仿真器会很好。 对于XKB背景,我将指向一些(概述,系统与用户) .. 其他(自定义选项) .. 答案(自定义规则) 。
以下将允许您使用您通常使用的任何工具( setxkbmap
, localectl
设置,GNOME面板等)向现有的XKB布局添加一个新的选项,如caps:myf13
。
定义选项
/usr/share/X11/xkb/rules/evdev.lst
中列出了现有的XKB大写锁定选项。 查看.../rules/evdev
文件中的相应选项,您可以看到这些选项都是从文件.../symbols/capslock
加载的。 所有这些都是修饰键,这可能不是最好的例子,但是caps:backspace
可能是一个很好的比较。 查看该文件,我们找到定义此选项的节:
hidden partial modifier_keys xkb_symbols "backspace" { key { [ BackSpace ] }; };
通过其他符号文件,我们可以看到F13符号只是F13
。 新选项节可能如下所示:
hidden partial modifier_keys xkb_symbols "myf13" { key { [ F13 ] }; };
如您所见,我们只更改了选项的名称和分配给键的符号。
把它挂起来
唯一要做的就是连接新节。 在基本的Xwindows系统上,使用命令行工具(如setxkbmap
和xkbcomp
, 自定义用户位置可以正常运行; 对于GNOME,KDE或Wayland系统,您需要在系统XKB数据库中进行更改。
作为系统更改的示例(您将需要sudo
访问权来创建或编辑这些文件):
-
将自定义节放在新的符号文件中,例如
/usr/share/X11/xkb/symbols/mycaps
。 -
将其添加到
/usr/share/X11/xkb/rules/evdev
正好位于caps:backspace
下方caps:backspace
:caps:myf13 = +mycaps(myf13)
-
…添加到
/usr/share/X11/xkb/rules/evdev.lst
:caps:myf13 Caps Lock is F13
-
…添加到
/usr/share/X11/xkb/rules/evdev.xml
: -
最后,备份您的
.../rules/evdev*
文件,或创建补丁文件。 每当更新xkb-data
软件包时,您的更改都将被覆盖。 如果您将修改节保存到.../symbols/capslock
文件中,则还需要备份它。
完成这些更改后,您应该能够将此选项设置为任何其他XKB选项。 您可能需要重新启动控制面板的任何GNOME / KDE会话来获取更改,但是像setxkbmap
这样的工具应该立即找到它: setxkbmap -option caps:myf13