将CapsLock键映射为Ctrl键,Ctrl键映射为Hyper键的方法是设置XkbOptions选项为ctrl:hyper_capscontrol。可以通过localectl list-x11-keymap-options查看所有可选项。在环境变量中查找对应的XkbOption源码。或者只需交换Caps和Ctrl的位置。在Wayland下自定义layout时遇到问题,只能重写XkbOption来覆盖原有设置。在Wayland和X11下都能工作。还可以考虑使用keyd来完成按键映射。
文章介绍Linux下重映射键盘键的方法:通过XkbOptions的ctrl:hyper_capscontrol可将CapsLock映射为Ctrl、左Ctrl映射为Hyper;swapcaps则仅交换Caps与Ctrl。作者因Wayland下setxkbmap报错,改用NixOS配置自定义XkbOption覆盖symbols/ctrl,使X11和Wayland均可用。但Wayland下Emacs Pgtk不识别Hyper_L,故回归X11。另可考虑用keyd完成按键映射。
完成下面两步后,将自动完成登录并继续当前操作。