Git Product home page Git Product logo

wayland-keymapper-mouse's Introduction

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 пользователя.

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

wayland-keymapper-mouse's People

Contributors

muratovas avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.