Форум сообщества Runtu.org
Май 24, 2012, 12:24:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы хотите помочь проекту материально?

Вам сюда
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как задействовать доп. кнопки многокнопочных мышей  (Прочитано 1655 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
ludoed
Местный
*****

Репутация: 20
Offline Offline

Сообщений: 583


« : Ноябрь 14, 2010, 23:05:18 »

По материалам журнала OpenSource c моими собственными модификациями:

Итак, предположим, есть многокнопочная мышь (тестил на Microsoft Intellimouse Optical, в журнале описывалась мышь A4Tech с 2мя колесами прокрутки)
Задача - задействовать доп кнопки, привязывая к ним произвольные действия
В винде к Microsoft Intellimouse Optical идет специальная утилита Intellipoint, позволяющая в разных приложениях привязать к кнопкам мыши разные действия. Мне очень понравилось вешать на мышь кнопки управления буфером обмена. Про вставку нажатием на колесо я знаю Улыбающийся Хотелось повесить на доп кнопки копирование в буфер и удаление в буфер
1. Надо задействовать доп кнопки в Xserver. Для этого правим xorg.conf к виду:
Код:
Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
#    Option         "Protocol" "auto"
    Option         "Protocol" "ExplorerPS/2"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "Buttons" "7"
    Option         "ButtonMapping" "1 2 3 6 7"
    Option         "ZAxisMapping" "4 5"
EndSection
Это для мыши с одним колесом
с 2мя колесами будет
Код:
    Option         "ButtonMapping" "1 2 3 8 9"
    Option         "ZAxisMapping" "4 5 6 7"
2. Перезапускаем X (я просто перезагрузился)
3. в терминале запускаем
Код:
xev
нажимаем доп кнопки мыши и смотрим на реакцию xev
Как ни странно, вместо ожидаемых button 6 и button 7 я увидел button 8 и button 9
Ну и фиг с ним, лишь бы работало
Теперь надо научиться привязывать на доп кнопки нажатия произвольных клавиш
Я использовал пакеты xbindkeys и xdotool. В журнале рекомендовалось xvkbd, но я так и не смог заставить ее работать, а с xdotool все получилось
4. Итак, ставим указанные пакеты. В /usr/share/doc/xbindkeys/examples берем копию xbindkeysrc и копируем в домашний каталог под именем .xbindkeysrc
5. В хвост этого файла дописываем
Код:
"xdotool key Control+Insert"
b:8

"xdotool key Control+X"
b:9
То есть, привязываем управление буфером обмена к button 8 и button 9
Почему Control+Insert, а не Control+С? - А чтобы и в терминале работало
6. Запускаем в терминале
Код:
xbindkeys
и проверяем как оно работает
Если работает правильно - идем в Гноме в Система->Параметры->Запускаемые приложения и добавляем xbindkeys в автозагрузку

С помощью xbindkeys и xdotool можно делать еще более интересные вещи, в частности, менять размеры и расположение окон и эмулировать нажатия клавиш и кнопок мыши. man достаточно понятный
Записан

все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях Подмигивающий
http://bash.org.ru/quote/000001
3 года на Пингвине, полет нормальный, обратно на винду не тянет Улыбающийся
apelsecs
Прохожий
*

Репутация: 0
Offline Offline

Сообщений: 5


« Ответ #1 : Май 07, 2011, 17:42:33 »

вопрос такой:
а если мне надо сделать сочетания ctrl+Ins / shift+Ins  как copy / paste ?

я сделал так:
Код:
"xdotool key ctrl+v"
Shift + KP_Insert

"xdotool key ctrl+c"
Control + KP_Insert
и оно не работает. копирование не копирует, а вставление почему-то переключает раскладку клавы...

любопытно, что по отдельности всё работает, то есть если вместо xdotool попытаться запустить, скажем терминал - он запускается, а если наоборот, вместо Shift + KP_Insert написать, скажем b:2, то по щелчку мыши вставляется текст...

пробовал вместо xdotool использовать xte из пакета xautomation:
Код:
"xte 'keydown Control_L' 'key c' 'keyup Control_L'"
и те же грабли...
Записан
ludoed
Местный
*****

Репутация: 20
Offline Offline

Сообщений: 583


« Ответ #2 : Май 07, 2011, 20:30:51 »

На стандартной десктопной клаве есть клавиша Ins на цифровой клавиатуре, и клавиша Insert рядом с Home над стрелками курсора. (На ноутах обычно одна)
Ctrl + Ins и Shift + Ins не работают с буфером, работают Ctrl + Insert и Shift + Insert - сейчас проверял
Попробуйте их задействовать
Записан

все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях Подмигивающий
http://bash.org.ru/quote/000001
3 года на Пингвине, полет нормальный, обратно на винду не тянет Улыбающийся
apelsecs
Прохожий
*

Репутация: 0
Offline Offline

Сообщений: 5


« Ответ #3 : Май 07, 2011, 20:46:36 »

не могли бы вы привести кусок настроек, которые вы проверяли?

я вот щас проверил вот так с тем инсёртом, что у кнопки home...
Цитировать
"xdotool key Control+v"
Shift + Insert

"xdotool key Control+c"
b:2
кнопки пробиваю не по xev, как у вас, а через
Код:
xbindkeys -mk

по колёсику текст попадает в буфер, а вот контрол+инсёрт у кнопки home ведёт себя так же, как описал выше для нумпадовского инсёрта...
« Последнее редактирование: Май 07, 2011, 20:48:40 от apelsecs » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.086 секунд. Запросов: 18.