Пользовательская раскладка клавиатуры ведет себя как выбранный последний

Я пытаюсь создать пользовательский макет в XKB следующий инструкциям, данным в ответах обмена стека и других учебных руководствах. У меня есть следующее в файле my:

default alphanumeric_keys
xkb_symbols "basic" {

  name[Group1]="MyLayout";

  key <AC01> { [ UE700 ] };
  key <AC02> { [ UE701 ] };
  key <AC03> { [ UE702 ] };
  key <AC04> { [ UE703 ] };
  key <AC05> { [ UE704 ] };
  key <AC06> { [ UE705 ] };
  key <AC07> { [ UE706 ] };
  key <AC08> { [ UE707 ] };
  key <AC09> { [ UE708 ] };
  key <AC10> { [ UE709 ] };
  key <AC11> { [ UE70A ] };
  key <AD03> { [ UE70B ] };
};

Я добавил блоки к evdev.lst и evdev.xml файлы:

// evdev.lst
! layout
  my              MyLayout
  us              English (US)

// evdev.xml
<layout>
    <configItem>
        <name>my</name>
        <shortDescription>my</shortDescription>
        <description>MyLayout</description>
        <languageList>
            <iso639Id>myl</iso639Id>
        </languageList>
    </configItem>
    <variantList/>
</layout>

Я работал sudo dpkg-reconfigure xkb-data до тестирования. Расположение видимо в моих параметрах настройки системы как MyLayout и я могу добавить его без очевидной проблемы. Однако, когда я выбираю его как активное расположение, его символ темно-серый, и это сразу ведет себя как расположение перед ним в выпадающем списке. Если мой список идет English (US), Hebrew, MyLayout, мой пользовательский макет будет вести себя точно как еврейское расположение. Если я удалю иврит, то он будет вести себя точно как английский язык (США). Я нов из идей об этом и не вижу проблему со своим синтаксисом.

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:      pc105
layout:     my
variant:    basic
options:    compose:ralt,lv3:caps_switch
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+my(basic)+inet(evdev)+compose(ralt)+level3(caps_switch)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+my(basic)+inet(evdev)+compose(ralt)+level3(caps_switch)"    };
    xkb_geometry  { include "pc(pc105)" };
};
0
задан 25 March 2017 в 12:04

1 ответ

Необходимо включить фактическое правило /usr/share/X11/xkb/rules/evdev; evdev.{lst,xml} файлы являются только описаниями.

Мое лучшее предположение - то, что Вам нужно что-то как следующее:

# existing lines
! model         layout          variant         =       symbols
  *             ben             basic           =       pc+in(ben)
# your additions
  *             my              basic           =       pc+my(basic)

Я принимаю Ваш my файл /usr/share/X11/xkb/symbols/my. Первые 3 столбца соответствуют входным параметрам XKB (здесь, любой -model, -layout my, -variant basic). Последний столбец определяет правило символов с точки зрения файлов символов для загрузки в формате file(clause) (несколько файлов, разделенных +). Файлы символов - все в /usr/share/X11/xkb/symbols.

Попробуйте это - можно протестировать с чем-то вроде этого, чтобы удостовериться, что это работает (отметьте +my(basic) в xkb_symbols строка):

$ setxkbmap -layout my -variant basic -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+my(basic)+inet(evdev)"     };
        xkb_geometry  { include "pc(pc105)"     };
};

Одна проблема состоит в том, что я не уверен Ваш my определения не будут конфликтовать с существующим расположением. Если это - абсолютно новое расположение, необходимо, вероятно, назвать его чем-то еще для предотвращения конфликтов.

1
ответ дан 3 November 2019 в 13:57

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

Похожие вопросы: