web-dev-qa-db-ja.com

新しいキーボードレイアウトを追加する方法(カスタムキーボードレイアウト定義)

/usr/share/X11/xkb/symbols/のキーボードレイアウトをコピーして変更し、そこから新しいレイアウトを作成します。

新しいキーボードレイアウト(「mylayout」など)を追加するにはどうすればよいですか?

更新#1:

新しいレイアウトを追加するために変更したファイル:

  • /usr/share/X11/xkb/symbols/irwinxp(元はirと同じ):

    // Iranian keyboard layout
    
    ////////////////////////////////////////
    // Persian layout,
    // based on
    // Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards
    // ISIRI 9147 – 1st Edition
    // Institute of Standards and Industrial Research of Iran
    // http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
    // http://behnam.esfahbod.info/standards/isiri-keyboard-9147.pdf
    //
    // Author: Behnam Esfahbod <[email protected]>
    //
    
    default  partial alphanumeric_keys
    xkb_symbols "pes" {
        name[Group1]= "Persian";
    
        include "ir(pes_part_basic)"
        include "ir(pes_part_ext)"
    
        include "nbsp(zwnj2nb3nnb4)"
        include "level3(ralt_switch)"
    };
    
    
    partial alphanumeric_keys
    xkb_symbols "pes_keypad" {
        name[Group1]= "Persian (with Persian Keypad)";
    
        include "ir(pes_part_basic)"
        include "ir(pes_part_keypad)"
    
        include "nbsp(zwnj2nb3nnb4)"
        include "level3(ralt_switch)"
    };
    
    partial hidden alphanumeric_keys
    xkb_symbols "pes_part_basic" {
    
        // Persian digits
        key <AE01> { [ Farsi_1, exclam,     Grave           ] };
        key <AE02> { [ Farsi_2, 0x100066c,  at          ] };
        key <AE03> { [ Farsi_3, 0x100066b,  numbersign      ] };
        key <AE04> { [ Farsi_4, 0x100fdfc,  dollar          ] };
        key <AE05> { [ Farsi_5, 0x100066a,  percent         ] };
        key <AE06> { [ Farsi_6, multiply,   asciicircum     ] };
        key <AE07> { [ Farsi_7, Arabic_comma,   ampersand       ] };
        key <AE08> { [ Farsi_8, asterisk,   enfilledcircbullet  ] };
        key <AE09> { [ Farsi_9, parenright, 0x100200e       ] };
        key <AE10> { [ Farsi_0, parenleft,  0x100200f       ] };
    
        // Persian letters and symbols
        key <AD01> { [ Arabic_dad,      Arabic_fathatan,    degree      ] }; // 2: Arabic_sukun
        key <AD02> { [ Arabic_sad,      Arabic_dammatan,    VoidSymbol  ] }; // 2: Arabic_dammatan
        key <AD03> { [ Arabic_theh,     Arabic_kasratan,    0x13a4      ] }; // 2: Arabic_kasratan
        key <AD04> { [ Arabic_qaf,      Arabic_fathatan,    VoidSymbol  ] };
        key <AD05> { [ Arabic_feh,      Arabic_comma,       VoidSymbol  ] }; // 2: Arabic_damma
        key <AD06> { [ Arabic_ghain,    Arabic_semicolon,   VoidSymbol  ] }; // 2: Arabic_kasra
        key <AD07> { [ Arabic_ain,      Arabic_fatha,       VoidSymbol  ] };
        key <AD08> { [ Arabic_heh,      Arabic_hamza_above, 0x100202d   ] }; // 2: Arabic_shadda
        key <AD09> { [ Arabic_khah,     bracketright,       0x100202e   ] };
        key <AD10> { [ Arabic_hah,      bracketleft,        0x100202c   ] };
        key <AD11> { [ Arabic_jeem,     braceright,     0x100202a   ] };
        key <AD12> { [ Arabic_tcheh,    braceleft,      0x100202b   ] };
    
        key <AC01> { [ Arabic_sheen,    Arabic_fatha,       VoidSymbol  ] }; // 2: Arabic_hamzaonwaw
        key <AC02> { [ Arabic_seen,     Arabic_damma,       VoidSymbol  ] }; // 2: Arabic_hamzaonyeh
        key <AC03> { [ Farsi_yeh,       Arabic_kasra,       Arabic_alefmaksura ] }; // 2: Arabic_yeh
        key <AC04> { [ Arabic_beh,      Arabic_shadda,  VoidSymbol  ] }; // 1: Arabic_hamzaunderalef
        key <AC05> { [ Arabic_lam,      0x10006c0,  VoidSymbol  ] };// 2: Arabic_hamzaonalef
        key <AC06> { [ Arabic_alef,     Arabic_maddaonalef, 0x1000671   ] };
        key <AC07> { [ Arabic_teh,      Arabic_tehmarbuta,  VoidSymbol  ] };
        key <AC08> { [ Arabic_noon,     guillemotright,     0x100fd3e   ] };
        key <AC09> { [ Arabic_meem,     guillemotleft,      0x100fd3f   ] };
        key <AC10> { [ Arabic_keheh,    colon,          semicolon   ] };
        key <AC11> { [ Arabic_gaf,      quotedbl,       quotedbl    ] }; // 2: Arabic_semicolon
    
        key <AB01> { [ Arabic_zah,      Arabic_kaf,     VoidSymbol  ] };
        key <AB02> { [ Arabic_tah,      0x1000653,      VoidSymbol  ] };
        key <AB03> { [ Arabic_zain,     Arabic_jeh,     VoidSymbol  ] };
        key <AB04> { [ Arabic_ra,       Arabic_hamzaonwaw   ,0x1000656  ] }; // 2: Arabic_superscript_alef ٰ
        key <AB05> { [ Arabic_thal,     0x100200c,      0x100200d   ] };
        key <AB06> { [ Arabic_dal,      Arabic_hamza_above, Arabic_hamza_below  ] };
        key <AB07> { [ Arabic_hamzaonyeh,   Arabic_hamza,       Ellipsis    ] }; // 1: Arabic_peh
        key <AB08> { [ Arabic_waw,      greater,        comma       ] };
        key <AB09> { [ period,      less,           apostrophe  ] };
        key <AB10> { [ slash,       Arabic_question_mark,   question    ] };
    
        key <TLDE> { [ 0x100200d,       division,       asciitilde  ] };
        key <AE11> { [ minus,       Arabic_tatweel,     underscore  ] };
        key <AE12> { [ equal,       plus,           0x1002212   ] };
        key <BKSL> { [ Arabic_peh,      bar,            0x1002010   ] }; // 1: backslash
    };
    
    partial hidden alphanumeric_keys
    xkb_symbols "pes_part_ext" {
    
        // Persian and ASCII digits
        key <AE01> { [ 0x10006f1,   exclam,     Grave,          1   ] };
        key <AE02> { [ 0x10006f2,   0x100066c,  at,         2   ] };
        key <AE03> { [ 0x10006f3,   0x100066b,  numbersign,     3   ] };
        key <AE04> { [ 0x10006f4,   0x100fdfc,  dollar,         4   ] };
        key <AE05> { [ 0x10006f5,   0x100066a,  percent,        5   ] };
        key <AE06> { [ 0x10006f6,   multiply,   asciicircum,        6   ] };
        key <AE07> { [ 0x10006f7,   Arabic_comma,   ampersand,      7   ] };
        key <AE08> { [ 0x10006f8,   asterisk,   enfilledcircbullet, 8   ] };
        key <AE09> { [ 0x10006f9,   parenright, 0x100200e,      9   ] };
        key <AE10> { [ 0x10006f0,   parenleft,  0x100200f,      0   ] };
    };
    
    partial hidden alphanumeric_keys
    xkb_symbols "pes_part_keypad" {
    
        // Persian digits and Mathematical operators
        key <KPDV> { [ division,    XF86_Ungrab ] };
        key <KPMU> { [ multiply,    XF86_ClearGrab  ] };
        key <KPSU> { [ 0x1002212,   XF86_Prev_VMode ] };
        key <KPAD> { [ plus,    XF86_Next_VMode ] };
    
        key <KPEN> { [ KP_Enter ] };
        key <KPEQ> { [ equal    ] };
    
        key <KP7>  { [ KP_Home, 0x10006f7   ] };
        key <KP8>  { [ KP_Up,   0x10006f8   ] };
        key <KP9>  { [ KP_Prior,    0x10006f9   ] };
    
        key <KP4>  { [ KP_Left, 0x10006f4   ] };
        key <KP5>  { [ KP_Begin,    0x10006f5   ] };
        key <KP6>  { [ KP_Right,    0x10006f6   ] };
    
        key <KP1>  { [ KP_End,  0x10006f1   ] };
        key <KP2>  { [ KP_Down, 0x10006f2   ] };
        key <KP3>  { [ KP_Next, 0x10006f3   ] };
    
        key <KP0>  { [ KP_Insert,   0x10006f0   ] };
        key <KPDL> { [ KP_Delete,   0x100066b   ] };
    };
    
    
    ////////////////////////////////////////
    // Kurdish Layout
    
    partial alphanumeric_keys
    xkb_symbols "ku" {
        include "tr(ku)"
        name[Group1]= "Kurdish (Iran, Latin Q)";
    };
    
    partial alphanumeric_keys
    xkb_symbols "ku_f" {
        include "tr(ku_f)"
        name[Group1]= "Kurdish (Iran, F)";
    };
    
    partial alphanumeric_keys
    xkb_symbols "ku_alt" {
        include "tr(ku_alt)"
        name[Group1]= "Kurdish (Iran, Latin Alt-Q)";
    };
    
    ////////////////////////////////////////
    // Kurdish Soranî Bahdînî (Arabic) keyboard layout,
    // based on the Kurdî Soranî Bahdînî keyboard from KurdITGroup
    // which is based on National Iranian Keyboard Standard (ISIRI 2901:1994),
    // with additions.
    //
    // Copyright (C) 2006 Erdal Ronahî, published under the GPL v2
    //
    // Special copyright note: author explicitly permitted to license this 
    // layout under MIT/X11 license, for details see
    // https://bugs.freedesktop.org/show_bug.cgi?id=9541
    //
    // Author: Erdal Ronahî  <[email protected]>
    //
    // Kurdish Arabic-Latin Layout for Soranî
    
    partial alphanumeric_keys
    xkb_symbols "ku_ara" {
        name[Group1]= "Kurdish (Iran, Arabic-Latin)";
    
        // Other 3-Level symbols
        key <TLDE> { [ 0x100200d,       division,       asciitilde  ] };
        key <BKSL> { [ backslash,       bar,            ccedilla, Ccedilla  ] };
    
        // Digits
        key <AE01> { [ 1,   exclam,     0x10006f1,  Grave       ] };
        key <AE02> { [ 2,   at,         0x10006f2,  at      ] };
        key <AE03> { [ 3,   numbersign, 0x10006f3,  0x100066b   ] };
        key <AE04> { [ 4,   dollar,     0x10006f4,  0x100fdfc   ] };
        key <AE05> { [ 5,   percent,    0x10006f5,  0x100066a   ] };
        key <AE06> { [ 6,   asciicircum,    0x10006f6,  multiply    ] };
        key <AE07> { [ 7,   ampersand,  0x10006f7,  Arabic_comma    ] };
        key <AE08> { [ 8,   asterisk,   0x10006f8,  enfilledcircbullet  ] };
        key <AE09> { [ 9,   parenright, 0x10006f9,  0x100200e   ] };
        key <AE10> { [ 0,   parenleft,  0x10006f0,  0x100200f   ] };
        key <AE11> { [ minus,       Arabic_tatweel,     underscore  ] };
        key <AE12> { [ equal,       plus,           0x1002212   ] };
    
        key <AD01> { [         Arabic_qaf,            X,  q,  Q ] };
        key <AD02> { [         Arabic_waw,            X,  w,  W ] };
        key <AD03> { [          0x10006d5,   Arabic_heh,  e,  E ] };
        key <AD04> { [         Arabic_ra ,    0x1000695,  r,  R ] };
        key <AD05> { [         Arabic_teh,   Arabic_tah,  t,  T ] };
        key <AD06> { [          0x10006cc,    0x10006ce,  y,  Y ] };
        key <AD07> { [  Arabic_hamzaonyeh, Arabic_hamza,  u,  U ] };
        key <AD08> { [         Arabic_hah,   Arabic_ain,  i,  I ] };
        key <AD09> { [          0x10006c6, Arabic_hamzaonwaw,  o,  O ] };
        key <AD10> { [          0x100067e,  Arabic_theh,  p,  P ] };
        key <AD11> { [ bracketright,    braceright, ucircumflex, Ucircumflex    ] };
        key <AD12> { [ bracketleft,     braceleft,  scedilla, Scedilla  ] };
    
        key <AC01> { [ Arabic_alef, Arabic_maddaonalef, a, A    ] };
        key <AC02> { [ Arabic_seen,     Arabic_sheen,   s, S    ] };
        key <AC03> { [  Arabic_dal,     Arabic_thal,    d, D    ] };
        key <AC04> { [  Arabic_feh, Arabic_hamzaunderalef,  f, F    ] };
        key <AC05> { [   0x10006af,     Arabic_ghain,   g, G    ] };
        key <AC06> { [  Arabic_heh,     0x100200c,  h, H    ] };
        key <AC07> { [   0x1000698, Arabic_hamzaonalef, j, J    ] };
        key <AC08> { [   0x10006a9,     Arabic_kaf, k, K    ] };
        key <AC09> { [  Arabic_lam,     0x10006b5,  l, L    ] };
        key <AC10> { [  Arabic_semicolon,   colon,      ecircumflex, Ecircumflex    ] };
        key <AC11> { [  apostrophe,     quotedbl,   icircumflex, Icircumflex    ] };
    
        key <AB01> { [ Arabic_zain,     Arabic_dad, z, Z    ] };
        key <AB02> { [ Arabic_khah,     Arabic_sad, x, X    ] };
        key <AB03> { [ Arabic_jeem,     0x1000686,  c, C    ] };
        key <AB04> { [   0x10006a4,     Arabic_zah, v, V    ] };
        key <AB05> { [ Arabic_beh,      0x1000649,  b, B    ] };
        key <AB06> { [ Arabic_noon, Arabic_tehmarbuta,  n, N    ] };
        key <AB07> { [ Arabic_meem, Arabic_tatweel,     m, M    ] };
        key <AB08> { [ Arabic_comma,    greater,    comma       ] };
        key <AB09> { [ period,      less,       apostrophe  ] };
        key <AB10> { [ slash,       Arabic_question_mark,   question    ] };
    
        include "nbsp(zwnj2nb3)"
        include "level3(ralt_switch)"
    };
    
    // EXTRAS:
    
    /////////////////////////////////////////////////////////////////////////////////
    //
    // Generated keyboard layout file with the Keyboard Layout Editor.
    // For more about the software, see http://code.google.com/p/keyboardlayouteditor
    //
    // Version 0.2, fixed AD09.
    //
    // Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32
    // Creation of this file by Simos Xenitellis.
    
    partial alphanumeric_keys
    xkb_symbols "ave"
    {
        name[Group1] = "Avestan";
    
        key <AB01> { [ U10B30,         U10B32 ] }; // ???? ???? 
        key <AB02> { [ U10B11,         U10B12 ] }; // ???? ???? 
        key <AB03> { [ U10B17,          UE102 ] }; // ????  
        key <AB04> { [ U10B2C,         U10B13 ] }; // ???? ???? 
        key <AB05> { [ U10B20,         U10B21 ] }; // ???? ???? 
        key <AB06> { [ U10B25,         U10B27 ] }; // ???? ???? 
        key <AB07> { [ U10B28,         U10B29 ] }; // ???? ???? 
        key <AB08> { [ U10B3C,         U10B39 ] }; // ???? ???? 
        key <AB09> { [ U10B3E,         U10B3D ] }; // ???? ???? 
        key <AB10> { [ U10B3F, periodcentered ] }; // ???? · 
    
        key <AC01> { [ U10B00,         U10B01 ] }; // ???? ???? 
        key <AC02> { [ U10B2F,         U10B31 ] }; // ???? ???? 
        key <AC03> { [ U10B1B,         U10B1C ] }; // ???? ???? 
        key <AC04> { [ U10B1F,         U10B16 ] }; // ???? ???? 
        key <AC05> { [ U10B14,         U10B15 ] }; // ???? ???? 
        key <AC06> { [ U10B35,          UE100 ] }; // ????  
        key <AC07> { [ U10B18,         U10B24 ] }; // ???? ???? 
        key <AC08> { [ U10B10,          UE101 ] }; // ????  
        key <AC09> { [ U10B2E,          UE103 ] }; // ????  
        key <AC10> { [ U10B3B,         U10B3A ] }; // ???? ???? 
        key <AC11> { [ U10B1D                 ] }; // ???? 
    
        key <AD01> { [ U10B22,         U10B23 ] }; // ???? ???? 
        key <AD02> { [ U10B33,         U10B34 ] }; // ???? ???? 
        key <AD03> { [ U10B08,         U10B09 ] }; // ???? ???? 
        key <AD04> { [ U10B2D,         U10B26 ] }; // ???? ???? 
        key <AD05> { [ U10B19,         U10B1A ] }; // ???? ???? 
        key <AD06> { [ U10B2B,         U10B2A ] }; // ???? ???? 
        key <AD07> { [ U10B0E,         U10B0F ] }; // ???? ???? 
        key <AD08> { [ U10B0C,         U10B0D ] }; // ???? ???? 
        key <AD09> { [ U10B0A,         U10B0B ] }; // ???? ????
        key <AD10> { [ U10B1E                 ] }; // ???? 
        key <AD11> { [ U10B06,         U10B07 ] }; // ???? ???? 
        key <AD12> { [ U10B02,         U10B03 ] }; // ???? ???? 
    
        key <AE01> { [ U10B78                 ] }; // ???? 
        key <AE02> { [ U10B79                 ] }; // ???? 
        key <AE03> { [ U10B7A                 ] }; // ???? 
        key <AE04> { [ U10B7B                 ] }; // ???? 
        key <AE05> { [ U10B7C                 ] }; // ???? 
        key <AE06> { [ U10B7D                 ] }; // ???? 
        key <AE07> { [ U10B7E                 ] }; // ???? 
        key <AE08> { [ U10B7F                 ] }; // ???? 
    
        key <BKSL> { [ U10B04,         U10B05 ] }; // ???? ???? 
        key <LSGT> { [ U10B04,         U10B05 ] }; // ???? ???? 
    };
    
  • すべての変更を含む/usr/share/X11/xkb/rules/evdev.xmlの一部:

    ...
       <layout>
          <configItem>
            <name>ir</name>
    
            <shortDescription>fa</shortDescription>
            <description>Persian</description>
            <languageList>
              <iso639Id>per</iso639Id>
            </languageList>
          </configItem>
          <variantList>
            <variant>
              <configItem>
                <name>pes_keypad</name>
                <description>Persian (with Persian Keypad)</description>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, Latin Q)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku_f</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, F)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku_alt</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, Latin Alt-Q)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku_ara</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, Arabic-Latin)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
          </variantList>
        </layout>    
        <layout>
          <configItem>
            <name>irwinxp</name>
    
            <shortDescription>fa</shortDescription>
            <description>Persian-WinXP</description>
            <languageList>
              <iso639Id>per</iso639Id>
            </languageList>
          </configItem>
          <variantList>
            <variant>
              <configItem>
                <name>pes_keypad</name>
                <description>Persian (with Persian Keypad)</description>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, Latin Q)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku_f</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, F)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku_alt</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, Latin Alt-Q)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
            <variant>
              <configItem>
                <name>ku_ara</name>
    
                <shortDescription>ku</shortDescription>
                <description>Kurdish (Iran, Arabic-Latin)</description>
                <languageList>
                  <iso639Id>kur</iso639Id>
                </languageList>
              </configItem>
            </variant>
          </variantList>
        </layout> 
        <layout>
          <configItem>
            <name>iq</name>
    ...
    

しかし、現在、これらの変更により、新しいPersian-WinXPレイアウトはirwinxpに従わず、irwinxpは無視されます。代わりにirPersian-WinXPを制御します。

更新#2:

Unityは私の新しいレイアウトに問題があります。新しいレイアウトアイコンは暗いです。しかし、それはうまく機能します。

dark layout icon

:Ubuntu 14.04を使用しています。

17
user69453

カスタムキーボードレイアウトの作成

たとえば、新しい変更英語(国際AltGrデッドキー)を交換したrRtT。名前を付けますXYスワップ:RT英語(国際AltGrデッドキー)

  1. 新しいシンボルファイルを作成します。

    Sudo nano /usr/share/X11/xkb/symbols/xy

    default  partial alphanumeric_keys
    xkb_symbols "basic" {
    
       name[Group1]= "XY swapped:RT English (international AltGr dead keys)";
    
       include "us(altgr-intl)"
    
    // my custom changes:
    
       key <AD04> { [        t, T,           ediaeresis,   Ediaeresis      ] };
       key <AD05> { [        r, R,           thorn,        THORN           ] };
    
    
       include "level3(ralt_switch)"
    };
    

    include "us(altgr-intl)"は、ここでオーバーライドされたキーのみがそのレイアウトからすべてのキーを継承することを意味します。

    Keyboard Layout Editor を使用できます。これは、XKBキーボードレイアウトの作成または編集に役立つGUIプログラムです。 @Glutanimateに感謝

  2. 新しいレイアウト宣言を/usr/share/X11/xkb/rules/evdev.xmlに追加します(usレイアウトセクションをコピーして変更します)

    参照: 設定で新しいバリアントキーボードレイアウトを使用可能にしますか?

    Sudo gedit /usr/share/X11/xkb/rules/evdev.xml

    ...
    <layout>
      <configItem>
        <name>xy</name>
    
        <shortDescription>en</shortDescription>
        <description>XY swapped:RT English (international AltGr dead keys)</description>
        <languageList>
                 <iso639Id>eng</iso639Id>
                 <iso639Id>fra</iso639Id>
                 <iso639Id>ger</iso639Id>
        </languageList>
      </configItem>
      <variantList>
      </variantList>
    </layout>
    ...
    
  3. Xkbキャッシュを削除します。

    Sudo rm /var/lib/xkb/*.xkm
    

    ノート:

    レイアウトメニューへの変更を読み込むには、単にgnome-keyboard-preferencesを閉じてリロードするだけで、Windowsマネージャーを再起動する必要はありません。

    Ubuntuバージョン(13.10)に変更があり、「/ usr/share/X11/xkb/symbols」ディレクトリ内のファイルが変更された後、キーボード設定キャッシュが更新されません。変更が適用されないようです。キャッシュを強制的に更新するには、「/ var/lib/xkb」から* .xkmファイルを削除する必要があります。

    リファレンス:Howto:カスタムキーボードレイアウト定義

    または

    Sudo dpkg-reconfigure xkb-data
    

    参考:13.10がカスタムキーボードレイアウトを壊したのはなぜですか?

    Custom keyboard layout

OPの修正を修正する返信

  • #1の間違った親レイアウトを更新irwinxpファイルにあるxkb_symbols "pes_part_basic"を変更しました。

    ただし、irwinxpファイルのxkb_symbols "pes"は引き続き:

    include "ir(pes_part_basic)"
    

    次のようにする必要があります:

    include "irwinxp(pes_part_basic)"
    
  • #2カスタムアイコンの更新<shortDescription>en</shortDescription><shortDescription>xy</shortDescription>に変更された場合。したがって、新しいレイアウトはEnとは区別され、Xyとして表示されます。

    ほとんどの場合、ubuntu-monoにはアイコンがありません。その後、インジケーターは現在のテーマに沿わない可能性のある新しいものを動的に生成します。

    1. 暗い/明るいモノのテーマのレイアウトアイコンをコピーします。

      Sudo cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-keyboard-En.svg /usr/share/icons/ubuntu-mono-dark/status/22/indicator-keyboard-Xy.svg
      Sudo cp /usr/share/icons/ubuntu-mono-light/status/22/indicator-keyboard-En.svg /usr/share/icons/ubuntu-mono-light/status/22/indicator-keyboard-Xy.svg
      
    2. SVGファイルは単なるXMLです。編集用に開いて、テキスト値をEnからXyに変更します。

      Sudo nano /usr/share/icons/ubuntu-mono-dark/status/22/indicator-keyboard-Xy.svg
      Sudo nano /usr/share/icons/ubuntu-mono-light/status/22/indicator-keyboard-Xy.svg
      

      例:

      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      <svg width="22" xmlns="http://www.w3.org/2000/svg" version="1.1" height="22">
       <defs>
        <mask id="m">
         <rect y="0" x="0" style="fill:#fff" height="22" width="22"/>
         <text y="15.5" x="5" style="font-size:12;font-family:Ubuntu;font-weight:500;fill:black">Xy</text>
        </mask>
       </defs>
       <rect style="fill:#dfdbd2" mask="url(#m)" rx="2" height="20" width="20" y="1" x="1"/>
      </svg>
      
    3. テーマキャッシュを更新します。

      Sudo update-icon-caches /usr/share/icons/ubuntu-mono-*/            
      
    4. ログアウト/ログイン

      new layout with custom icon

その他の参考資料

28
user.dz