У меня есть трекбол с некоторыми дополнительными кнопками, которые я хотел бы использовать для автоматического прокрутки (снятие напряжения с повторяющегося движения прокручивающего пальца). Я знаю номера кнопок xev, которые я хочу использовать, и как сопоставить дополнительные кнопки кнопкам прокрутки. До сих пор я знаю:
xinput --set-button-map 9 1 2 3 4 5 6 7 8 9 4 5 12
(9 - идентификатор указателя трекбола). Это правильно приводит к тому, что выбранные дополнительные кнопки прокручиваются вверх и вниз ... по одной строке за раз. Таким образом, на самом деле никакой отличий от поведения колесика прокрутки, в значительной степени ожидаемого.
Что бы я хотел, это иметь непрерывную прокрутку, когда удерживаются кнопки 10 и 11. Аналогично колесу наклона. xev показывает, что колесико наклона фактически регистрируется как повторяющиеся события нажатия и отпуска для кнопок 6 и 7.
Итак, мой вопрос: какой был бы самый простой способ настроить это? Кнопка 10 удерживается в эмуляции повторного нажатия и отпускания кнопки 4, кнопка 11 делает то же самое для эмуляции кнопки 5. Возможно, с настраиваемой задержкой повторения и частотой повторения?
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
Вероятно, вы должны заменить кнопки propper b: 10 и b: 11 вместо моего.
затем запустите
killall xbindkeys
xbindkeys
Вдохновленный этой записью, я использую
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
Вероятно, вы должны заменить кнопки propper b: 10 и b: 11 вместо моего.
затем запустите
killall xbindkeys
xbindkeys