我成功创建了一个自定义乌克兰语 ISO 9 布局(通过编辑/usr/share/X11/xkb/symbols/ua
和其他几个文件),它可以工作,但它缺少一个字母,即G with a grave
“G̀”(表示“元”),这在 Unicode 中是不存在的
partial alphanumeric_keys
xkb_symbols "latynka" {
include "ua(winkeys)"
name[Group1]= "Ukrainian (Latynka ISO 9)";
key <TLDE> { [ apostrophe, asciitilde , dead_acute ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, asterisk ] };
key <AE05> { [ 5, colon ] };
key <AE06> { [ 6, comma ] };
key <AE07> { [ 7, period ] };
key <AE08> { [ 8, semicolon ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ j, J ] };
key <AD02> { [ c, C ] };
key <AD03> { [ u, U ] };
key <AD04> { [ k, K ] };
key <AD05> { [ e, E ] };
key <AD06> { [ n, N ] };
key <AD07> { [ g, G ] };
key <AD08> { [ scaron, Scaron ] };
key <AD09> { [ scircumflex, scircumflex ] };
key <AD10> { [ z, Z ] };
key <AD11> { [ h, H ] };
key <AD12> { [ idiaeresis, Idiaeresis ] };
// key <BKSL> { [ ggrave, Ggrave ] }; // does not exist
// key <BKSL> { [ dead_grave g, dead_grave G ] }; // xkb does not allow multiple characters per key press
key <AC01> { [ f, F ] };
key <AC02> { [ igrave, Igrave ] };
key <AC03> { [ v, V ] };
key <AC04> { [ a, A ] };
key <AC05> { [ p, P ] };
key <AC06> { [ r, R ] };
key <AC07> { [ o, O ] };
key <AC08> { [ l, L ] };
key <AC09> { [ d, D ] };
key <AC10> { [ zcaron, Zcaron ] };
key <AC11> { [ ecircumflex, Ecircumflex ] };
key <AB01> { [ acircumflex, Acircumflex ] };
key <AB02> { [ ccaron, Ccaron ] };
key <AB03> { [ s, S ] };
key <AB04> { [ m, M ] };
key <AB06> { [ t, T ] };
key <AB05> { [ i, I ] };
key <AB07> { [ minutes, minutes ] };
key <AB08> { [ b, B ] };
key <AB09> { [ ucircumflex, Ucircumflex ] };
key <AB10> { [ slash, question ] };
key <LSGT> { [ period, comma ] };
include "level3(ralt_switch)"
};
有什么办法可以添加吗?
答案1
我见过的用于高棉语布局的技巧是从未正式定义的范围(即来自 (0x10017fb-0x10017ff) 的范围)分配一些 unicode 代码点,然后在“撰写文件”中添加一条规则来进行转换将未定义的字符添加到您想要的输出中。
例如,您可以在布局中定义它:
key <BKSL> { [ 0x10017fe, 0x10017ff ] };
它本身只会输出 和 ,它们是未定义的 unicode 字符。
但是,然后您创建一个“撰写文件”,~/.XCompose
您可以在其中添加规则以将这些 unicode 字符替换为其他字符。撰写文件将如下所示:
<U17fe> : "Ґ"
<U17ff> : "G̀"
或者任何你想要的东西。我现在将西里尔字母与拉丁字母混合在一起,这可能不是您想要的。您可以在那里输入任何您喜欢的字符,甚至是长序列。
以下是一些有关撰写文件的文档:https://www.x.org/releases/current/doc/man/man5/Compose.5.xhtml
还有一些用于撰写文件的系统位置,这些位置应适用于特定区域设置的所有用户等。当然,您的主目录中的~/.XCompose
仅适用于您作为用户,然后适用于所有区域设置。也许在您的情况下,您可以在文件中/usr/share/X11/locale/ua/Compose
为乌克兰语言环境定义映射。