我定制了笔记本电脑的键盘布局,以便使用两个" dummy"键。标准键盘驱动程序不管理这些异常键。我首先在 systemd 服务中使用setkeycodes
命令启用它们。
接下来,我编写了一个部分符号键映射来描述我在这两个键下使用plain(no),shift,altgr和shift + altgr修饰符组合所需的字符。
记录添加到 evdev.lst 的位置,以便通过桌面键盘配置工具选择我的变体。
evdev 中的规则(或更确切地说是一行或两行)被添加来描述我的布局。
到目前为止,一切正常:可以选择或取消选择键盘变体,未更改的键可以发送标准字符。如果还按下了修改键,则新的自定义键会发送预期的字符。但是,"普通" key不发送任何字符。
我使用setxkbmap -print
转储了键盘配置,以确定符号的规范不正确:
xkb_symbols { include "pc+fr(mycustomkeyboard)+inet(evdev)+..." };
(没有跳过相关信息并用省略号代替)
上述规范意味着来自inet(evdev)
的定义将覆盖我的定义。我的一个密钥在其普通插槽中接收 XF86MenuKB ,另一个 XF86Calculator 。
正确的规范是:
xkb_symbols { include "pc+inet(evdev)+fr(mycustomkeyboard)+..." };
问题:
有没有办法优先在文件 evdev 中的部分规则中实现正确的包含顺序?
如果不是:
模式匹配规则是否按照文件中列出的顺序应用?
我们可以有几个具有相同模式的部分吗?换句话说,后面的部分是否覆盖了前一部分,还是作为附加部分合并到前一部分?
可能相关的问题:
以下(我自己的帖子未回答)问题似乎抱怨同样的问题: Override inet using xkb under Linux