重新映射的 CapsLock 键被忽略(由 /etc/default/keyboard 中的 XKBOPTIONS 设置)

重新映射的 CapsLock 键被忽略(由 /etc/default/keyboard 中的 XKBOPTIONS 设置)

我尝试跟随https://www.emacswiki.org/emacs/MovingTheCtrlKey这表明可以这样做:

在 Debian 及其衍生版本(Ubuntu、Mint 等)上

要将 Caps Lock 设为另一个 Ctrl 键,请编辑文件 /etc/默认/键盘并修改以下行

XKBOPTIONS=""

XKBOPTIONS="ctrl:nocaps" #
有些人更喜欢“ctrl:swapcaps”

然后运行:

$ sudo dpkg-reconfigure -phigh 控制台设置

完成此操作后,如果我单击“显示键盘布局”,它看起来似乎有效: 截图 但实际上并非如此,重新映射的 Capslock 键不能用于任何组合,例如 Ctrl+A 全选等。

这里缺少什么来正确地重新映射它?

我也知道 Gnome 调整工具,但它只能影响在 Gnome 上运行的应用程序,因此当我按下 CapsLock 时,在 Wine 中运行的任何程序都不会收到 Ctrl 键,我需要全局重新映射。就像 Windows 上的 AutoHotkey 可以做到的那样,或者像 macOS 可以使用内置设置做到的那样。

还尝试过:

  • 编辑/usr/share/X11/xkb/keycodes/evdev以让其具有与 (如果我理解正确的话,这些键码正在被使用) <CAPS>相同的数字<LCTL>setxkbmap -print -verbose 10
  • 编辑/usr/share/X11/xkb/symbols/pc(更改那条线key <LCTL> { [ Control_L ] };

两次尝试都失败了。PS
每次尝试后我都会彻底重启

完整输出setxkbmap -print -verbose 10

$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us,ru,us
variant:    ,,
options:    grp_led:scroll
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+ru:2+us:3+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+ru:2+us:3+inet(evdev)"   };
    xkb_geometry  { include "pc(pc105)" };
};

/etc/default/keyboard编辑后完整内容:

XKBLAYOUT="us,ru"
XKBVARIANT=","
BACKSPACE="guess"
XKBMODEL="pc105"
XKBOPTIONS="grp_led:scroll,ctrl:nocaps"

我不知道“grp_led:scroll”是什么,所以我认为把它留在那里会更安全

更新:
完整输出gsettings get org.gnome.desktop.input-sources xkb-options

['grp_led:scroll', 'ctrl:nocaps', 'grp:alt_shift_toggle']

答案1

我仍然不知道正确的解决方案,但似乎 XKBOPTIONS 和对 xkb 目录中文件的更改会影响 Gnome 以外的所有内容,因此如果我使用它此外对 gnome 进行调整,那么它在两种情况下都可以起作用。

答案2

答案是您必须在 gnome-tweaks 中为您的用户和 root 用户进行更改。

sudo gnome-tweaks  # then set the capslock setting you want
gnome-tweaks  # do it again

这是因为用户设置将覆盖根设置。

在 ubuntu 20.04 中测试

感谢用户@Gunnar-Hjalmarsson 提供的线索帮助我找到这个。

相关内容