Я долго не знал, как подступиться к настройке дополнительных кнопок мыши в Linux. В отличие от Windows здесь нет, или почти нет, для этого программок с графическим интерфейсом. Меня пугало, что придётся возиться с командной строкой и какими-нибудь мутными конфигами. Теперь, вспоминая эти страхи, как-то даже смешно. На деле всё оказалось слишком просто.

Инструкция годиться для любых современных версий Ubuntu, как впрочем и многих других дистрибутивов Linux. Я пользуюсь сейчас Elementary OS 0.4 Loki, поэтому в статье чуть больше внимания будет именно этой операционной системе.

Моя мышка Logitech VX Revolution из-за которой пришлось заморочиться:

Logitech VX Revolution

Я привык на подобные мышки на боковые кнопки назначать функции копирования и выставки. Вот и с этим грызуном без этого было невыносимо работать. Конечно, функции дополнительным кнопкам можно назначить любые — разные сочетания кнопок клавиатуры, комбинации одновременного нажатия кнопок на клавиатуре и мышке. Думаю, всё аналогично настраивается и для мышек очень многих других моделей и производителей, пробуйте.

Для начала открываем консоль. В основном все действия будут производиться с её помощью.

Устанавливаем необходимый софт:

sudo apt install xbindkeys xautomation x11-utils

Драйвер или что-то ещё дополнительное для вашей мышки искать не надо! Она ведь у вас работает, курсор движется? Значит всё и так уже есть, обычно этого достаточно. Убедиться в работе всех кнопок мышки поможет следующая команда:

xev | grep button

Она откроет над консолью небольшое окошко. Вам нужно будет навести на него курсор мыши и нажимать те её дополнительные кнопки, которые требуется настроить. Так вы узнаете порядковые номера этих кнопок, запишите их, они потребуются чуть позже.

Xev: смотрим коды кнопок мыши

Закройте маленькое окошко, чтобы закончить.

Следующая команда создаёт в домашней папке текущего пользователя файл конфигурации, редактируя его потом мы будем настраивать кнопки. Вы должны выполнять эту команду под тем пользователем, под которым обычно работаете в системе. Если вы её выполните под root, то соответственно файл поместиться в домашнюю папку root, а это часто не то, что надо.

xbindkeys --defaults > $HOME/.xbindkeysrc

В моём случае файл разместился по такому пути:

/home/d1mon/.xbindkeysrc

Теперь редактируем его своим любимым редактором. Если у вас такового нет, могу порекомендовать встроенные редакторы файловых коммандеров mc или Double Commander.

По умолчанию в файле на 40 строке присутствует включенный пример:

# Examples of commands:
"xbindkeys_show" 
  control+shift + q

Можно его отключить (закомментировать), установив вначале строк символ «#». Следом пишем свои команды. Например, я для боковых кнопок мышки добавил две следующие:

"xte 'keydown Control_L' 'key Insert' 'keyup Control_L'"
  b:9

"xte 'keydown Shift_L' 'key Insert' 'keyup Shift_L'"
  b:8

Из кода видно, что происходит. В первом случае, держим левый «Ctrl», нажимаем кнопку «Insert», отпускаем левый «Ctrl». Вся эта эмуляция клавиатуры происходит по нажатию кнопки мышки под номером 9.

Комбинации кнопок Ctrl+Insert и Shift+Insert для копирования и вставки считаются общепринятыми, как и Ctrl+C и Ctrl+V. В настройки лучше прописывать именно первый вариант. Он будет работать всегда, при любой включенной раскладке клавиатуры. А вот комбинации Ctrl+C и Ctrl+V будут работать, только если будет включена латинская. На англоязычных интернет-ресурсах часто советуют следующий код, т.к. у них нет трудностей с раскладками:

"xte 'keydown Control_L' 'key c' 'keyup Control_L'"
  b:9

"xte 'keydown Control_L' 'key v' 'keyup Control_L'"
  b:8

Пример, когда нужно просто эмулировать нажатие кнопок клавиатуры:

"xte 'key Control_L'"
  b:13

"xte 'key q'"
  b:14 

Эмуляция нажатия комбинации CTRL + левая кнопка мыши, чтобы по дополнительной кнопке 10 мыши в веб-браузере открывать вкладку в новом окне:

"xte 'keydown Control_L' 'mouseclick 1' 'keyup Control_L'"
  b:10 + Release

Следующей командой можно посмотреть справку, где приводятся коды других функциональных кнопок клавиатуры, которые могут пригодиться для конфига:

xte -h

Ещё можно узнать коды вообще любых кнопок так:

xev | grep keycode

А такая команда позволяет протестировать сделанные в файле .xbindkeysrc настройки:

xbindkeys -n -v

Если всё готово и вы хотели бы начать пользоваться дополнительными кнопками мыши, надо просто запустить ту же самую программу:

xbindkeys

Ну и соответственно, чтобы оно всегда работало надо добавить эту программу в автозапуск. В Elementary OS заходим в «Приложения» → «Параметры системы» → «Приложения» → Вкладка «Автозапуск» → В нижнем левом углу есть кнопка «Добавить программу в автозапуск...». Здесь просто вписываем «xbindkeys»:

Добавляем xbindkeys в автозапуск

Вот и всё! Можно пользоваться. Согласитесь, ничего сложного.

Я когда с этим разбирался, то у меня был косяк в том, что нужные мне дополнительные кнопки мыши не распознавались xev. Вот именно те две кнопки, которые я и хотел настроить. С остальными сразу всё было без проблем.

В теории, если такая ситуация, то это означает, что используемый вами драйвер мышки не обеспечивает работу всех её кнопок. Где брать другой драйвер под Linux — не понятно. Производители железа редко когда заморачиваются и делают для своих устройств драйверы под эту операционную систему.

Но благо, эта ситуация крайне редкая, обычно, как я понял из информации в интернете, кнопки мышек распознаются сразу без проблем. В моём случае это была аппаратная проблема. Две нужные мне кнопки тупо вообще не работали. Видать, слишком давно ими не пользовался. Разобрал грызуна, почистил, покликал, — заработали. После этого повесил на них нужные действия за считанные минуты.

Определить, что кнопки вообще не работают помог другой компьютер с Windows. А так, наверное, еще долго бы ломал голову, почему нифига не работает и что с этим делать.

00 643 0

Комментарии

RSS
Комментарии отсутствуют
Добавить комментарий
Страница создана за 0.125 секунды
© 1999-2017 PcTuner.ru · Дизайн Alex Dovby · Хостинг Vscale