Pertanyaan Cara menambahkan tata letak keyboard baru (Definisi tata letak papan ketik khusus)


Saya ingin menyalin tata letak keyboard di /usr/share/X11/xkb/symbols/ dan mengubahnya dan kemudian menghasilkan tata letak baru darinya.

Bagaimana cara menambahkan tata letak keyboard baru (bernama misalnya "mylayout")?

Perbarui # 1:

File yang saya ubah untuk menambahkan tata letak baru:

  • /usr/share/X11/xkb/symbols/irwinxp (awalnya sama dengan 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 <behnam@esfahbod.info>
    //
    
    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î  <erdal.ronahi@gmail.com>
    //
    // 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 ] }; // 𐬄 𐬅 
    };
    
  • Bagian dari /usr/share/X11/xkb/rules/evdev.xml berisi semua modifikasi:

    ...
       <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>
    ...
    

Tetapi sekarang, dengan perubahan ini yang baru Persian-WinXP tata letak tidak patuh irwinxp dan irwinxp igored. Sebagai gantinya ir kontrol Persian-WinXP.

Perbarui # 2:

Kesatuan memiliki masalah dengan tata letak baru saya. Ikon tata letak baru gelap. Tetapi itu bekerja dengan baik.

dark layout icon

Catatan: Saya menggunakan Ubuntu 14.04.


14
2018-06-13 08:16


asal


Anda cukup menambahkan varian. Saya melakukannya di sini: rlog.rgtti.com/2014/05/01/ ... - Rmano


Jawaban:


Membuat tata letak keyboard khusus

Misalnya, saya ingin menambahkan modifikasi baru Bahasa Inggris (tombol mati AltGr internasional) Tata letak AS dengan bertukar r,R & t,T. Saya akan menamainya XY bertukar: RT Bahasa Inggris (tombol mati AltGr internasional).

  1. Buat file simbol baru:

    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)" berarti itu mewarisi semua kunci dari tata letak itu hanya kunci yang diganti di sini.

    Anda dapat menggunakan Editor Layout Keyboard yang merupakan program GUI yang membantu membuat atau mengedit layout keyboard XKB. Terima kasih kepada @Glutanimate

  2. Tambahkan deklarasi tata letak baru ke /usr/share/X11/xkb/rules/evdev.xml (salin & modifikasi us bagian tata letak)

    Referensi: Buat layout keyboard varian baru tersedia di Setelan?

    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. Hapus cache xkb.

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

    Catatan:

    Untuk memuat perubahan pada menu tata letak cukup dengan menutup preferensi gnome-keyboard dan memuat ulang, relaunching manajer windows tidak diperlukan.

    Ada perubahan dalam versi Ubuntu (13.10) yang menyebabkan cache pengaturan keyboard tidak me-refresh setelah file di direktori "/ usr / share / X11 / xkb / simbol" dimodifikasi. Sepertinya perubahan tidak diterapkan. Untuk memaksa penyegaran cache, seseorang harus menghapus file * .xkm dari "/ var / lib / xkb".

    Referensi:  Howto: Definisi tata letak keyboard khusus

    atau

    sudo dpkg-reconfigure xkb-data
    

    Referensi:  Mengapa 13.10 merusak layout keyboard saya?

    Custom keyboard layout

Balas untuk memperbaiki modifikasi OP

  • (Perbarui tata letak induk # 1 yang salah) Anda telah memodifikasi xkb_symbols "pes_part_basic" yang ada di irwinxp file: tidak apa-apa.

    tapi xkb_symbols "pes" di irwinxp file masih:

    include "ir(pes_part_basic)"
    

    yang seharusnya:

    include "irwinxp(pes_part_basic)"
    
  • (Perbarui # 2 ikon khusus) Jika <shortDescription>en</shortDescription> berubah menjadi <shortDescription>xy</shortDescription>. Jadi tata letak baru akan berbeda En dan itu akan muncul sebagai Xy.

    Kemungkinan besar tidak akan ada ikon untuk itu ubuntu-mono. Maka indikator akan secara dinamis menghasilkan yang baru yang mungkin tidak mengikuti tema saat ini.

    1. Salin ikon tata letak apa pun untuk tema mono gelap / terang:

      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. File SVG hanya XML. Buka kemudian untuk mengedit dan mengubah nilai teks dari En untuk 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
      

      Contoh:

      <?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. Perbarui cache tema:

      sudo update-icon-caches /usr/share/icons/ubuntu-mono-*/            
      
    4. Logout / login

      new layout with custom icon

Referensi Bermanfaat Lainnya


23
2018-06-13 23:57



Sekarang ini adalah panduan yang lebih lengkap daripada help.ubuntu.com/community/…. Terima kasih. btw, saya ingin tahu apakah saya perlu menambahkan nama layout baru ke file lain di /usr/share/X11/xkb/rules/. - user69453
yap @ user69453, :). Karena tidak perlu bekerja. Mereka tampaknya memiliki informasi yang sama dalam format yang berbeda, kemungkinan besar proses migrasi dari satu format ke format lainnya, kita mungkin mengharapkan hilangnya beberapa dari mereka rilis berikutnya. Tidak yakin, jika saya mendapatkan referensi untuk itu saya akan menambahkannya. - user.dz
Jawaban bagus! Hanya tip singkat: Anda dapat menggunakannya KeyboardLayoutEditor untuk menghasilkan file simbol kustom dengan cepat. - Glutanimate
Menambahkan gambar bendera juga diperlukan untuk KDE. Opsi di KDE dapat menampilkan bendera negara sebagai ganti label tata letak. Untuk label tata letak buatan saya ditampilkan sebagai ganti bendera. - user69453
Hanya demi kelengkapan: Berikut adalah sumber yang sangat bermanfaat tentang konfigurasi XKB di Linux - Glutanimate