当我按下 Cap Lock 时,我希望 WASD 用作箭头键,QE 用作上下翻页键。我可以使用 setxkbmap 来实现这个功能吗?xcape?还是其他什么?
答案1
详细解答
完成此操作需要几个步骤:
- 用于
xmodmap
移除大写锁定键上的大写锁定行为。然后使用将(大写锁定键码)xmodmap
重新映射keycode 66
到您不使用的修饰键。我之所以选择它是Hyper_L
因为它不在普通键盘上。例如,从我的~/.Xmodmap
配置文件(我将大写锁定重新映射到Left Hyper
键的位置):
clear lock
keycode 66 = Hyper_L
- 步骤 1 使 arch 将 caps lock 解释为
Hyper_L
。当您按下键时,修饰键基本上会打开 xmodmap mod 级别。应用程序使用这些 mod 级别(而不是字面键盘键)来确定正在使用哪些修饰符。运行xmodmap
命令,输出应该看起来像这样。简短的回答是重新映射Hyper_L
到控制mod3
,因为它在 arch 上默认未使用。使用 中的这些行执行此操作.xmodmap
。
remove mod4 = Hyper_L
add mod3 = Hyper_L
笔记: 运行xmodmap ~/.Xmodmap
以使更改生效而无需重启
3.最后,你可以使用类似星火它将按键重新映射到 shell 命令,以将您想要的功能添加到新修饰键的特定组合中。例如,在我的系统中,sxhkdrc
我有类似以下内容:
hyper + {c,e,f,t,6}
st -e {chromium,neomutt,lf,vit,top}
我使用它来映射大写锁定以启动各种应用程序的新窗口。
结论
安装依赖项:
sudo pacman -Sy xorg-xmodmap sxhkd
配置xmodmap
- 在~/.Xmodmap
(如果设置了 $XDG_CONFIG,则符合 XDG 标准):
! remap caps_lock to Hyper_l/mod3
clear lock
keycode 66 = Hyper_L
remove mod4 = Hyper_L
add mod3 = Hyper_L
运行xmodmap ~/.Xmodmap
以使更改生效。
最后,参考以下方法sxhkd
进行配置~/.config/sxhkdrc
github
答案2
有一些场景可以启动。不过我会继续寻找。
更简单的解决方案是通过复制现有键盘配置文件并更改这些键来创建另一个键盘配置文件。然后您可以按任意组合来使用另一个配置文件。
用这个指导作为参考,尽管他没有使用
capslock
切换而是按下。用于
capslock
执行重新映射您的按键的脚本,反之亦然。