Как настроить кнопки мыши в Linux
Введение
Многие производители периферии не уделяют внимания поддержке Linux. Тем не менее X11 и утилиты вокруг него позволяют гибко переназначать кнопки мыши. В этой статье объяснено, как: определить номера физических кнопок, исправить настройки прокрутки (ZAxisMapping), назначить функции кнопкам (xmodmap), сохранить и откатить изменения. Подойдёт для большинства проводных и USB-мышей, включая модели с боковыми кнопками.
Важно: инструкция ориентирована на систему с X11 (старый X-сервер). Если вы используете Wayland, часть шагов не применима. Определение: X11 — классический графический сервер в Linux; Wayland — современная альтернатива.
Что потребуется
- Права root для правки /etc/X11/xorg.conf
- Установленные пакеты xbindkeys и xautomation
- Терминал с доступом к X-серверу
Установка пакетов (пример для Debian/Ubuntu):
sudo apt update
sudo apt install xbindkeys xautomationШаг 1. Определяем номера кнопок — xev
Откройте терминал и запустите:
xevИнструмент создаст небольшое окно и выведет в терминал много строк информации о событиях ввода. Подведите курсор к окну и нажимайте разные кнопки мыши. В выводе ищите строки с ButtonPress / ButtonRelease — там будет число кнопки.
Если вывод слишком объёмный, фильтруйте:
xev | grep buttonПример — снимок экрана с выводом xev:

ALT текста: окно xev и пример событий ButtonPress/Release в терминале
Совет: сначала определите обычные кнопки (левая, правая, средняя), затем колёсико (скролл вверх/вниз и, при наличии, влево/вправо) и боковые кнопки.

ALT текста: использование команды xev с фильтрацией через grep для показа только событий кнопок
Шаг 2. ZAxisMapping и протокол в /etc/X11/xorg.conf
Файл конфигурации X серверa: /etc/X11/xorg.conf
Если у вас нет этого файла, создайте его по необходимости. Последовательность действий:
- Переключитесь в консоль: одновременно нажмите Alt+Ctrl+F1
- Остановите дисплейный менеджер (пример для lightdm):
sudo service lightdm stop- Сгенерируйте конфигурацию X:
sudo X -configure- Вернитесь к графике:
sudo start lightdm- Переименуйте сгенерированный файл конфигурации в xorg.conf и переместите в /etc/X11
После этого откройте файл в редакторе от root и найдите секцию, относящуюся к устройству мыши. Примерная часть файла может выглядеть примерно так (строки примерно 29—34 в примере):

ALT текста: фрагмент xorg.conf с секцией для устройства Pointer и параметрами Protocol и ZAxisMapping
Ключевые параметры:
- Protocol — протокол общения устройства с системой (PS/2, USB, Logitech, MouseSystems и т. п.). Обычно менять не нужно, если все кнопки обнаруживаются.
- ZAxisMapping — определяет номера, соответствующие действию колёсика и дополнительным осевым функциям (вперёд/назад).
Если ваша прокрутка не работает, прокрутите колесом, смотря вывод xev. Подставьте полученные номера в ZAxisMapping и перезапустите X. После правки сохраняйте резервную копию оригинального xorg.conf.
Шаг 3. Быстрое переназначение кнопок — xmodmap
Утилита xmodmap позволяет динамически переназначать кнопки мыши. Формат команды:
xmodmap -e "pointer = 1 4 3 7 9 5 8 2"Значение каждого места в списке занимает конкретная виртуальная функция:
- Левая кнопка
- Средняя кнопка (колёсико нажатие)
- Правая кнопка
- Скролл вверх
- Скролл вниз 6+. Дополнительные оси/кнопки (зависит от вашей мыши)
Пример: если xev показал, что физическая кнопка, которая должна быть средней, имеет номер 8, то команда должна содержать 8 на второй позиции:
xmodmap -e "pointer = 1 8 3 4 5 6 7 2"Проверить текущее распределение можно командами:
xmodmap -ppили
xinput list
xinput --list-props Совет: для левшей поменяйте 1 и 3 местами.
Сохранение настроек между сессиями
Переназначения xmodmap действуют до перезапуска X. Чтобы сохранить их, используйте один из подходов:
- Добавьте команду xmodmap в ваш ~/.xsessionrc или ~/.xinitrc (в зависимости от окружения).
- Создайте systemd user unit, который выполняется после старта графики.
- Используйте xbindkeys вместе с конфигурацией, чтобы запускать макросы и сочетания клавиш.
Пример: добавить в ~/.xsessionrc
# ~/.xsessionrc
xmodmap -e "pointer = 1 4 3 7 9 5 8 2"Или сделать скрипт в ~/.config/autostart (Desktop Entry) с вызовом xmodmap.
Альтернативы и расширенные инструменты
- imwheel — перенастройка поведения колёсика и ускорение прокрутки.
- libratbag + ratbagd + piper — современная стек для продвинутых игровых и многофункциональных мышей (поддержка некоторых Logitech, SteelSeries и др.).
- xinput — низкоуровневое управление устройствами ввода и их свойствами.
Когда xmodmap не помогает, стоит попробовать редактировать evdev/udev правила или использовать ratbagd, если ваша модель поддерживается.
Типичные проблемы и решения
- Ничего не показывает xev: вы используете Wayland. В Wayland xev не работает; применяйте средства окружения рабочего стола (KDE, GNOME) или libinput tools.
- Номера кнопок не соответствуют ожиданию: возможно, устройство посылает клавиатурные события. Некоторые «Wi‑Fi» и «Windows 8/10» мыши отправляют клавиатурные ходы — их сложнее переназначить.
- После изменения xorg.conf X не стартует: откатите резервную копию xorg.conf и перезапустите дисплейный менеджер.
Важно: всегда сохраняйте резервную копию оригинального /etc/X11/xorg.conf перед правками.
Быстрый план действий — чеклист
- Установить xbindkeys и xautomation
- Запустить xev и определить номера кнопок
- При необходимости сгенерировать /etc/X11/xorg.conf
- Проверить и править ZAxisMapping
- Выполнить xmodmap с нужными номерами
- Добавить команду в автозагрузку для сохранения изменений
- Создать резервную копию оригинального xorg.conf
Пошаговый плейбук (SOP)
- Выполнить backup:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak- Использовать xev для каждого интересующего события (левая, правая, средняя, колёсико, боковые).
- При проблемах с колёсиком — поправить ZAxisMapping в /etc/X11/xorg.conf.
- Протестировать быстрым xmodmap:
xmodmap -e "pointer = <список номеров>"- Если работает — добавить команду в ~/.xsessionrc или в автозапуск DE.
- Если не работает — проверить xinput и /var/log/Xorg.0.log для ошибок.
Критерии приёмки
- Каждая физическая кнопка генерирует событие в xev.
- После применения xmodmap кнопки выполняют ожидаемые функции.
- После перезапуска сессии автозагрузка применяет сохранённые правила.
- При необходимости откат к резервной копии восстанавливает рабочую конфигурацию.
Тестовые сценарии
- Нажать каждую кнопку и убедиться, что xev показывает ожидаемый номер.
- Применить xmodmap и проверить: левая — выделение, правая — контекстное меню, средняя — встраивание/вставка.
- Прокрутить колесо вверх/вниз и проверить, что ZAxisMapping соответствует.
- Перезагрузиться и проверить автозагрузку переназначений.
Когда этот метод не сработает
- Вы используете Wayland вместо X11.
- Мышь эмулирует клавиатуру или отправляет сложные HID‑события вне возможностей xmodmap.
- Ваше окружение перезаписывает настройки (например, GNOME Settings может менять свойства устройства).
В этих случаях попробуйте использовать ratbagd/piper, udev‑правила или специальные драйверы производителя (если есть Linux‑поддержка).
Полезные команды для диагностики
xev | grep button
xinput list
xinput --list-props
xmodmap -pp
xmodmap -e "pointer = 1 4 3 7 9 5 8 2" Мини-инструментарий по восстановлению
Если после правок X не запускается:
- Переключитесь на консоль Alt+Ctrl+F1
- Восстановите резервную копию:
sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf- Перезапустите дисплейный менеджер:
sudo service lightdm startМентальная модель
Думайте о кнопках как о наборах: физическая кнопка имеет номер, X сопоставляет номер виртуальной функции, xmodmap переназначает номера на функции. ZAxisMapping отвечает за осевые события прокрутки.
Краткая таблица совместимости и советы
- X11: подробно подходит для xev, xmodmap и правки xorg.conf.
- Wayland: используйте средства DE или libratbag/ratbagd где доступно.
- Игровые мыши: попробуйте ratbagd/piper для управления DPI, профилями и кнопками.
Резюме
Переназначение кнопок мыши в Linux на X11 — вполне выполнимая задача. Основные шаги: определить номера через xev, при необходимости отредактировать ZAxisMapping в /etc/X11/xorg.conf и применить переназначение с помощью xmodmap. Для постоянных настроек используйте автозагрузку или современные инструменты вроде ratbagd. Всегда делайте резервную копию конфигураций и тестируйте шаги по одному.
Ключевые рекомендации:
- Всегда делайте резервные копии.
- Проверяйте вывод xev для каждой кнопки.
- Используйте xmodmap для быстрой проверки, а затем автоматизируйте запуск команд.
Спасибо за внимание. Если нужно, могу подготовить готовые примеры конфигураций для конкретных моделей мышей или помочь с автозапуском в вашем окружении.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента