将 Caps Lock 重新映射到 Ctrl-b

将 Caps Lock 重新映射到 Ctrl-b

如何使用 xkb 或其他工具在终端中将Caps Lock 永久绑定到ctrl+ ?b

(这是为了让Caps Locktmux 成为默认的前缀键。如果太困难,它也可以映射到特定的键,例如功能键,然后可以将其设为 tmux 前缀。)

答案1

XKB 适用于 Xwindows 或 Wayland GUI。它不会影响虚拟控制台,但 GUI 终端仿真器也可以。有关 XKB 背景,我将向您指出一些(概述,系统与用户)..其他(自定义选项)..答案(自定义规则)

下面将允许您使用您通常使用的任何工具( 、设置、GNOME 面板等)caps:myf13向现有的 XKB 布局添加新选项。setxkbmaplocalectl


定义选项

现有的 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 包更新时,您的更改都会被覆盖。

最后,救星出现了,很简单:

  1. 安装input-remapper
  2. 咔哒,咔哒!完成!

https://github.com/sezanzeb/input-remapper

顺便说一句,如果你使用的是 Arch Linux,那么yay -S input-remapper-git

相关内容