...
Суббота , 23 ноября 2024

Здесь описываются возможные типы клавиш

Здесь описываются возможные типы клавиш. Тип клавиши определяет как должно меняться значение, выдаваемое клавишей в зависимости от модификаторов (‹Control›, ‹Shift› и т. п.). Так, например, ‘буквенные’ клавиши относятся к типу ALPHABETIC, что означает, что они имеют разное значение в зависимости от состояния ‹Shift› и ‹Caps Lock›. А клавиша ‹Enter› имеет тип ONE_LEVEL, что означает, что ее значение всегда одно и то же, независимо от состояния модификаторов.

• compat (сокращение от compability)

Здесь описывается ‘поведение’ модификаторов. В модуле XKB имеется несколько внутренних переменных, которые, в конечном счете, и определяют, какой символ будет генерироваться при нажатии клавиши в конкретной ситуации. Так вот, в файлах из каталога compat как раз описывается, как должны меняться эти переменные при нажатии различных клавиш-модификаторов. В этом же разделе обычно описывается и поведение ‘лампочек-индикаторов’ на клавиатуре.

• symbols

Это каталог содержит таблицы, в которых для каждого скан-кода (задаваемого именем скан-кода, определенным в keycodes) перечисляются все значения (symbols), которые должна выдавать клавиша. Естественно, количество различных значений зависит от типа клавиши (которые описываются в types), а какое именно значение будет выдано в конкретной ситуации, определяется состоянием модификаторов и их ‘поведением’ (которое описывается в compat).4sem2OFDbCc

• geometry

Здесь описываются варианты ‘геометрии’ клавиатуры, т. е. расположение клавиш на клавиатуре. Эти описания нужны не столько самому X-серверу, сколько прикладным программам, которые рисуют изображение клавиатуры.

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

тип_компонента 'имя_блока' {…...};

Поэтому, для того, чтобы выбрать конкретную настройку, ее обычно указывают в виде имя_файла (имя_блока), например, us(pc104). В то же время, обычно один из блоков в файле (не обязательно самый первый) помечается флагом default. Это означает, что если указать только имя файла, то будет выбран именно этот блок.

Полная конфигурация XKB задается в секции ImputDevice, определяющей клавиатуру, файла конфигурирования пакета XFree86, т. е. в файле /etc/X11/XF86Config-4. При этом имеется три способа задания конфигурации клавиатуры в этом файле.

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

Option 'XkbKeycodes'     'xfree86'

Option 'XkbTypes'          'default'

Option 'XkbCompat'        'default'

Option 'XkbSymbols'       'us(pc104)'

Option 'XkbGeometry'      'pc(pc104)'

Как легко догадаться, это означает, что:

• описание keycodes берется из файла ‘xfree86’ в подкаталоге keycodes, причем из файла будет выбран тот блок, который помечен в нем флагом default;

• описание types берется из файла ‘default’ в подкаталоге types;

• описание compat берется из файла ‘default’ в подкаталоге compat;

• описание symbols берется из файла ‘us’ в подкаталоге symbols, причем будет выбран блок ‘pc104’;

• описание geometry берется из файла ‘pc’ в подкаталоге geometry, блок ‘pc104’;

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

О нас admin

Проверить еще

Backyard Landscape

Что такое быстровозводимые здания сегодня?

Желание жить только в самом безопасном и комфортном месте присуще каждому человеку, ведь это позволяет …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.