привязать кнопку мыши к режиму прокрутки

У меня есть трекбол с некоторыми дополнительными кнопками, которые я хотел бы использовать для автоматической прокрутки (снятие напряжения от повторяющихся движений прокручивающего пальца). Я знаю номера кнопок xev, которые я хочу использовать, и как сопоставить дополнительные кнопки с кнопками колеса прокрутки. Пока что у меня есть:

xinput --set-button-map 9 1 2 3 4 5 6 7 8 9 4 5 12

(9 - идентификатор указателя трекбола). Это правильно приводит к тому, что выбранные дополнительные кнопки прокручиваются вверх и вниз ... по одной строке за раз. Так что, на самом деле нет никаких отличий от поведения колеса прокрутки, почти то, что я ожидал.

То, что я хотел бы, это иметь непрерывную прокрутку, в то время как кнопки 10 и 11 удерживаются. Аналогично колесу наклона. xev показывает, что колесо наклона фактически регистрируется как повторяющиеся события нажатия и отпускания для кнопок 6 и 7.

1114 Итак, мой вопрос: как проще всего это настроить? Кнопка 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?

0
задан 9 January 2018 в 02:32

1 ответ

Вдохновленный этим постом, я использую

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
1
ответ дан 9 January 2018 в 02:32
  • 1
    @Kangarooo С aptcd Вы имеете в виду APTonCD? Действительно ли возможно обеспечить больше информации? – pl1nk 3 June 2012 в 00:30
  • 2
    @Kangarooo С aptcd Вы имеете в виду APTonCD? Действительно ли возможно обеспечить больше информации? – pl1nk 3 June 2012 в 00:30
  • 3
    @Kangarooo С aptcd Вы имеете в виду APTonCD? Действительно ли возможно обеспечить больше информации? – pl1nk 3 June 2012 в 00:30
  • 4
    @Kangarooo С aptcd Вы имеете в виду APTonCD? Действительно ли возможно обеспечить больше информации? – pl1nk 3 June 2012 в 00:30
  • 5
    @Kangarooo С aptcd Вы имеете в виду APTonCD? Действительно ли возможно обеспечить больше информации? – pl1nk 3 June 2012 в 00:30
  • 6
    @Kangarooo С aptcd Вы имеете в виду APTonCD? Действительно ли возможно обеспечить больше информации? – pl1nk 3 June 2012 в 00:30

Другие вопросы по тегам:

Похожие вопросы: