如何在xkb中重新映射“特殊”键?

我一直在尝试将键盘映射从xmodmap迁移到xkb,但我遇到了一些麻烦。 我可以在/usr/share/X11/xkb/symbol/us看到修改“普通”键的位置,但是这个文件似乎没有“特殊”键,包括修饰符。

我希望实现的完全重映射是:

  • 交换左CtrlShift
  • Shift替换右Ctrl
  • '替换右移 '
  • 替换'/
  • 右键空白键(键码97)到菜单
  • 将空白键(键代码92)留给AltGr
  • AltGr编码:
    • keycode 20 =减去下划线减去下划线endash emdash
    • keycode 60 =句点更长的句点更大的省略号
    • Fn + F5Fn + F6控制亮度
    • keycode 148 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
    • keycode 179 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp

我怎样才能做到这一点?

解决方案是在/usr/share/X11/xkb/symbol/us创建AltGr编码,但是使用/usr/share/X11/xkb/keycodes/evdev来交换大多数密钥。

(但是,我还没有弄清楚如何将Fn + F5和Fn + F6映射到XF86MonBrightnessDown和XF86MonBrightnessUp。)