Comment ajouter une nouvelle disposition de clavier (définition de disposition de clavier personnalisée)

20

Je souhaite copier une disposition de clavier dans /usr/share/X11/xkb/symbols/et la modifier, puis produire une nouvelle disposition à partir de celle-ci.

Comment puis-je ajouter une nouvelle disposition de clavier (nommée par exemple "mylayout")?

Mise à jour # 1:

Fichiers que j'ai modifiés pour ajouter une nouvelle mise en page:

  • /usr/share/X11/xkb/symbols/irwinxp(à l'origine identique à 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 ] }; // 𐬄 𐬅 
    };
    
  • Partie /usr/share/X11/xkb/rules/evdev.xmlcontenant toutes les modifications:

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

Mais maintenant, avec ces changements, la nouvelle Persian-WinXPdisposition n'obéit pas irwinxpet irwinxpest ignorée. irContrôle à la place Persian-WinXP.

Mise à jour # 2:

Unity a un problème avec ma nouvelle mise en page. La nouvelle icône de mise en page est sombre. Mais ça marche bien.

icône de mise en page sombre

Remarque : j'utilise Ubuntu 14.04.

user69453
la source
2
Vous pouvez simplement ajouter une variante. Je l'ai fait ici: rlog.rgtti.com/2014/05/01/…
Rmano

Réponses:

29

Création d'une disposition de clavier personnalisée

Par exemple, je suis à la recherche d'ajouter une nouvelle modification English (touches mortes AltGr internationales) mise en page Etats - Unis avec troqué r, Ret t, T. Je vais l' appeler XY échangé: RT anglais (clés internationales AltGr mortes) .

  1. Créez un nouveau fichier de symboles:

    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)" signifie qu'il hérite de toutes les clés de cette disposition uniquement les clés remplacées ici.

    Vous pouvez utiliser l' Éditeur de disposition de clavier qui est un programme GUI qui aide à créer ou à modifier les dispositions de clavier XKB. Merci à @Glutanimate

  2. Ajouter la nouvelle déclaration de mise en page à /usr/share/X11/xkb/rules/evdev.xml(copier et modifier la ussection de mise en page)

    Référence: rendre la nouvelle disposition de clavier de variante disponible dans les paramètres?

    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. Supprimer le cache xkb.

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

    Remarques:

    Pour charger les modifications dans le menu des dispositions, fermez simplement les préférences de gnome-keyboard et rechargez, la relance du gestionnaire de fenêtres ne devrait pas être nécessaire.

    Il y a un changement dans la version Ubuntu (13.10) qui fait que le cache des paramètres du clavier ne s'actualise pas après la modification des fichiers dans le répertoire "/ usr / share / X11 / xkb / symboles". Il semble que les changements ne soient tout simplement pas appliqués. Pour forcer l'actualisation du cache, il faut supprimer les fichiers * .xkm de "/ var / lib / xkb".

    Référence: Howto: définitions de disposition de clavier personnalisées

    ou

    sudo dpkg-reconfigure xkb-data
    

    Référence: Pourquoi 13.10 a-t-il cassé ma disposition de clavier personnalisée?

    Disposition du clavier personnalisée

Répondre pour corriger les modifications OP

  • ( Mettre à jour la disposition parentale incorrecte # 1 ) Vous avez modifié xkb_symbols "pes_part_basic"ce qui est dans le irwinxpfichier: c'est ok.

    mais toujours xkb_symbols "pes"dans le irwinxpdossier:

    include "ir(pes_part_basic)"
    

    qui devrait être:

    include "irwinxp(pes_part_basic)"
    
  • ( Icône personnalisée de mise à jour # 2 ) Si <shortDescription>en</shortDescription>changé en <shortDescription>xy</shortDescription>. Ainsi, la nouvelle disposition sera distincte de Enet elle apparaîtra comme Xy.

    Il n'y aura probablement pas d'icône pour cela ubuntu-mono. Ensuite, l'indicateur va générer dynamiquement un nouveau qui peut ne pas suivre le thème actuel.

    1. Copiez toutes les icônes de disposition pour les thèmes mono sombres / clairs:

      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. Les fichiers SVG sont simplement XML. Ouvrez ensuite la valeur de modifier le texte et le changement de Enla 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
      

      Exemple:

      <?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. Mettre à jour le cache de thème:

      sudo update-icon-caches /usr/share/icons/ubuntu-mono-*/            
      
    4. Déconnexion / connexion

      nouvelle disposition avec icône personnalisée

Autres références utiles

user.dz
la source
1
Maintenant, c'est un guide plus complet que help.ubuntu.com/community/… . Merci. btw, je me demande si j'ai besoin d'ajouter le nouveau nom de mise en page à d'autres fichiers /usr/share/X11/xkb/rules/.
user69453
1
yep @ user69453, :). Comme cela fonctionne, pas besoin. Ils semblent avoir les mêmes informations dans différents formats, très probablement un processus de migration d'un format à un autre, nous pouvons nous attendre à la disparition de certaines d'entre elles dans les prochaines versions. Je ne sais pas, si j'obtiens une référence pour cela, je l'ajouterai.
user.dz
1
Très bonne réponse! Juste un petit conseil: vous pouvez utiliser KeyboardLayoutEditor pour générer rapidement des fichiers de symboles personnalisés.
Glutanimate
L'ajout d'une image de drapeau est également nécessaire pour KDE. Une option dans KDE peut afficher le drapeau du pays au lieu de l'étiquette de mise en page. Pour ma mise en page artificielle, l'étiquette est affichée à la place d'un drapeau.
user69453