如何使用 xkb 或其他工具在终端中将Caps Lock 永久绑定到ctrl+ ?b
(这是为了让Caps Locktmux 成为默认的前缀键。如果太困难,它也可以映射到特定的键,例如功能键,然后可以将其设为 tmux 前缀。)
答案1
XKB 适用于 Xwindows 或 Wayland GUI。它不会影响虚拟控制台,但 GUI 终端仿真器也可以。有关 XKB 背景,我将向您指出一些(概述,系统与用户)..其他(自定义选项)..答案(自定义规则)。
下面将允许您使用您通常使用的任何工具( 、设置、GNOME 面板等)caps:myf13
向现有的 XKB 布局添加新选项。setxkbmap
localectl
定义选项
现有的 XKB capslock 选项列在 中/usr/share/X11/xkb/rules/evdev.lst
。查看.../rules/evdev
文件中的相应选项,您可以看到这些选项都是从文件 中加载的.../symbols/capslock
。它们都是修饰键,这可能不是最好的例子,但caps:backspace
可能是一个很好的比较。查看文件,我们找到定义此选项的节:
hidden partial modifier_keys
xkb_symbols "backspace" {
key <CAPS> { [ BackSpace ] };
};
grep
通过查看其他符号文件,我们可以看到 F13 符号只是F13
。新的选项节可能如下所示:
hidden partial modifier_keys
xkb_symbols "myf13" {
key <CAPS> { [ F13 ] };
};
如您所见,我们仅更改了选项的名称和分配给键的符号。
连接起来
剩下要做的就是连接新的节。在基本的 Xwindows 系统上,使用命令行工具(如setxkbmap
和 )xkbcomp
,自定义用户位置就可以了;对于 GNOME、KDE 或 Wayland 系统,您需要在系统 XKB 数据库中进行更改。
作为系统变更的示例(您需要sudo
访问权限才能创建或编辑这些文件):
将自定义节放在新的符号文件中,例如
/usr/share/X11/xkb/symbols/mycaps
。将其添加到
/usr/share/X11/xkb/rules/evdev
以下行的正下方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
:<option> <configItem> <name>caps:myf13</name> <description>Caps Lock is F13</description> </configItem> </option>
最后,备份您的
.../rules/evdev*
文件,或创建一个补丁文件。每次xkb-data
更新软件包时,您的更改都会被覆盖。如果您将修改节保存到文件中.../symbols/capslock
,则也需要备份它。
一旦完成这些更改,您就应该能够像设置其他 XKB 选项一样设置此选项。您可能需要重新启动任何 GNOME/KDE 会话,以便控制面板能够获取更改,但类似以下工具setxkbmap
应该可以立即找到它:setxkbmap -option caps:myf13
答案2
我给@quixotic 点赞了,但是这个方法太难了,需要反复尝试。因为:
每当 xkb-data 包更新时,您的更改都会被覆盖。
最后,救星出现了,很简单:
- 安装
input-remapper
- 咔哒,咔哒!完成!
https://github.com/sezanzeb/input-remapper
顺便说一句,如果你使用的是 Arch Linux,那么yay -S input-remapper-git