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

         

Xkbcomp


Это самая важная программа. Во всяком случае, она отрабатывет каждый раз при старте "иксов" для того, чтобы перевести файлы конфигурации XKB в бинарный формат, понятный самому X-серверу. (Как понятно из названия, это - "XKB compiler").

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

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

Последнее тоже важно. Поскольку полная конфигурация складывается из содержимого многих файлов/блоков (не забудьте, что в любом файле может быть 'include'), понять - что же должно получится в результате такого "сложения" - не так-то просто. С помощью xkbcomp можно "вытащить" из X-сервера "суммарную" конфигурацию (в виде полной xkb_keymap).

Полную информацию о xkbcomp можно прочитать в соответствующем man'е.
Поэтому, приведу лишь примеры - как можно "обменяться информацией" с X-сервером. Вообще-то, если в качестве источника или приемника данных надо указать X-сервер, это можно сделать (как сказано в man X) в форме

hostname:dispalay_number.screen_number

В простейшем случае, когда X-сервер запущен на вашей же машине, причем - только один и с одним "скрином", эта последовательность выглядит как ":0".

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

xkbcomp :0 outfile

(можно даже не указывать outfile, в этом случае программа сама сочинит имя для выходного файла, типа - server-0.xkb).

Обратите также внимание на ключи -a (all) и -dflts (defaults). С ними выходная информация будет более полной.

Соответствено, для загрузки новой конфигурации можно использовать команду

xkbcomp xkbfile :0

Подразумевается, что xkbfile в этом случае - файл типа xkb_keymap. Хотя он может и не содержать непосредственно в себе все необходимые описания (как это получается в выходном файле при чтении из X-сервера), а только указывать с помощью include файлы-компоненты полной конфигурации.

Кстати, эти файлы xkbcomp ищет сначала в текущей директории и, если не находит, то в "базе данных" конфигураций (X11R6/lib/X11/xkb/).

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

"Примеры изменения конфигурации XKB: Где будем экспериментировать."



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