我正在使用 Artix Linux 和 OpenRC。
我想定义一个自定义控制台键盘映射以通常使用美国设计,但为德语变音添加一些额外的功能。以下确实有效:
/usr/share/keymaps/i386/qwerty/mymap.map
:
include "us.map"
altgr keycode 30 = adiaeresis
按照描述激活rc-update add keymaps boot
/rc-service keymaps restart
这里。
有了这些配置,当我按 AltGr+a 时,ä
就会按预期打印。
我想对 AltGr+Shift+a 执行相同的操作来生成Ä
.但是,将该行添加
shift altgr keycode 30 = Adiaeresis
到我的键盘映射中,然后重新启动服务会产生以下错误:
Setting keyboard mode [UTF-8] ... [ ok ]
Loading key mappings [mymap] ...
adding map 3 violates explicit keymaps line
Error leading key mappings [ !! ]
ERROR: keymaps failed to start
这告诉我什么以及我该如何解决它?
altgr shift keycode 30 = Adiaeresis
具有相同的结果。
我还尝试将现有行修改为altgr keycode 30 = adiaeresis Adiaeresis
,但这会产生syntax error, unexpected LITERAL, expecting EOL
.
我用这作为参考,但我发现很难阅读和解释。
答案1
好吧,我找到了另一种方法来声明它有效:键盘映射手册页中描述的数字系统。请注意,在/usr/share/keymaps/i386/qwerty/us.map.gz
(unpacked) 中,有一行keymaps 0-2,4-6,8-9,12
省略了 3,这是我需要的 (Shift+AltGr)。所以我的文件现在看起来像这样,并且工作正常:
include "us.map"
keymaps 0-3
keycode 22 = u U udiaeresis Udiaeresis
keycode 24 = o O odiaeresis Odiaeresis
keycode 30 = a A adiaeresis Adiaeresis
keycode 31 = s S ssharp
但我仍然不明白问题中的错误。