xkbキーボードレイアウトに作成文字を追加する方法

xkbキーボードレイアウトに作成文字を追加する方法

編集やその他のいくつかのファイルは、カスタムウクライナのISO 9レイアウトを正常に作成し、動作します/usr/share/X11/xkb/symbols/uaが、G with a graveUnicodeには存在しない文字「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)の範囲)からいくつかの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ファイル内のウクライナのロケールのマッピングを定義できます。

おすすめ記事