Поддержка > Руководства и инструкции

Как задействовать доп. кнопки многокнопочных мышей

(1/1)

ludoed:
По материалам журнала 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 достаточно понятный

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

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

я вот щас проверил вот так с тем инсёртом, что у кнопки home...

--- Цитировать (выделенное) ---"xdotool key Control+v"
Shift + Insert

"xdotool key Control+c"
b:2

--- Конец цитаты ---
кнопки пробиваю не по xev, как у вас, а через

--- Код: ---xbindkeys -mk
--- Конец кода ---

по колёсику текст попадает в буфер, а вот контрол+инсёрт у кнопки home ведёт себя так же, как описал выше для нумпадовского инсёрта...

Навигация

[0] Главная страница сообщений

Перейти к полной версии