Пришла мне в голову гениальная мысль «забиндить» операции копировать-вставить на две дополнительные кнопки у моей ZET GAMING Prime и казалось бы, что могло пойти не так? Конечно же оказалось в X11 этот вопрос решается элементарно, а вот в Wayland … «Хьюстон у нас проблемы».
Сразу оговоримся, что все операции будут проводиться применительно к Kubuntu Linux и конкретно к мышке на картинке выше, но в реальности все применимо к любому дистрибутиву где графика на «вяленом».
Если следовать логике нормальных людей, то нам достаточно перейти «Система» -> «Параметры системы» -> «Мышь» -> «Настроить дополнительные кнопки».
Увы, это все конечно работает, но работает только в режиме X11, а вот в режиме Wayland (не потому что Wayland это стильно и молодежно) так уже не работает. Этот казус по старой Linux традиции привело меня к поиску альтернатив и как оказалось не напрасно.
Утилита Input Remaper (работает как для Wayland так и для X11)
Официальный сайт на GitHub находится по адресу https://github.com/sezanzeb/input-remapper. Сразу скажу, что функционал утилиты выходит далеко за рамки моей задачи «повесить» копипасту на дополнительные кнопки мыши.
Input Remapper — это мощный инструмент для Linux, позволяющий переназначать поведение любых устройств ввода (клавиатур, мышей, джойстиков, педалей и т.д.). С его помощью можно создавать сложные макросы, комбинации клавиш, эмулировать движения мыши и многое другое. Сейчас я подробно расскажу, как установить и настроить утилиту, а также приведу конкретный пример назначения функций копировать (Ctrl+Insert) и вставить (Shift+Insert) на дополнительные кнопки компьютерной мыши. Естественно, вашем случае комбинации клавиш для копировать-вставить могут отличаться.
Установка Input Remaper
Самый простой способ — установить пакет из репозитория вашего дистрибутива (если он есть). Для Ubuntu/Debian он есть и установка производится одной командой.
# apt install input-remapper
Или из графического интерфейса Discover.
Запуск графического интерфейса
Запустите программу из меню приложений (обычно называется Input Remapper) или из терминала.
При первом запуске потребуется ввести пароль sudo, потому что утилите нужны права на чтение событий из /dev/input/.
Интерфейс состоит из трёх основных страниц:
Devices
— выбор устройства (ваша мышь).Presets
— создание и управление наборами правил (пресетами).Mapping
— добавление и редактирование конкретных правил.
Определение кнопок мыши
Дополнительные кнопки мыши (например, боковые кнопки «вперёд»/«назад») в системе могут иметь следующие имена:
BTN_SIDE (часто боковая кнопка, ближняя к большому пальцу),
BTN_EXTRA,
BTN_FORWARD, BTN_BACK,
BTN_0, BTN_1 и т.д.
Чтобы точно узнать, какой код соответствует вашей кнопке:
В интерфейсе Input Remapper выберите вашу мышь на странице Devices
.Перейдите на страницу Mapping
.Нажмите кнопку Record
и нажмите нужную кнопку мыши. В поле Input появится её имя (например, BTN_SIDE).
Создание пресета для мыши
На странице Devices
выберите вашу мышь.Перейдите на страницу Presets
.Нажмите «+»
(Create new preset), введите имя, например Mouse Copy/Paste.Новый пресет появится в списке. Выберите его, чтобы начать редактирование.
Добавление правила для копирования (Ctrl+Insert)
Предположим, вы хотите назначить боковую кнопку BTN_SIDE на комбинацию Ctrl+Insert.
На странице Mapping
нажмите «+» (Add mapping).В поле Input
нажмите Record и нажмите боковую кнопку мыши (появится, например, BTN_SIDE).В поле Output
введите: Control_L + Insert (Это означает: зажать левый Ctrl и нажать Insert).Нажмите Enter (поле превратится в многострочный редактор, но можно оставить как есть).
Измените имя правила (опционально), например «Copy».
Добавление правила для вставки (Shift+Insert)
Аналогично создайте второе правило, например для кнопки BTN_EXTRA (или другой свободной кнопки).
Теперь у вас должно быть два правила в пресете.
Применение пресета
Убедитесь, что пресет выбран в списке на странице Presets
.Нажмите кнопку Apply
(в верхней части окна). Это активирует все правила пресета для выбранного устройства.Теперь нажмите боковые кнопки мыши — должны выполняться действия копирования и вставки в активном окне.
Важно: Если вы хотите изменить уже записанный ввод, сначала нажмите кнопку Stop, иначе программа не сможет считать исходные события мыши.
Дополнительные настройки и советы
Чтобы пресет автоматически применялся при подключении мыши, на странице Presets включите переключатель Autoload рядом с именем пресета.
Если что-то не работает, запустите графический интерфейс с выводом отладочной информации. Логи помогут понять, какие события генерируются и как они обрабатываются.
Отключение кнопки
Если вы хотите полностью отключить какую-либо кнопку (чтобы она ничего не делала), в поле Output введите disable.
Использование нескольких модификаторов
Можно создавать сложные комбинации, например Control_L + Shift_L + v (вставить без форматирования).
Просто перечислите их через «+».
Пример готового пресета (конфигурационный файл)
Если вы предпочитаете редактировать конфигурацию вручную, пресет сохраняется в файле ~/.config/input-remapper-2/presets/<имя_устройства>/<имя_пресета>.json.
Пример содержимого для нашего пресета (имена кнопок могут отличаться).
[ { "input_combination": [ {"type": 1, "code": 275} ], "target_uinput": "keyboard", "output_symbol": "Control_L + c" }, { "input_combination": [ {"type": 1, "code": 276} ], "target_uinput": "keyboard", "output_symbol": "Control_L + v" } ]
Input Remapper предоставляет гибкий и удобный способ кастомизации устройств ввода в Linux. С его помощью вы можете не только назначать кнопкам мыши действия копирования/вставки, но и создавать сложные макросы, комбинации клавиш, эмулировать движения мыши и многое другое.