Як настроювати додаткові кнопки мишки в Linux

Автор - дуже складно і докорінно невірний підхід.

1) Вже запропонували xbindkeys - це перший варіант якщо кнопки мають номери. А зазвичай так і є, навіть у нахилу коліщатка є свій номер кнопки.

2) Налаштування компіза. Compiz чудово розуміє натискання будь-яких кнопок миші і на них можна все що завгодно повісити. Compiz Config Settings Manager – команди – комбінації клавіш – прокручуємо вниз, далі я сподіваюся можна розібратися. Комбінації можна городити навіть разом із керуючими клавішами клавіатури.

Мінус цього способу очевидний – не всі використовують Compiz.

3) Є третій варіант, який я вважаю найправильнішим і надійнішим, незважаючи на те, що щось неправильне в ньому все ж таки є.

Мінусами попередніх способів було те, що на кнопки доводилося вішати певні команди, які виконували певні програми. Коли як хотілося, щоб натискання кнопки було нативним, надсилало потрібний код, який би розуміла робоча оболонка і всі програми всередині неї. Припустимо натискання кнопки реагував регулятор гучності системи, а інше натискання мультимедіа-кнопок реагували всі плеєри.

Справа в тому, що відповідність клавіш сканкодам ставить udev, у нього є для цього спеціальний каталог таких відповідностей: /lib/udev/keymaps Але там перераховані далеко не всі моделі пристроїв. Ми можемо виправити це для нашого пристрою:

1) За аналогією з наявними файлами, створюємо новий, наприклад logitech-revolution-mouse

2) Знаходимо скан-коди кнопок за допомогою

sudo evtest /dev/input/eventX

де X - номер того event'а, на якому висить миша. Замість evtest можна спробувати

sudo /lib/udev/keymap -i input/eventX

працює тільки у віртуальному терміналі (ctrl + alt + f1), не вимагає встановлення додатковихдодатків.

3) Заповнюємо файл /lib/udev/keymaps/logitech-revolution-mouse , ось як він виглядає у мене:

Назви клавіш містяться у файлі /usr/include/linux/input.h можна вибирати практично будь-яке (тільки префікс, мабуть, потрібно прибирати).

У тому числі, можна на нахил коліщатка повісити якісь ліві коди, а потім у своєму улюбленому робочому оточенні повісити на цю повноцінну КЛАВІШУ (а не номер кнопки миші!) будь-яку команду.

4) Потрібно створити ще правило udev для миші. udev повинен знати якому пристрою, який файл повинен відповідати. Створюємо файл /etc/udev/rules.d/96-kemap.rules і вписуємо туди щось на зразок:

# The following are external USB keyboards

Подивитися приклади можна у файлі: /lib/udev/rules.d/95-keymap.rules

lsusb вам допоможе для визначення VENDOR_ID і MODEL_ID

Все, після цього достатньо вийняти/вставити пристрій і правило спрацює. Все вищенаписане про udev слушно для клавіатур, причому навіть більшою мірою ніж для мишей.

Здається досить громіздко, але це найкращий спосіб змусити працювати клавіші мишей/клавіатур. Я багато років пробував різні способи, собаку на цьому з'їв і давно зупинився на цьому способі.

Читання та запис у hidraw наскільки я знаю потрібно у виняткових ситуаціях, при налаштуванні клавіатури/миші, отримання інформації з них, малювання на екрані клавіатури, і, як я розумію, у разі клавіатури G15 для її спец. клавіш.