У меня есть трекбол с некоторыми дополнительными кнопками, которые я хотел бы использовать для автоматической прокрутки (снятие напряжения от повторяющихся движений прокручивающего пальца). Я знаю номера кнопок xev
, которые я хочу использовать, и как сопоставить дополнительные кнопки с кнопками колеса прокрутки. Пока что у меня есть:
xinput --set-button-map 9 1 2 3 4 5 6 7 8 9 4 5 12
(9 - идентификатор указателя трекбола). Это правильно приводит к тому, что выбранные дополнительные кнопки прокручиваются вверх и вниз ... по одной строке за раз. Так что, на самом деле нет никаких отличий от поведения колеса прокрутки, почти то, что я ожидал.
То, что я хотел бы, это иметь непрерывную прокрутку, в то время как кнопки 10 и 11 удерживаются. Аналогично колесу наклона. xev
показывает, что колесо наклона фактически регистрируется как повторяющиеся события нажатия и отпускания для кнопок 6 и 7.
ETA:
Одним из простых решений было просто назначить кнопки 6 и 7 на 5 и 4 соответственно. Но это не идеально, так как я теряю горизонтальную прокрутку.
Я также обнаружил, что Chrome полностью игнорирует команду xinput
! Поправьте меня, если я ошибаюсь, но чтобы использовать xinput2 вместо xinput1, вы должны использовать драйвер evdev
вместо драйвера по умолчанию libinput
в Xorg
. Мне удалось это, добавив файл конфигурации с:
Section "InputClass"
Identifier "Evdev Mouse"
MatchProduct "HUGE"
Driver "evdev"
Option "ButtonMapping" "1 2 3 4 5 5 4 8 9 4 5 12"
EndSection
(измените строку MatchProduct
по своему вкусу)
Теперь это работает и в Chrome. Но оригинальный вопрос остается: как сопоставить кнопки 10 и 11 с повторными нажатиями и выпусками 4 и 5?
Вдохновленный этим постом, я использую
scroll.sh
#!/bin/bash
while true
do
xte "key $1"
sleep 0.1
done
и ~ / .xbindkeysrc
"~/scroll.sh Down"
b:8
"killall scroll.sh"
b:8 + Release
"~/scroll.sh Up"
b:9
"killall scroll.sh"
b:9 + Release
Вероятно, вам следует замените кнопки пропптера b: 10 и b: 11 вместо моих.
затем запустите
killall xbindkeys
xbindkeys