为高棉语制作自定义键盘布局

为高棉语制作自定义键盘布局

四年前,由于医疗原因,我不得不改用 Dvorak 键盘。当时我使用的是 Windows,并自己为高棉语(我是母语)创建了一个自定义键盘布局,但现在我使用的是 Ubuntu,即使阅读了以下内容,也无法自己使用它。以下是 Unicode 字符的符号代码:

default  partial alphanumeric_keys
xkb_symbols "basic" {
    name[Group1]= "Khmer (Dvorak)";

// there are four levels defined:
//
//                 normal           shift           right-alt   right-alt + shift
//

//  keys: `1234567890-=\
    key <TLDE> { [ guillemotleft,   guillemotright  ] };
    key <AE01> { [ 0x10017e1,       exclam  ] };
    key <AE02> { [ 0x10017e2,       0x10017d7,      at,     voidsymbol  ] };
    key <AE03> { [ 0x10017e3,       quotedbl,       0x10017d1,  voidsymbol  ] };
    key <AE04> { [ 0x10017e4,       0x10017db,      dollar,     voidsymbol  ] };
    key <AE05> { [ 0x10017e5,       percent,        EuroSign,   voidsymbol  ] };
    key <AE06> { [ 0x10017e6,       0x10017cd,      0x10017d9,  voidsymbol  ] };
    key <AE07> { [ 0x10017e7,       0x10017d0,      0x10017da,  voidsymbol  ] };
    key <AE08> { [ 0x10017e8,       0x10017cf,      asterisk,   voidsymbol  ] };
    key <AE09> { [ 0x10017e9,       parenleft,      braceleft,  voidsymbol  ] };
    key <AE10> { [ 0x10017e0,       parenright,     braceright, voidsymbol  ] };
    key <AE11> { [ 0x10017c0,       0x10017bf,      0x10017a9,  bracketleft ] };
    key <AE12> { [ 0x10017aa,       0x10017a7,      0x10017b3,  bracketright    ] };
    key <BKSL> { [ 0x10017ae,       0x10017ad,      backslash,  voidsymbol  ] };

//  keys: qwertyuiop[]
    key <AD01> { [ 0x10017cb,       0x10017c9,      0x10017c8,  voidsymbol  ] };
    key <AD02> { [ 0x10017bb 0x10017c6, 0x10017bb 0x10017c7,    comma,      voidsymbol  ] };
    key <AD03> { [ 0x10017d4,       0x10017d5,      period,     voidsymbol  ] };
    key <AD04> { [ 0x1001795,       0x1001797,      0x10017b0,  voidsymbol  ] };
    key <AD05> { [ 0x1001799,       0x10017bd,      voidsymbol,     voidsymbol  ] };
    key <AD06> { [ 0x1001790,       0x1001792,      voidsymbol, voidsymbol  ] };
    key <AD07> { [ 0x1001784,       0x10017a3,      voidsymbol, voidsymbol  ] };
    key <AD08> { [ 0x1001785,       0x1001787,      voidsymbol,     voidsymbol  ] };
    key <AD09> { [ 0x100179a,       0x10017ac,      0x10017ab,  voidsymbol  ] };
    key <AD10> { [ 0x100179b,       0x10017a1,      0x10017d8,  voidsymbol  ] };
    key <AD11> { [ 0x10017ca,       question,       slash,      voidsymbol  ] };
    key <AD12> { [ 0x10017b2,       equal,          0x10017ce,  voidsymbol  ] };

//  keys: asdfghjkl;'
    key <AC01> { [ 0x10017b6,       0x10017b6 0x10017c6,    0x10017a8,  voidsymbol  ] };
    key <AC02> { [ 0x10017c4,       0x10017c5,      0x10017b1,  voidsymbol  ] };
    key <AC03> { [ 0x10017c1,       0x10017c2,      0x10017af,  voidsymbol  ] };
    key <AC04> { [ 0x10017bb,       0x10017bc,      voidsymbol, voidsymbol  ] };
    key <AC05> { [ 0x10017b7,       0x10017b8,      0x10017a6,  voidsymbol  ] };
    key <AC06> { [ 0x100178a,       0x100178b,      voidsymbol, voidsymbol  ] };
    key <AC07> { [ 0x10017d2,       0x10017a0,      voidsymbol, voidsymbol  ] };
    key <AC08> { [ 0x100178f,       0x1001791,      0x100179d,  voidsymbol  ] };
    key <AC09> { [ 0x1001793,       0x100178e,      voidsymbol, voidsymbol  ] };
    key <AC10> { [ 0x100179f,       0x10017c3,      0x10017db,  voidsymbol  ] };
    key <AC11> { [ 0x10017a5,       0x10017cc,      minus,      voidsymbol  ] };

//  keys: <zxcvbnm,./
    key <LSGT> { [ minus,       underscore,     voidsymbol, voidsymbol  ] };
    key <AB01> { [ 0x10017be,       0x10017c4 0x10017c7,    0x10017d6,  voidsymbol  ] };
    key <AB02> { [ 0x1001786,       0x1001788,      0x10017dc,  voidsymbol  ] };
    key <AB03> { [ 0x1001789,       0x10017c7,      voidsymbol, voidsymbol  ] };
    key <AB04> { [ 0x1001780,       0x1001782,      voidsymbol, voidsymbol  ] };
    key <AB05> { [ 0x1001781,       0x1001783,      voidsymbol,     voidsymbol  ] };
    key <AB06> { [ 0x1001794,       0x1001796,      0x100179e,  voidsymbol  ] };
    key <AB07> { [ 0x1001798,       0x10017c6,      voidsymbol, voidsymbol  ] };
    key <AB08> { [ 0x10017b9,       0x10017ba,      0x10017dd,  voidsymbol  ] };
    key <AB09> { [ 0x100179c,       0x10017c1 0x10017c7,    voidsymbol,     voidsymbol  ] };
    key <AB10> { [ 0x100178b,       0x100178d,      plus,       voidsymbol  ] };

    key <SPCE> { [ space,       0x100200b,      voidsymbol, voidsymbol  ] };
    key <RALT> { [ Alt_R    ] };

// third level with right-Alt
    include "level3(ralt_switch)"

};

我对一次点击输入两个辅音有些怀疑。有些复合元音由两个独立的元音组成,但没有 Unicode 字符将它们表示为一个。Windows 似乎有一些 Unicode 字符,但它们在 Ubuntu 中不起作用,而是显示方块。不确定我是否做对了,像上面的代码一样将两个元音用空格隔开。

如果可能的话,我可以使用大写锁定切换到标准美国 Dvorak 布局,那就更好了。有谁能帮我解决这个问题?

相关内容