Читаем Внутреннее устройство Linux полностью

Одной из потенциально вводящих в тупик характеристик X-системы является то, что зачастую есть несколько способов настройки предпочтений, и некоторые из них могут не работать. Например, одним из распространенных клавиатурных предпочтений в Linux является переназначение клавиши Caps Lock на клавишу Control. Это можно выполнить несколькими способами, начиная с небольших регулировок с помощью старой команды xmodmap и заканчивая созданием совершенно новой раскладки клавиатуры с помощью утилиты setxkbmap. Как понять, какой из них следует (и следует ли) применить? Все упирается в знание того, какие части системы отвечают за это, но выяснить бывает сложно. Помните о том, что окружение рабочего стола может обладать собственными настройками и переопределениями.

С учетом сказанного опишу некоторые моменты, относящиеся к основной инфраструктуре.

Устройства ввода (в целом)

X-сервер использует расширение X Input Extension, чтобы управлять вводом от различных устройств. Есть два основных типа устройств ввода — клавиатура и указатель (мышь), — и можно подключить столько устройств, сколько пожелаете. Чтобы одновременно использовать несколько устройств одного типа, расширение X Input Extension создает «виртуальное устройство ядра», которое направляет ввод от устройства на X-сервер. Устройство ядра называется ведущим; а физические устройства, подключаемые к компьютеру, — подчиненными.

Чтобы увидеть конфигурацию устройств на вашем компьютере, попробуйте запустить команду xinput — list:

$ xinput — list

Virtual core pointer id=2 [master pointer (3)]

Virtual core XTEST pointer id=4 [slave pointer (2)]

Logitech Unifying Device id=8 [slave pointer (2)]

Virtual core keyboard id=3 [master keyboard (2)

Virtual core XTEST keyboard id=5 [slave keyboard (3)]

Power Button id=6 [slave keyboard (3)]

Power Button id=7 [slave keyboard (3)]

Cypress USB Keyboard id=9 [slave keyboard (3)]

У каждого устройства есть связанный с ним идентификатор, который можно использовать в команде xinput и в других командах. В данном выводе идентификаторы 2 и 3 соответствуют устройствам ядра, а идентификаторы 8 и 9 — реальным устройствам. Обратите внимание на то, что кнопки включения компьютера также рассматриваются как устройства ввода.

Большинство X-клиентов выполняют прослушивание ввода от устройств ядра, поскольку им нет повода беспокоиться о том, какое именно устройство вызвало событие ввода. В действительности большинство клиентов ничего не знает о расширении X Input Extension. Тем не менее клиент может использовать это расширение, чтобы избрать какое-либо конкретное устройство.

Каждое устройство обладает набором связанных с ним свойств. Чтобы просмотреть эти свойства, используйте команду xinput с номером устройства, как в этом примере:

$ xinput — list-props 8

Device 'Logitech Unifying Device. Wireless PID:4026':

Device Enabled (126): 1

Coordinate Transformation Matrix (128): 1.000000, 0.000000, 0.000000,

0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

Device Accel Profile (256): 0

Device Accel Constant Deceleration (257): 1.000000

Device Accel Adaptive Deceleration (258): 1.000000

Device Accel Velocity Scaling (259): 10.000000

— snip

Как видите, есть несколько весьма интересных свойств, которые можно изменить с помощью параметра — set-prop. Дополнительную информацию можно получить на странице руководства xinput(1).

Мышь

Можно управлять параметрами, относящимися к устройству, с помощью команды xinput, наиболее полезные из них относятся к мыши (указателю). Можно изменить многие параметры непосредственно как свойства, но обычно проще выполнить это с помощью специальных параметров — set-ptr-feedback и — set-button-map команды xinput. Например, если к устройству dev подключена мышь с тремя кнопками и вы желаете поменять на ней порядок следования кнопок (для удобства работы левши), попробуйте такую команду:

$ xinput — set-button-map dev 3 2 1

Клавиатура

Множество различных вариантов раскладки клавиатуры, доступных в разных странах, представляет особые сложности для интеграции в любую оконную систему. В системе X всегда присутствовала возможность настройки клавиатуры с помощью протокола ядра, которым можно управлять, используя команду xmodmap, однако в любой достаточно современной системе применяется расширение XKB (X-клавиатура), позволяющее добиться более точной настройки.

Расширение XKB является настолько сложным, что многие пользователи до сих пор применяют команду xmodmap, когда им необходимо быстро внести изменения.

Основная идея, заложенная в расширение XKB, такова: можно определить раскладку клавиатуры и скомпилировать ее с помощью команды xkbcomp, а затем загрузить и активизировать эту раскладку на X-сервере с помощью команды setxkbmap. У этой системы есть две чрезвычайно интересные особенности.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных