我想知道是否可以在点击时将 CapsLock 映射为 Esc 键,但如果按住则表现为 Super 键。
这是我在 MacOS 中使用 Karabiner 设法实现的行为,但我无法在这里复制。
我正在寻找的整个行为如下:
- 交换 CapsLock 和 Esc 键。
- 点击 CapsLock 键退出。
- 按住 CapsLock 键可实现超级功能。
答案1
1简单的部分是交换 CapsLock 和 Esc。这可以通过 xkb 选项完成:
setxkbmap -option caps:super
/etc/default/keyboard
可以通过编辑在配置文件中自动启用系统范围的此功能XKBOPTIONS=""
。要配置用户帐户,请在中包含命令~/.profile
。Gnome Shell 可以覆盖 gsettings 键“org.gnome.desktop.input-sources xkb-options”中的键盘选项,并且可以使用 Tweaks 进行设置。
2a.当Xorg,实现 Esc击打和放开時CapsLock也很容易。
xcape -e "Hyper_L=Escape"
Hyper_L
是应用选项后分配给的代码Caps Lock。您可以在 的输出中看到它xev
。键的名称可以在 中看到/usr/include/X11/keysymdef.h
。
创建自动启动条目或包含命令~/.profile
以使其自动启动。
2b.虽然要实现这一点要困难得多,但并非不可能。韦兰.Wayland 的替代方案包括(来源):
https://gitlab.com/interception/linux/plugins/dual-function-keys
https://gitlab.com/at-home-modifier/at-home-modifier-evdev
https://github.com/myfreeweb/evscript
https://github.com/wbolster/evcape
并且都有其特定的设置。