An open API service indexing awesome lists of open source software.

https://github.com/MuratovAS/wayland-keymapper-mouse

Script for reassignment Logitech mouse keys in Wayland and Sway
https://github.com/MuratovAS/wayland-keymapper-mouse

keymapper libinput logitech logitech-devices logitech-mouse mapper master-mx mouse sway wayland

Last synced: 3 months ago
JSON representation

Script for reassignment Logitech mouse keys in Wayland and Sway

Awesome Lists containing this project

README

        

# wayland-keymapper-mouse

Небольшой скрипт для переназначения клавиш мыши на пользовательские действия. Скрипт разработан для личного пользования. Для функционирования требует `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** пользователя.

~~~bash
sudo micro /etc/logitech-master/config
~~~

Пример конфигурационного файла:

~~~bash
#!/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`.

~~~bash
sudo pacman -S libinput
yay -S ydotool
~~~

Затем произвести установку с правами root

~~~bash
chmod 744 ./install.sh
chmod 744 ./uninstall.sh
sudo ./install.sh
~~~