Как я могу автоматически загрузить настройки xkb в GNOME?

11

В продолжение моего вопроса о настройке сопоставлений клавиш в Wayland я обнаружил, что xmodmapэто явно устарело, но xkb «должен работать» в Wayland. К сожалению, xkb намного сложнее и, соответственно, хуже документирован. Я сумел выработать строфы , мне нужно на основе информации от вопроса об обмене CmdиCtrl , еще колпачки блокировки вопроса , чтении некоторых ссылок в ответах и из моих системных файлов, но я не знаю , как их применять таким образом, что это может быть автоматизировано и не конфликтовать с GNOME.

Это те строфы, которые я разработал и успешно протестировал xkbcomp.

partial alphanumeric_keys
xkb_symbols "pound" {
    // Put sterling on RAlt-3 and numbersign on Shift-3.
    key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};

// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
    key <RWIN> { [ Control_R ] };
    modifier_map Control { <LCTL>, <RWIN> };
    modifier_map Mod4 { <LWIN> };
};

partial modifier_keys
xkb_symbols "shiftcaps" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ VoidSymbol, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Я помещаю первые два /usr/share/X11/xkb/symbols/macbookи третий в один и shiftcapsтот же каталог, и xkbcompони и т.д. работают, когда загружаются поверх стандартной gb(mac)компоновки.

Я редактирую это, чтобы сделать обновление и уточнить мой ответ. Моя настройка фунта недавно перестала работать, поэтому я проверил, что изменилось в gb (mac), и понял, что мне нужно добавить , threesuperiorв key <AE03>строку.

Я думаю, что evdev.xmlиспользуется gnome-tweak-tool, чтобы сделать эти опции доступными в GUI. Вот что я добавил:

<group allowMultipleSelection="true">
  <configItem>
    <name>macbook</name>
    <description>Macbook customisations</description>
  </configItem>
  <option>
    <configItem>
      <name>macbook:pound</name>
      <description>Hash on Shift-3, Sterling on AltGr-3</description>
    </configItem>
  </option>
  <option>
    <configItem>
      <name>macbook:rcmdctrl</name>
      <description>Right Cmd key acts as Ctrl</description>
    </configItem>
  </option>
</group>
<group allowMultipleSelection="false">
  <configItem>
    <name>shiftcaps</name>
    <description>Caps Lock with Shift</description>
  </configItem>
  <option>
    <configItem>
      <name>shiftcaps:shiftcaps</name>
      <description>Caps Lock requires Shift to toggle</description>
    </configItem>
  </option>
</group>
realh
источник
1
gnome должен видеть ваши параметры (и учитывать dconfзначения ключей в org.gnome.desktop.input-sources) при условии, что вы добавите их к правилам xkb, которые использует ваша система, то есть к нужным файлам, см. мой пост здесь
don_crissti
Спасибо. Определение опций в файлах evdev было недостающим фрагментом головоломки, и теперь я могу сделать то, что хочу, используя dconf-editor.
Реал
На моей системе (Debian) я тоже нашел /usr/share/X11/xkb/rules/evdev.xml. Я не уверен, для чего это; приложение настроек GNOME зависнет при открытии параметров клавиатуры, если я допустил синтаксическую ошибку в нем, но на самом деле я не могу найти параметры в графическом интерфейсе. Я добавил соответствующие строки после строки, содержащей <optionList>. Я не могу опубликовать их здесь из-за ограничений на комментарии.
реально
Позвольте мне добавить, что xmodmap устарела примерно в 1996 году, когда появился XKB. Т.е. за годы до изобретения Wayland.
Роберт Симер

Ответы:

1

Ответ don_crissti на другой вопрос предоставил недостающую часть головоломки. Я определил параметры в файлах evdev, как описано, и добавил их в org.gnome.desktop.input-sources.xkb-optionsgsetting. Работает отлично.

realh
источник