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
- Host: GitHub
- URL: https://github.com/MuratovAS/wayland-keymapper-mouse
- Owner: MuratovAS
- License: mit
- Created: 2021-07-24T14:38:47.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-09-25T08:39:44.000Z (over 3 years ago)
- Last Synced: 2024-10-24T08:29:57.037Z (7 months ago)
- Topics: keymapper, libinput, logitech, logitech-devices, logitech-mouse, mapper, master-mx, mouse, sway, wayland
- Language: Shell
- Homepage:
- Size: 7.81 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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
~~~