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

Обратите внимание на координаты в скобках. Первая пара представляет координаты x и y для указателя мыши внутри окна, а вторая (root:) определяет положение указателя на всем дисплее.

В число других низкоуровневых событий входят нажатия на клавиши и кнопки мыши, а более сложные учитывают, был ли перемещен указатель в окно или из окна или получило ли окно фокус из менеджера окон. Вот, например, соответ­ствующие события выхода за пределы окна и утраты фокуса:

LeaveNotify event, serial 36, synthetic NO, window 0x6800001,

    root 0xbb, subw 0x0, time 44348653, (55,185), root:(1679,420),

    mode NotifyNormal, detail NotifyNonlinear, same_screen YES,

    focus YES, state 0

FocusOut event, serial 36, synthetic NO, window 0x6800001,

    mode NotifyNormal, detail NotifyNonlinear

Одним распространенным способом применения команды xev является извлечение кодов клавиш и символов для различных клавиатур, когда выполняется настройка раскладки клавиатуры. Вот результат нажатия клавиши L; код клавиши при этом равен 46:

KeyPress event, serial 32, synthetic NO, window 0x4c00001,

    root 0xbb, subw 0x0, time 2084270084, (131,120), root:(197,172),

    state 0x0, keycode 46 (keysym 0x6c, l), same_screen YES,

    XLookupString gives 1 bytes: (6c) "l"

    XmbLookupString gives 1 bytes: (6c) "l"

    XFilterEvent returns: False

Можно также прикрепить команду xev к существующему идентификатору окна с помощью параметра -id id (используйте для параметра id тот идентификатор, который получен с помощью команды xwininfo) или отслеживать корневое окно с помощью параметра -root.

14.3.2. Понятие о X-вводе и настройка предпочтений

Одной из потенциально вводящих в тупик характеристик 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

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

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT