xkb 키보드 레이아웃에 작성 문자를 추가하는 방법

xkb 키보드 레이아웃에 작성 문자를 추가하는 방법

편집 및 기타 몇 가지 파일을 통해 사용자 정의 우크라이나어 ISO 9 레이아웃을 성공적으로 만들었고 /usr/share/X11/xkb/symbols/ua작동하지만 G with a grave유니코드에는 존재하지 않는 문자 "G̀"("meta"의 경우)가 누락되었습니다.

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)의 범위)에서 일부 유니코드 코드 포인트를 할당한 다음 작성 파일에 규칙을 추가하여 정의되지 않은 문자를 원하는 문자에 추가하는 것입니다. 산출.

예를 들어 레이아웃에서 정의할 수 있습니다.

key <BKSL> { [    0x10017fe,    0x10017ff  ] };

그 자체로는 정의되지 않은 유니코드 문자인 ៾ 및 ៿만 출력합니다.

~/.XCompose그러나 이러한 유니코드 문자를 다른 문자로 바꾸는 규칙을 추가하는 "작성 파일"을 만듭니다 . 작성 파일은 다음과 같습니다.

<U17fe> : "Ґ"
<U17ff> : "G̀"

아니면 당신이 원하는 무엇이든. 저는 지금 키릴 문자와 라틴어를 혼합하고 있는데, 이는 여러분이 원하는 것이 아닐 수도 있습니다. 거기에 원하는 문자를 입력할 수 있으며, 심지어 긴 시퀀스도 입력할 수 있습니다.

다음은 파일 쓰기에 대한 몇 가지 문서입니다.https://www.x.org/releases/current/doc/man/man5/Compose.5.xhtml

특정 로케일 등의 모든 사용자가 사용할 수 있는 파일 쓰기를 위한 시스템 위치도 있습니다. 물론 홈 디렉토리에 있는 항목은 ~/.XCompose사용자인 귀하에게만 적용되며 모든 로케일에 적용됩니다. 귀하의 경우 /usr/share/X11/locale/ua/Compose파일에서 우크라이나어 로케일에 대한 매핑을 정의할 수 있습니다.

관련 정보