我使用源自股票布局 hr(us) 的自定义 XKB 布局:
{
name[Group1] = "My HR Layout";
include "hr(us)"
key <AB09> { [ NoSymbol, NoSymbol, dead_doublegrave, dead_invertedbreve ] }; // D˵ D?
key <AB10> { [ NoSymbol, NoSymbol, dead_acute, dead_macron ] }; // D´
key <AC01> { [ NoSymbol, NoSymbol, adiaeresis, Adiaeresis ] }; // ä Ä
key <AC03> { [ NoSymbol, NoSymbol, eth ] }; // ð
key <AC09> { [ NoSymbol, NoSymbol, lstroke, Lstroke ] }; // ł Ł
key <AD03> { [ NoSymbol, NoSymbol, U011B, U011A ] }; // ě Ě
key <AD07> { [ NoSymbol, NoSymbol, udiaeresis, Udiaeresis ] }; // ü Ü
key <AD08> { [ NoSymbol, NoSymbol, idiaeresis, Idiaeresis ] }; // ï Ï
key <AD09> { [ NoSymbol, NoSymbol, odiaeresis, Odiaeresis ] }; // ö Ö
key <AE01> { [ NoSymbol, NoSymbol, onesuperior ] }; // ¹
key <AE02> { [ NoSymbol, NoSymbol, twosuperior ] }; // ²
key <AE03> { [ NoSymbol, NoSymbol, threesuperior ] }; // ³
key <AE04> { [ NoSymbol, NoSymbol, U2074, U20AC ] }; // ⁴ €
key <AE05> { [ NoSymbol, NoSymbol, U2075 ] }; // ⁵
key <AE06> { [ NoSymbol, NoSymbol, U2076 ] }; // ⁶
key <AE07> { [ NoSymbol, NoSymbol, U2077 ] }; // ⁷
key <AE08> { [ NoSymbol, NoSymbol, U2078 ] }; // ⁸
key <AE09> { [ NoSymbol, NoSymbol, U2079 ] }; // ⁹
key <AE10> { [ NoSymbol, NoSymbol, U2070, U00B0 ] }; // ⁰ °
key <AE11> { [ NoSymbol, NoSymbol, endash, emdash ] }; // – —
key <TLDE> { [ NoSymbol, NoSymbol, dead_grave ] }; // D`
};
一切工作正常,除了死键表现不同:
- 死重音符(AltGr-TLDE)、死尖音符(AltGr-AB10)和死长音符(AltGr-Shift-AB10)可以正常工作,并且与拉丁字母“a”组合分别产生“à”、“á”和“ā”。
- 死双重音符号 (AltGr-AB09) 不起作用。按下 AltGr-AB09 后跟拉丁字母“a”不会产生任何符号,尽管它应该产生“ȁ”,这是在 X11/locale/en_US.UTF-8/Compose 下定义的:
<dead_doublegrave> <a> : "ȁ" U0201 # LATIN SMALL LETTER A WITH DOUBLE GRAVE
- 倒置短音符 (AltGr-Shift-AB09) 也不起作用,但方式不同。按下 AltGr-Shift-AB09 后跟拉丁字母“a”只会产生“a”,尽管它应该产生“ȃ”,这也在组合规则中定义:
<dead_invertedbreve> <a> : "ȃ" U0203 # LATIN SMALL LETTER A WITH INVERTED BREVE
寻求有关该问题的帮助,或者至少寻求有关如何调试 XKB 地狱、从哪里开始以及使用哪些工具的建议。我不是开发和系统管理方面的新手,但 XKB 总是让我头疼。