Полезная информация

Общее строение файлов конфигурации XKB.

Возможны три типа файлов конфигурации

"Простая" конфигурация

Если в файле находится "простая" конфигурация, то в начале файла должен быть заголовок

  [ Флаги ] ТипФайла [ Имя ]
после которого сразу следуют объявления (или инструкции). Например,
xkb_keyсodes

  <TLDE> = 49;
  <AE01> = 10;
.......

Последовательность из "простых" блоков.

Однако, чаще используется другой формат файла - последовательность "простых" блоков. В таком файле объявления группируются в блоки, которые ограничиваются фигурными скобками - '{...}' (после каждого блока должна быть "точка с запятой" - ';').

Перед каждым блоком должен быть заголовок, такой же как и в файле с "простой" конфигурацией

 [ Флаги ] ТипФайла   [ Имя1 ] '{' [ Объявления ] '};'
 [ Флаги ] ТипФайла   [ Имя2 ] '{' [ Объявления ] '};'
...
Например,
xkb_symbols "basic" {....};
xkb_symbols "us" {....};
....

Типы файлов.

И в том и в другом формате используются одинаковые "Типы Файлов". Это может быть одно из пяти слов

Надо отметить, что, если файл состоит из нескольких блоков, то все блоки должны быть одного типа. Отличаются они только именем.

Имя представляет собой произвольное слово в двойных кавычках.

Как можно заметить, в формате заголовка только "ТипФайла" должен присутствовать обязательно, а "Имя" может отсутствовать. Естественно, если файл предствляет собой "простую" конфигурацию или содержит только один блок, то именовать их необязательно. В этом случае, чтобы сослаться в настройках X-сервера на такую конфигурацию достаточно указать имя файла.

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

 имя_файла(имя_блока)
например,
 us(pc104)

Флаги.

В каждом заголовке может быть несколько флагов

Следующие флаги имеют смысл только для файлов (и блоков) типа xkb_symbols и просто отмечают - какие группы клавиш описаны в этом блоке

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

Кстати, сводный список всех блоков конфигураций с их флагами можно найти в файлах *.dir в директории {XROOT}/lib/X11/xkb. Названия файлов аналогичны названиям типов конфигурации - keycodes, types, symbols и т.д. Флаги там обозначаются одной буквой - первой буквой из названия соответствующего флага.

Последовательность из "составных" блоков.

Наконец, рассмотрим третий тип конфигурационного файла - последовательность из "составных" блоков. Каждый такой "Составной Блок" оформляется как "простой" блок

 [ Флаги ] СложныйТип [ Имя ] '{' Блок { Блок } '}' ';'
но внутри содержит не просто объявления, а блоки "простых" типов, например
xkb_keymap "complete" {
	xkb_keycodes  {...};
	xkb_types     {...};
	xkb_compat    {...};
	xkb_symbols   {...};
	xkb_geometry  {...};
};

Так же, как и файл с "простыми" блоками, файл с "составными" блоками может содержать несколько таких "составных" блоков, отличающихся именами (один из блоков может быть помечен флагом "default").

Существует три типа "составных" блоков


Иван Паскаль pascal@tsu.ru