Небольшой скрипт для переназначения клавиш мыши на пользовательские действия. Скрипт разработан для личного пользования. Для функционирования требует libinput
и ydotool
. Предпосылкой к данному решению послужили проблемы с key-mapper-git
, сбои при загрузки системы, отвал usb устройств.
Тестирование проводилось на:
- OS: Manjaro Linux
- WM: Sway
- Mouse: Logitech MX Master 3 (2S)
Принцип работы приделано прост.
- В момент запуска происходит сканирование подключенных устройств по средствам
libinput list-devices
- Затем происходит поиск устройства с именем
Logitech MX Master 3
- Создание потока
libinput debug-events --device
для каждого устройства, удовлетворяющего требованиям предыдущего пункта. - Парсинг лога событий устройства
- Выполнения действие в соответствие с событием
Из преимуществ подхода можно выделить, отсутствие мьютекса на все устройства, что позволяет использовать такие модули как sway-xkb-switcher.
Из недостатков стоит отметить, после переподключения устройства необходима перезагрузка системы или systemd. Но, в случае необходимости, это можно исправить.
После установки в systemd
создается сервис, запускается автоматически при старте системы. Настройка действий осуществляется по средствам конфигурационного файла. Обратите внимание, действия выполняются от root пользователя.
sudo micro /etc/logitech-master/config
Пример конфигурационного файла:
#!/bin/bash
EVENT_SIDE1="ydotool key ctrl+alt+shift+s"
EVENT_SIDE2="ydotool key ctrl+alt+shift+a"
EVENT_SCROLL_UP="ydotool key ctrl+alt+shift+w"
EVENT_SCROLL_DOWN="ydotool key ctrl+alt+shift+q"
EVENT_THUMB="ydotool key ctrl+alt+shift+z"
Необходимо установитьlibinput
и ydotoold
.
sudo pacman -S libinput
yay -S ydotool
Затем произвести установку с правами root
chmod 744 ./install.sh
chmod 744 ./uninstall.sh
sudo ./install.sh