У меня лазерная мышь Logitech MX400 с 5 кнопками + 4 для вертикальной / горизонтальной прокрутки. Мне бы хотелось, чтобы он был настроен таким образом, чтобы вместо горизонтальной прокрутки нажатие вправо на колесе прокрутки отправляло Ctrl kbd> + Tab kbd>, а слева - Ctrl kbd> + Shift kbd> + Tab kbd>, что позволит мне переключаться между вкладками в браузерах.
Кроме того, было бы неплохо, если бы я мог переназначить среднюю кнопку на одну из боковых, потому что действительно трудно нажать вниз.
Еще одним бонусом было бы, если бы я мог написать скрипт, который позволял бы мне определять, какие кнопки будут делать, что зависит от того, какое окно в данный момент активно.
Я пытался использовать xmodmap
, но я мог только видеть, как переставить кнопки, а не посылать им сигналы клавиш.
Заранее спасибо.
Карта кнопок (с использованием xev
):
Left 1
Middle 2
Right 3
ScrollUp 4
ScrollDown 5
ScrollLeft 6
ScrollRight 7
Backward 8
Forward 9
xbindkeys и xte могут помочь вам.
Например, мой файл .xbindkeysrc выглядит так:
# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
b:8+Release
# double click
"xte 'mouseclick 1' 'mouseclick 1'"
b:9
Спасибо всем за решение. Вот более надежное / комбинированное руководство (сделано в Xubuntu 18.04).
Открыть терминал (например, xterm / терминал / терминатор), стать пользователем root (sudo su -
) или использовать sudo перед командой:
apt install xbindkeys xautomation
xev
, для этого вам не нужно разрешение root, поэтому выйдите из корневого сеанса (с exit
) или откройте другой терминал как пользователь.
xev | grep button
Появится небольшое окно. Вы должны переместить мышь в это окно и нажать кнопку, которую вы хотите переназначить. Пример вывода в терминале будет:
state 0x0, button 8, same_screen YES
Это вторая боковая кнопка на моей мыши, которую я хочу использовать как PAGE_DOWN.
state 0x0, button 9, same_screen YES
Это 1-я боковая кнопка (да, порядок обратный), которую я хочу использовать в качестве PAGE_UP.
Когда у вас есть все кнопки, которые вы хотите переназначить, вы можете закрыть маленькое окно xev. Откройте ваш любимый редактор (например, gedit / vi / nano) и отредактируйте файл конфигурации.
vi .xbindkeysrc
Если у вас уже есть какой-то контент в файле, посмотрите, есть ли уже такая привязка (вряд ли, по умолчанию) и добавьте в конце.
#Pagedown press
"xte 'keydown Next'"
b:8
#Pagedown release
"xte 'keyup Next'"
b:8 + Release
#Pagedup press
"xte 'keydown Prior'"
b:9
#Pageup release
"xte 'keyup Prior'"
b:9 + Release
Примечание: вам нужно две записи, одну для нажатия кнопки и одну для выпуска.
Кнопки 8 + 9 будут отображены на клавиши «Далее» (то есть PAGE_DOWN) и «Приор» (PAGE_UP). Если вы хотите отобразить разные ключи, вы можете найти символ ключа с помощью xev.
xev | grep keysym
Как и раньше, запустите его в терминале, подведите мышь к маленькому окну и нажмите нужную клавишу.
state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
Сохранить и убить xbindings.
killall xbindkeys ; xbindkeys
Теперь вы можете использовать дополнительные боковые кнопки мыши. Настройка будет загружена автоматически при следующей перезагрузке / входе в систему. Вам нужна только команда killall [...]
сверху, если вы измените настройки.