我尝试跟随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 提供的线索帮助我找到这个。