Linux - статьи

         

Конфигурирование устройств ввода


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

Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbLayout" "ru (winkeys)" Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll" EndSection

Наиболее интересны для нас опции, передаваемые демону xkb, отвечающему за выбор раскладки клавиатуры. Так, строка

Option "XkbLayout" "ru (winkeys)"

указывает на необходимость загрузки англо-русской раскладки, описываемой в системном файле ru, который находится в папке /usr/X11R6/lib/X11/xkb/symbols (для RH-совместимых ОС). Причем в этом файле выбирается раздел (winkeys), описывающий Windows-подобную конфигурацию раскладки. Следует заметить, что современная программа xkb "понимает" только опции, передаваемые ей через правила (rules), так что необходимо использовать тег Option. Для англо-украинско-русской или англо-украинской раскладки нужно изменить этот тег соответствующим образом:

Option "XkbLayout" "ru_UA (winkeys)" # англо\украинско\русская

или

Option "XkbLayout" "ua (winkeys)" # англо\украинская

Одной из первых линукс-сборок с украинской раскладкой был BlackCat. Но, к сожалению, в нем файл ru_UA содержал ошибку, а именно: блок winkeys начинался так:

include "uk (basic)"

в то время как должен был так:

include "ru_UA (basic)"

Поэтому, чтобы пользоваться украинскими буквами, приходилось вручную редактировать этот файл. Данный недостаток успешно кочевал в другие линукс-пакеты, пока, наконец, ASP Linux 7.3 не расставила все точки над "i". Кроме того, в этой версии знак украинского апострофа наконец-то был прикреплен там, где ему и место - слева от "1". Очень рекомендую использовать xkb именно из этого продукта.

Итак, украинская раскладка установлена. Как будем переключаться? Для этого существует правило XkbOptions. В нашем случае для изменения раскладки оно определяет комбинацию клавиш <Ctrl> + <Shift>. Если же хочется использовать <Alt> + <Shift>, нужно записать:


grp:alt_shift_toggle,grp_led:scroll



Кроме того, grp_led:scroll означает, что о состоянии текущей раскладки будет информировать индикатор клавиатуры Scroll Lock. Дополнительную информацию о настройке раскладки клавиатуры под xkb можно получить, например, из Ивана Паскаля.

Теперь перейдем к настройке мыши. Иногда это приходится делать после изменения конфигурации системы - например, если "последовательную" мышь заменили на PS/2 или приобрели манипулятор с колесиком. Раздел с соответствующими параметрами выглядит так:

Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Device" "/dev/mouse" Option "Protocol" "PS/2" Option "Emulate3Buttons" "on" Option "ZAxisMapping" "4 5" EndSection

Строка

Option "Device" "/dev/mouse"

прямо или косвенно указывает на порт, к которому подключена мышь. В нашем случае этим портом является символическая ссылка /dev/mouse. При необходимости можно создать ее самому, указав правильное устройство. Например, команда

ln -s /dev/ttyS0 /dev/mouse

создает ссылку на порт com 1, а команда

ln -s /dev/psaux /dev/mouse

- на порт PS/2. Тег

Option "Protocol" "PS/2"

определяет протокол работы с манипулятором. Если используется последовательная мышь, то в качестве протокола используется Microsoft, а если мышь с колесиком - то IntelliMouse для COM-порта и IMPS/2 для порта PS/2.

Emulate3Buttons определяет, будет ли одновременное нажатие правой и левой кнопки мыши интерпретироваться как клик средней (третьей) кнопки, даже если ее физически нет. ZaxisMapping "4 5" означает, что прокручивание колесика вперед будет интерпретироваться X-сервером как нажатие кнопки <4>, а назад - как кнопки <5>. Остальное возлагается на приложения. Обычно программы используют эти кнопки для прокрутки содержимого окон.


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