X11/xkb: пользовательская раскладка клавиатуры — «Ошибка при загрузке нового описания клавиатуры»

Моя машина: Xubuntu 20.04.3 LTS, XFCE 4.14, X.org 1.20.13

Я пытаюсь создать пользовательскую раскладку клавиатуры для версии уйгурского языка с арабским шрифтом (kona yéziq). Я считаю, что у меня все в основном правильно, и мне просто не хватает чего-то небольшого, чтобы собрать все это вместе.

Это вывод команды setxkbmap -v 10 -layout "ug":

      Setting verbose level to 10
locale is C
Warning! Multiple definitions of keyboard layout
         Using command line, ignoring X server
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc104
layout:     ug
options:    terminate:ctrl_alt_bksp
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+ug+inet(evdev)+terminate(ctrl_alt_bksp)
geometry:   pc(pc104)
Error loading new keyboard description

(Я также пробовал с настройкой модели pc105 с тем же результатом.) Как следует из сообщения об ошибке, после выполнения этой команды моя раскладка клавиатуры остается такой же, как и раньше.

Насколько я понимаю, соответствующие файлы здесь будут , , и . я вставлю ugполностью, а затем соответствующие строки, которые я добавил из evdevа также :

/usr/share/X11/xkb/symbols/ug

      default  partial alphanumeric_keys modifier_keys
xkb_symbols "ug" {

    name[Group1]= "Uyghur";

    key <TLDE> {    [     grave,    asciitilde  ]   };
    key <AE01> {    [     1,    exclam      ]   };
    key <AE02> {    [     2,    at      ]   };
    key <AE03> {    [     3,    numbersign  ]   };
    key <AE04> {    [     4,    dollar      ]   };
    key <AE05> {    [     5,    percent     ]   };
    key <AE06> {    [     6,    asciicircum ]   };
    key <AE07> {    [     7,    ampersand   ]   };
    key <AE08> {    [     8,    asterisk    ]   };
    key <AE09> {    [     9,    parenright  ]   };
    key <AE10> {    [     0,    parenleft   ]   };
    key <AE11> {    [     minus,    underscore  ]   };
    key <AE12> {    [     equal,    plus        ]   };

    key <AD01> { [ U0686, NoSymbol ] }; // چ
    key <AD02> { [ U06CB, NoSymbol ] }; // ۋ
    key <AD03> { [ U06D0, NoSymbol ] }; // ې
    key <AD04> { [ U0631, NoSymbol ] }; // ر
    key <AD05> { [ U062A, NoSymbol ] }; // ت
    key <AD06> { [ U064A, NoSymbol ] }; // ي
    key <AD07> { [ U06C7, NoSymbol ] }; // ۇ
    key <AD08> { [ U06AD, NoSymbol ] }; // ڭ
    key <AD09> { [ U0648, NoSymbol ] }; // و
    key <AD10> { [ U067E, NoSymbol ] }; // پ
    key <AD11> { [ bracketright, U00BB ] }; // ], »
    key <AD12> { [ bracketleft, U00AB ] }; // [, «

    key <AC01> { [ U06BE, NoSymbol ] }; // ھ
    key <AC02> { [ U0633, NoSymbol ] }; // س
    key <AC03> { [ U062F, U0698 ] }; // ژ ,د
    key <AC04> { [ U0627, U0641 ] }; // ف ,ا 
    key <AC05> { [ U06D5, U06AF ] }; // گ ,ە 
    key <AC06> { [ U0649, U062E ] }; // خ ,ى 
    key <AC07> { [ U0642, U062C ] }; // ج ,ق
    key <AC08> { [ U0643, U06C6 ] }; // ۆ ,ك
    key <AC09> { [ U0644, NoSymbol ] }; // ل
    key <AC10> { [ U061B, colon ] }; // ؛, :
    key <AC11> { [ apostrophe, quotedbl ] }; // ', "

    key <AB01> { [ U0632, NoSymbol ] }; // ز
    key <AB02> { [ U0634, NoSymbol ] }; // ش
    key <AB03> { [ U063A, NoSymbol ] }; // غ
    key <AB04> { [ U06C8, NoSymbol ] }; // ۈ
    key <AB05> { [ U0628, NoSymbol ] }; // ب
    key <AB06> { [ U0646, NoSymbol ] }; // ن
    key <AB07> { [ U0645, NoSymbol ] }; // م
    key <AB08> { [ U060C, greater ] }; // ،, >
    key <AB09> { [ period, less ] }; // ., <
    key <AB10> { [ U0626, U061F ] }; // ؟ ,ئ

    key <BKSL> {    [ backslash,         bar    ]   };
};

(Я рассматривал возможность того, что проблема вызвана нарушением стиля вкладок по умолчанию, но 1. ни один из моих текстовых редакторов не создает вкладки такого же типа, 2. я видел примеры измененных макетов, которые делают то же самое, и 3 , тогда какой смысл использовать скобки и точки с запятой?)

/usr/share/X11/xkb/rules/evdev(строки 208-224)

        classmate     us              alt-intl        =       pc+us(classmate-alt-intl)
  classmate     us              altgr-intl      =       pc+us(classmate-altgr-intl)
  nokiarx51     cz              qwerty          =       nokia_vndr/rx-51(cz_qwerty)
  *                     $sun_custom     $sun_var        =       pc+sun_vndr/%l%(v)

! model         layout                          =       symbols
  *             ug                      =       pc+ug // This is the line I've added.
  *             ar                      =       pc+ara
  *             ben                     =       pc+in(ben)
  *             bs                      =       pc+ba
  *             cs                      =       pc+rs
  *             cz_qwerty                       =       pc+cz(qwerty)
  *             dev                     =       pc+in(deva)
  *             dvorak                  =       pc+us(dvorak)
  *             dzdwi                   =       pc+bt
  *             el                      =       pc+gr
  *             en_US                   =       pc+latin

(Я пробовал несколько разных вариантов вместо pc+ug, которые произвели один и тот же эффект, но, в частности, эти изменения действительно проявились в выводе setxkbmap, поэтому я знаю, что у меня правильный файл.)

/usr/share/X11/xkb/rules/evdev.xml(строки 1330 - 1352)

            <vendor>Megawin Technology</vendor>
     </configItem>
    </model>
  </modelList>
  <layoutList>
    <layout>
      <configItem>
        <name>ug</name>
        <shortDescription>Uyghur</shortDescription>
        <description>Uyghur (Kona Yeziq)</description>
        <languageList>
          <iso639Id>uig</iso639Id>
        </languageList>
      </configItem>
      <variantList/>
     </layout>
    <layout>
      <configItem>
        <name>us</name>
        <!-- Keyboard indicator for English layouts -->
        <shortDescription>en</shortDescription>
        <description>English (US)</description>
        <languageList>

Изменения, которые я внес в evdev.xmlдействительно заполнить в диалоговом окне настроек клавиатуры XFCE, но выбор раскладки клавиатуры оттуда просто ничего не делает. На всех этапах отладки я свободно выходил из сеанса и снова входил в систему, прежде чем определить, что попытка решения не удалась.

0 ответов

Другие вопросы по тегам