Сегодня настраивал небольшой графический планшет под себя (Wacom Intuos BT S). Захотелось сделать так, чтобы на его 4 кнопки были не действия "левый клик мыши", "средний клик мыши", "правый клик мыши", "WWW Back", как сделано по умолчанию, а "Ctrl+Z" для отмены последнего действия и еще какие-нибудь плюшки.
Утилита из пакетов для wacom,
xsetwacom
, такие возможности поддерживает (ну почти).
Что не так: она умеет это делать только для подключенных в данный момент устройств, а так же почему-то не видела четвертую кнопку планшета. В итоге получается, что как-то не хочется писать правило, которое будет ловить подключение планшета к компьютеру чтобы запустить в этот момент эти команды.
Есть стандартный способ настройки средств ввода/вывода через конфигурационные файлы X Server. Но я долго не мог понять, почему он не работает - думал, что правила не мэтчатся с моим устройством. В итоге оказалось, что в настройках X Server для кнопок планшета можно прописать только номер кнопки мыши, а "Actions" - нажатия, например, кнопок клавиатуры - нельзя. Поэтому пришлось назначать данным кнопкам номера кнопок мыши 11, 12, 13 и 14.
Потом нужно было сделать так, чтобы по нажатию этих кнопок что-то происходило. Сейчас это сделано с помощью xbindkeys и xautomation - xte.
На самом я вот сейчас пишу и понимаю что xbindkeys лишний, потому что это все спокойно вносится в config Awesome WM, так что я потом это переделаю.
Таким образом у меня сейчас в .xbindkeysrc entry типа таких:
"xte 'keydown Control_L' 'key z' 'keyup Control_L'"
b:11
Работает 😌