我想知道如何以一种希望在可预见的未来继续工作的方式重新映射某些键(尤其是修饰键),可能会在不同的机器上工作,并且最好使用我的主目录中的文件,以便我可以在正常情况下备份它家庭备份。
我正在使用 i3 窗口管理器进行 Debian 测试。我刚刚找到了一种方法来完成以下任务:
- 将左窗口键映射到 Hyper_L
- 制作 Mod3 Hyper_L
- 让 i3 使用 Mod3 作为它的 mod-key。
我通过执行以下命令来做到这一点.xsession
:
setxkbmap -layout us -option ctrl:swapcaps -option altwin:alt_super_win
xmodmap /home/eike/.config/xmodmaprc
xmodmap /home/eike/.config/xmodmaprc
并在其配置文件中配置 i3 使用 Mod3。
该文件~/.config/xmodmaprc
包含以下内容:
keycode 133 = Hyper_L
remove mod4 = Hyper_L
add mod3 = Hyper_L
我运行 xmodmap 两次,因为它的第一次调用产生
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 14
Current serial number in output stream: 14
第二次调用按预期默默地工作。 (在交互式 shell 中运行时也会发生这种情况)。
我的问题如下:
- 我不想使用键码,因为它们可能因键盘而异。
- 该解决方案似乎非常hacky和脆弱,尤其是双重调用来解决该错误。
- 互联网上的人(有史以来最好的来源......)声称 xmodmap 已贬值。
有人可以帮助我吗?
让我更高兴的第一步是只使用 xkbmap,因为我希望它如此广泛,以至于最终可以与 wayland 兼容。