如何在 Arch Linux 中将 Caps Lock 键映射到 Escape 键

39 keyboard arch-linux xmodmap keymap

我的操作系统是 Arch Linux amd64,Gnome ENV。

我想在 Arch Linux中将Caps Lock密钥映射到Esc(escape)。我运行命令:

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
Run Code Online (Sandbox Code Playgroud)

它运行良好,但片刻之后,Caps Lock 键再次起作用。我必须再次运行命令。

我很确定这个解决方案可能在一年前运行良好。我的问题是什么?谁能帮我在 Arch Linux 操作系统中永远将 Caps Lock 键映射到 Escape 键?

pil*_*ona 62

以下任何一项(按复杂性递增的顺序):

  1. 使用setxkbmap重新映射键(不需要守护,是独立于你的桌面环境或窗口管理器)。不要忘记exec gnome-session在您的~/.xinitrcor 中的(或类似的)行之前添加命令~/.xsession

     setxkbmap -option caps:escape
    
    Run Code Online (Sandbox Code Playgroud)

    setxkbmap可以在包extra/xorg-setxkbmap 中找到

  2. dconf-editor? org.gnome.desktop.input-sources.xkb-options? 添加caps:escape到上述字段。

  3. gnome-session-settings? 启动程序 ? 添加 ?名称=重新映射大写锁定转义,命令=setxkbmap -option caps:escape

  4. 创建自定义键盘布局

仅供参考,我通过grep ping /usr/share/X11/xkb/rulesfor capsand获得了 XKB 规则esc

  • 关于没有。1:如果你想交换它而不是有两个转义键,你可以运行`setxkbmap -option caps:swapescape`。 (2认同)

sty*_*fly 8

配置文件

您可以通过编辑文件来实现这一点/etc/X11/xorg.conf.d/00-keyboard.conf

示例文件:

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  
Run Code Online (Sandbox Code Playgroud)

您可以指定多个 XkbOptions,例如caps:swapcaps,terminate:ctrl_alt_bksp用于交换 esc 和大写字母,但也允许使用CtrlAlt Backspace. 您可以在 中找到有关此的更多信息man xkeyboard-config

图形用户界面

您还可以使用 GNOME Tweak Tool(gnome-tweak-tool 包)。只需单击Typing,然后从Ctrl position菜单中选择您喜欢的任何内容(见下图)。

在此处输入图片说明


小智 5

为了在 中使用X,Arch Wiki Gnome 页面提供了使用 XkbOptions 修改键盘的说明:

使用 dconf 编辑器,导航到名为 org.gnome.desktop.input-sources.xkb-options 的键并将所需的 XkbOptions(例如“caps:swapescape”)添加到列表中。

在控制台中,您可以为相同的效果创建自定义键映射。以必需改变创建个性化的键盘映射CapsLock,并Escape/usr/share/kbd/keymaps/i386/qwerty/yourmap随后tar它,包括在一条线上/etc/vconsole.conf来调用它:

KEYMAP=yourmap
Run Code Online (Sandbox Code Playgroud)