Як я можу автоматично завантажити налаштування xkb у GNOME?


11

Слідом за моє запитання про налаштування зіставлень клавіш в Wayland я виявив, що по- xmodmapвидимому , що не рекомендується, але Х «повинні працювати» в 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 використовується для надання цих параметрів у графічному інтерфейсі. Ось що я додав:

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

1
gnome повинен бачити ваші параметри (і шанувати dconfключові значення під org.gnome.desktop.input-sources), поки ви додасте їх до правил xkb, якими користується ваша система, тобто до правильних файлів, дивіться тут
don_crissti

Дякую. Визначення параметрів у файлах evdev було відсутнім фрагментом головоломки, і я маю це робити те, що я хочу зараз, використовуючи dconf-редактор.
realh

У своїй системі (Debian) я також знайшов /usr/share/X11/xkb/rules/evdev.xml. Я не впевнений, для чого це; додаток налаштувань GNOME зірветься під час відкриття параметрів клавіатури, якщо я зробив у ньому синтаксичну помилку, але я фактично не можу знайти варіанти в графічному інтерфейсі. Після доданого рядка я додав відповідні рядки <optionList>. Я не можу їх публікувати тут через обмеження в коментарях.
realh

Дозвольте додати, що xmodmap був застарілий приблизно в 1996 році, коли з'явився XKB. Тобто роки до винаходу околиць.
Роберт Сімер

Відповіді:


1

Відповідь don_crissti на інше питання забезпечила відсутність фрагмента головоломки. Я визначив параметри у файлах evdev, як описано, і додав їх до org.gnome.desktop.input-sources.xkb-optionsgsetting. Це прекрасно працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.