Linux дополнительные кнопки мыши

Ubuntu 18.04. Настройка дополнительных кнопок мыши.

Здравствуйте.
Дано:
— Ubuntu 18.04 — 1 шт.
— Мышь Deathadder 2014 — 1 шт.
— Дополнительные кнопки на мыши — 2 шт.
— Дополнительные кнопки на мыши работают в браузере стандартно
Хочу:
— Перенастроить на доп-кнопки скроллинг экрана в firefox.
Знаю:
— Что надо использовать xbindkeys + xautomation (вроде бы)
— Номера кнопок на мыши, которые надо биндить (xev | grep button)
Не знаю:
— Как отменить стандартные бинды на эти кнопки.
— Какая команда (или название кнопки со стрелками) соответсвует скроллингу страницы в браузере
— Как здесь в тексте использовать табуляцию, чтобы делать нормальное смещение текста
Помогииитеее.

Easystroke поставь , там можно настроить на кнопки мыши действия или команды, кнопки. А для скролинга мышью есть расширение Scrollbar Anywhere

спасибо, посмотрю. На всякий случай — мне нужен скроллинг БОКОВЫМИ кнопками мыши. На них по-умолчанию стоит что-то вроде undo/redo, если я не путаю. Но в любом случае — посмотрю, что Вы посоветовали, спасибо!

Разве когда ты переназначаешь на кнопку другое значение, старое не отменяется?

  • Какая команда (или название кнопки со стрелками) соответсвует скроллингу страницы в браузере

Тебе нужен скроллинг как колесиком? Тогда можно назначить на нужные кнопки действия, совершаемые по колесику. Вот тут есть статья про три разные способа: https://zepete.livejournal.com/151204.html Почитай, может поможет.

  • Как здесь в тексте использовать табуляцию, чтобы делать нормальное смещение текста

Не знаю зачем, но описание разметки здесь https://www.linux.org.ru/help/markdown.md https://www.linux.org.ru/help/lorcode.md Тип разметки выбирается в профиле или в форме ответа.

Тебе нужен скроллинг как колесиком? Тогда можно назначить на нужные кнопки действия, совершаемые по колесику. Вот тут есть статья про три разные способа: https://zepete.livejournal.com/151204.html Почитай, может поможет.

Вот это походу должно помочь.
По-идее, в моем случае должно быть что-то типа:

Источник

Дополнительные кнопки мыши в Linux

Дмитрий Корнев

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

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

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

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

Аналогично всё настраивается и для мышек очень многих других моделей и производителей. Позднее я настраивал:

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

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

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

Читайте также:  Klitecodekpack windows 10 x32

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ну и соответственно, чтобы оно всегда работало надо добавить эту программу в автозапуск.

В Ubuntu 20.04 есть специальная программа «Автоматически запускаемые приложения». Скорее всего там xbindkeys уже будет, тогда ничего делать не нужно.

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

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

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

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

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

Читайте также:  Как проверить локальную сеть linux

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

Источник

Переназначение кнопок мыши в linux. — Мысли злого плебея — ЖЖ

29 июл 2017

10:07 pm — Переназначение кнопок мыши в linux.

В windows такой фокус не предусмотрен. Там это делается сторонними программами, например X-Mouse Button Control, которые реализуют фильтр сообщений от мыши.
В Linux есть три способа для этого:
-внешний фильтр xbindkeys;
-переназначения порядка кнопок в xmodmap;
-переназначение порядка кнопок в xinput.

В linux кнопки мыши идут под номерами от 1 до 9 или 32, в источниках по разному пишут: судя по выхлопу xkbcomp их 9, xmodmap пишет про 20, а в документации evdev пишут про 32.
Их назначение.

Номер кнопки Положение кнопки на мыше logitech Назначение
1 левая кнопка Ввод
2 нажатие на колесико прокрутки linux ничего не делает
3 правая кнопка контекстное меню
4 прокрутка колесика от себя смещение экрана в направлении Z+(вертикальной плоскости)
5 прокрутка колесика на себя смещение экрана в направлении Z-(вертикальной плоскости)
6 сдвиг колесика прокрутки влево смещение экрана в направлении X- (горизонтальной плоскости)
7 сдвиг колесика прокрутки вправо смещение экрана в направлении X+ (горизонтальной плоскости)
8 ближняя кнопка для большого пальца назад
9 дальняя кнопка для большого пальца вперед

Какой номер имеет каждая физическая кнопка мыши определяется командой: «xev | grep -A2 —line-buffered ‘^ButtonPress’ | sed -nE ‘/button /s/^.*(button[[:space:]]+[[:digit:]]+).* $/\1/ p’«.

Для переопределения кнопок мыши может понадобиться определение ее имени.
Для получения имени мыши весящей на отдельном гнезде, необходимо выполнить команду «grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | sed -nE ‘/Name=/,/Handlers=.*mouse/ ‘«.
Если в гнезде висит мышь с клавиатурой, например комплект из беспроводной мыши и клавиатуры, то надо выполнить команду «grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | grep -EB1 ‘Handlers.*kbd’ | sed -nE ‘s/^.*Name=[«]([^»]+)[«].*$/\1/p’«.
Вывод имен мышей сидящих в отдельном гнезде или с клавиатурой:»grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | sed -nE ‘s/^.*Name=[«]([^»]+)[«].*$/\1/p’«.
Для вывода имени мыши содержащей какую-то последовательность символов, надо предыдущие команды дополнить окончанием похожим на » | grep ‘Logitech M'»,где «Logitech M» может быть любой требуемой строкой.

Тогда получится что-то такое: «grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | sed -nE ‘/Name=/,/Handlers=.*mouse/ ‘ | grep «Logitech M»«.

1. Переназначение при помощи xmodmap.

При помощи xmodmap можно только изменить номерацию кнопок мыши, причеем только у всех мышей сразу. Это самая удобная команда. Только linuxоиды ищуют трудный путь, поэтому они предпологают в ближайшее время эту лазейку заблокировать. Например, что бы 6 и 7 кнопки действовали как вперед/назад надо выполнить такую команду: ‘xmodmap -e «pointer = 1 2 3 4 5 8 9 6 7″‘. Заменить левую кнопку с правой: ‘xmodmap -e «pointer = 3 2 1»‘. Заблокировать левую кнопку: ‘xmodmap -e «pointer = 0»‘. Заблокировать все кнопки: ‘xmodmap -e «pointer = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0»‘. Разблокировать все кнопки: ‘xmodmap -e «pointer = default»‘. Изменить направление вращения колеса прокрутки: ‘xmodmap -e «pointer = 1 2 3 5 4»‘. Вывод текущего состояния: ‘xmodmap -pp‘. Из этих примеров видно, что позиционному положению числа в команде соответствует физический номер кнопки, а это число новое значение. Цифра 0 означает заблокированную кнопку. Единственно эта программа глючит при назначении нескольким кнопкам одного номера кнопки. Команда не требует root прав, поэтому возможно незаметно кому-нибудь заблокировать мышь:)

Читайте также:  Windows server 2019 hyper v iso

2. Переназначение при помощи xinput. Похожа на предыдущий случай, но переназначает кнопки у конкретной мыши.

Формат команды такой: «xinput -set-button-map «id мыши» 1 2 3 4 5 6 7 8 9. » — где «id мыши» получается из выхлопа команды xinput без параметров, а последующие цифры аналогичны используемым в команде xmodmap.Использовать просто число в качестве id мыши нельзя, так как после перезагрузки компьютера оно может быть другим. Поэтому надо использовать скрипты такого вида.

Например переназначение кнопок на колесике мыши logitech для перемещения вперед-назад в интернете: «xinput set-button-map «$(xinput | awk -F'[=]’ ‘/Logitech M/ ‘ | awk ‘‘)» 1 2 3 4 5 8 9 6 7» или так «xinput set-button-map «$(xinput | sed -nE ‘/Logitech M/s/^.*id=([[:digit:]]+).*$/\1/p’)» 1 2 3 4 5 8 9 6 7«.

Тоже самое, если неизвестен производитель мыши, но известно, что она одна в компьютере и висит на одном гнезде без клваиатуры: «xinput set-button-map «$(xinput | sed -nE «/$(grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | sed -nE ‘/Name=/,/Handlers=.*mouse/ ‘)/s/ ^.*id=([[:digit:]]+).*$/\1/p»)» 1 2 3 4 5 8 9 6 7«.

Если неизвестен производитель мыши, но изввестно, что она висит в одном гнезде с клавиатурой:»xinput set-button-map «$(xinput | sed -nE «/$(grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | grep -EB1 ‘Handlers.*kbd’ | sed -nE ‘s/^.*Name=[«]([^»]+)[«].*$/\1/p’)/s/ ^.*id=([[:digit:]]+)[[:space:]]+\[slave[ [:space:]]+pointer.*\]/\1/p»)» 1 2 3 4 5 8 9 6 7«.

3. Переназначение при помощи xbindkeys.

Это самый неудобный и медленный способ, так как требует файла снастройками и вызывает внешнюю команду, которая будет эмулировать нажатие другой кнопки. Зато он самый гибкий. При помощи него можно на кнопку мыши повесить любую программу.
Для его работы необходимо создать текстовый файл «

/.xbindkeysrc». Этот файл содержит пары строк. Первая строка в каждой паре обозначает выполняемую команду, а вторя — нажую кнопку. Кроме мыши они может обрабатывать нажатия на клавиатуру. То есть команда предназначена для создания горячих клавиш.

В linux существует две команды эмулирующие нажатия кнопок: xte и xvkbd. Можно использовать любую в качестве первой строки.
Во второй строке описываетсмя нажатая комбинация кнопок. Для мыши она выглядит так: «b: «.

В моем случае переназначения смещения колесика влево-вправо на вперед-назад, «.xbindkeysrc» может быть одним из трех нижепоказанных видов.

Использование xte для симуляции нажатия на 8 или 9 кнопку мыши.
# Back
«xte ‘mousedown 8’ ‘mouseup 8′»
b:6

# Forward
«xte ‘mousedown 9’ ‘mouseup 9′»
b:7

# Forward
«xte ‘keydown Alt_L’ ‘key Right’ ‘keyup Alt_L'»
b:7

Использование xvkbd для симуляции мультимедиа кнопок вперед-назад
# Back
«xvkbd -xsendevent -text «\[XF86Back]»
b:6

# Forward
«xvkbd -xsendevent -text «\[XF86Forward]»
b:7

После чего запустить xbindkeys.

Все три способа требуют после перезагрузки выполнить какую-то команду, поэтому необходимо создать ярлык (текстовый файл с расширением .desktop) в автозагрузке (папке «

Мой ярлык.
[Desktop Entry]
Type=Application
Exec=xmodmap -e «pointer = 1 2 3 4 5 8 9 6 7»
X-GNOME-Autostart-enabled=true
NoDisplay=true
Hidden=false
Name=»mouse button exchange»
Comment=»6->8 7->9 8->6 9->7″
X-GNOME-Autostart-Delay=0

Можно было бы такой, что бы никто не понял, при помощи xinput. Зато умный как утка.
[Desktop Entry]
Type=Application
Exec=xinput set-button-map «$(xinput | sed -nE «/$(grep -E «Name=|Handlers» /proc/bus/input/devices | grep -EB1 ‘Handlers.*mouse’ | sed -nE ‘/Name=/,/Handlers=.*mouse/ ‘)/s/ ^.*id=([[:digit:]]+).*$/\1/p»)» 1 2 3 4 5 8 9 6 7
X-GNOME-Autostart-enabled=true
NoDisplay=true
Hidden=false
Name=»mouse button exchange»
Comment=»6->8 7->9 8->6 9->7″
X-GNOME-Autostart-Delay=0

Самый простой для xbindkeys.
[Desktop Entry]
Type=Application
Exec=xbindkeys
X-GNOME-Autostart-enabled=true
NoDisplay=true
Hidden=false
Name=»mouse button exchange»
Comment=»6->8 7->9 8->6 9->7″
X-GNOME-Autostart-Delay=0

Источник

Оцените статью