(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Работа с многокнопочными мышами в Xorg

Источник: nixp

    Два колеса и пять педалей: катаемся на нестандартных мышках
   
   
    Неуклюжая получилась бы конструкция, если бы речь шла о велосипеде. В мышках же повышение количества кнопок призвано увеличить удобство использования. Но если дополнительные кнопки не работают и висят балластом, то ни о каком удобстве не может быть и речи. Производители таких мышек комплектуют их программным обеспечением (не для нашей любимой ОС, конечно), позволяющим глобально привязать какое-то одно действие для каждой из дополнительных кнопок. Однако хотелось бы иметь возможность настраивать их поведение в каждом приложении индивидуально, при возможности - штатными средствами. В данной статье вы узнаете, как это сделать.
   
   
    Поддержка возможных действий мышью в Xorg
   
   
    Прежде всего необходимо убедиться, что X-сервер правильно работает с мышкой. Вопросы использования мышек в консоли оставим эстетам, не разделяющим моего мнения о том, что мышка в консоли - вообще явление необязательное (тем более такая). Рассмотренная конфигурация: Xorg 7.x, A4 tech WOP-49 (5 нажимаемых кнопок, включая одно из колес, 2 колеса прокрутки).
   
    Для этого в соответствующей секции xorg.conf (следует ориентироваться на "InputDevice" с говорящим идентификатором, драйвером или устройством - прим. ред.) внесем изменения:
   

Option	"Protocol" "ExplorerPS/2"
Option	"Buttons" "9"
Option	"ButtonMapping" "1 2 3 8 9"
Option	"ZAxisMapping" "4 5 6 7"

   
    Первой строчкой указывается протокол, второй - количество кнопок мыши (и на каждое колесо прокрутки - по две кнопки - прим ред.), третьей - цифровые обозначения нажимаемых кнопок, четвертой - движений колес. Как видно, боковые кнопки идут после скроллов, то есть в случае с одним колесом это могло бы выглядеть так:
   

Option	"ButtonMapping" "1 2 3 6 7"
Option	"ZAxisMapping" "4 5"

   
    Итак, все манипуляции мышью (кроме перемещения) X-сервер воспринимает как нажатия кнопок. Соответственно, в моем случае 1, 2, 3, 8 и 9 обозначают левую, среднюю, правую и две боковые кнопки, а 4, 5, 6 и 7 - движения колес прокрутки. Для унификации все это я буду в дальнейшем называть нажатиями кнопок.
   
    Запустим X-сервер и убедимся, что все работает правильно. Можно покрутить какой-нибудь документ в книжной ориентации в обоих направлениях. Но окончательный вердикт вынесет утилита xev. При возникновении каких-либо событий она отправляет их описание в консоль. И если на нажатия боковых кнопок в ее выводе присутствует button 8 и button 9 (6 и 7 для одноколесной мыши) - значит, все нормально и кнопки видны X-серверу.
   
   
    Привязка нажатий кнопок мыши к действиям
   
   
    Следующая задача - получить возможность назначать произвольное действие боковым (в принципе, любым) кнопкам, по возможности - штатными средствами самих приложений. Очень напоминает горячие клавиши, не так ли? Основная идея в этом и состоит: эмулировать нажатие комбинации клавиш при нажатии кнопки мыши. В дальнейшем мы можем назначить ей в каждом приложении свое действие.
   
    Для этого нам понадобятся xbindkeys и xvkbd из одноименных пакетов. Вся магия будет совершаться при помощи следующих строк в ~/.xbindkeysrc:
   

"xvkbd -xsendevent -text "\[Control_L]\[KP_Divide]""
	b:8
"xvkbd -xsendevent -text "\[Control_L]\[KP_Multiply]""
	b:9

   
    Таким образом, боковые кнопки будут эмулировать нажатие на клавиатуре сочетаний <Ctrl>+<*> и <Ctrl>+</>. Эти комбинации выбраны потому, что одной рукой их выполнять неудобно, а значит, вряд ли они будут использоваться.
   
    Комбинацию можете подобрать и сами, воспользовавшись значением keysym для клавиши, определить которое можно при помощи все той же xev. Запись кода в качестве параметра xvkbd должна выглядеть как \[keysym].
   
    Вот так, слегка пошуршав двумя конфигурационными файлами, мы добились желаемого. Как всегда, отзывы, комментарии и интересные идеи в этой области я буду рад видеть в своем почтовом ящике.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 18.09.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Bamboo
Business Studio 4.2 Professional. Персональная лицензия. Лицензия на 1 месяц.
Business Studio 4.2 Enterprise. Конкурентная лицензия + Business Studio Portal 4.2. Пользовательская именная лицензия.
Allround Automation Direct Oracle Access Standard license
ARCHICAD 21, локальная лицензия на 12 месяцев
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Программирование в AutoCAD
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Реестр Windows. Секреты работы на компьютере
Один день системного администратора
Компьютерная библиотека: книги, статьи, полезные ссылки
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100