我想扩展我的 XKB 键盘布局以添加自定义绑定。基于 pc104/us 布局,我想添加如下绑定:
AltGr-a → ä (adiaeresis)
AltGr-e → € (EuroSign)
我想我知道如何使用来实现这一点xkbcomp
.但是我尚未决定是否最好将附加绑定放入3级(setxkbmap -option lv3:ralt_switch
) 或者第2组( setxkbmap -option grp:switch
)。优缺点都有什么?
答案1
两者都有效。主要优点和缺点是兼容性:
XKB 本身使用级别 3,例如 for
setxkbmap -layout us -variant euro
或setxkbmap -option keypad:oss
。将符号放入第 3 级可确保与其兼容。第 2 组确保与 的兼容性
xmodmap
,这会在其中放置附加符号。xmodmap
已弃用,但它仍然是快速添加其他绑定的一个很好的速记方法。
这是使用级别 3 的解决方案:
xkbcomp - :0 <<EOF
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+level3(ralt_switch)+compose(caps)+keypad(oss)"
key <LatA> { [ a, A, adiaeresis, Adiaeresis ] };
key <LatE> { [ e, E, EuroSign ] };
key <LatO> { [ o, O, odiaeresis, Odiaeresis ] };
key <LatS> { [ s, S, ssharp ] };
key <LatU> { [ u, U, udiaeresis, Udiaeresis ] };
};
xkb_geometry { include "pc(pc104)" };
};
EOF