Настройка и работа в Linux
adb5321d

Где будем экспериментировать?


Конечно, все изменения конфигурации можно сделать непосредственно в соответствующих файлах настройки XKB. Но это очень неудобно по нескольким причинам

  • всегда хочется иметь возможность "откатиться" к стандартной конфигурации, поэтому придется сохранять отдельно оригинальные файлы;
  • если в следующих версиях "иксов" эти файлы изменятся, то вам придется либо переносить свои изменения вручную, либо продолжать пользоваться старыми файлами;
  • ну и, наконец, если мы вносим изменения только в одно-два определения, зачем нам искать их каждый раз в "многоэтажном" тексте.

При этом xkbcomp позволяет легко "нанизывать" несколько файлов при описании одного компонента настройки XKB. Например, файл (блок) описания компонента xkb_types может выглядеть как

xkb_types { include "basic+pc+мои_типы+еще_один_полезный_тип"; };

Что означает -

  • взять описание из файла basic;
  • добавить к нему описание из файла pc;
  • добавить описание из файла мои_типы;
  • и, наконец, добавить еще описание из файла еще_один_полезный_тип.

При этом, если в добавляемом файле встретится определение для какого-то элемента, уже описанного в предыдущих файлах, новое определение, обычно, замещает старое, не затрагивая все остальные определения.

Итак. Давайте все изменения/исправления/дополнения помещать в отдельных файлах и просто "приплюсовывать" эти файла к уже имеющимся.

Хотя, в некоторых случаях (особенно это касается добавлений в xkb_symbols), боле эффективным может оказаться не "приплюсовывание", а объявление добавляемого файла отдельной инструкцией - replace.

Напомню, что "плюсик" в инструкции include означает, что инструкции из файла будут добавляться в режиме override (см "Способ добавления".). А при переопределении клавиш часто требуется способ replace.
Поэтому, при добавлении в xkb_symbols, вместо одного длинного include

лучше использовать конструкцию типа

xkb_symbols { include "en_US(pc104)" replace "my.symbols" replace "one_another_symbol" };


Теперь осталось решить вопрос - куда "приплюсовывать"?
Во-первых, напомню, что программа xkbcomp может " на ходу" поменять настройки XKB прямо в работающем X-сервере. Для этого вторым ее аргументом ("куда") нужно указать "X дисплей". Если вы работаете на той же машине, где и запущен X-сервер, то это выглядит как

xkbcomp ... :0.0

(можно еще проще - ":0")

А вот первым аргументом должен быть файл с описанием одного или нескольких компонентов настройки. Для того, чтобы одной командой загружать все необходимые компоненты настройки, давайте сначала составим файл с полным описанием всех компонентов, соответствующий вашей текущей конфигурации.

Это совсем не сложно, но зависит от того - какой способ задания полной конфигурации используется у вас в XF86Config (см. "Настройка XKB")
(Надеюсь, что у вас используется один из способов "в чистом виде", а не "каша" из всех возможных инструкций).


Содержание раздела