xbindkeys двойной подсчет нажатий клавиш (без различия между нажатием и отпусканием)

У меня есть мышь Logitech g502 Proteus, и я хочу использовать кнопки мыши «Назад» и «Вперед» (обычно используемые в браузере).

я проверил с xevобнаруживаются нажатия кнопок мыши. я установил xbindkeysи используя различные настройки онлайн-справок .xbindkeysrcдля сопоставления кнопок мыши (6 и 7) для нажатия ряда клавиш для имитации правильного поведения.

      "xte 'key t'"
     b:6 + Release

"xte 'keydown Alt_L' 'keydown Right' 'keyup Right' 'keyup Alt_L'"
     b:7 + Release

Проблема в том, что ремап выполняется дважды, один раз при нажатии и один раз при отпускании. Я думал, что модификатор «Release» решит эту проблему, но он все еще продолжается. Я проверил это, вставив фиктивное переназначение на букву, удерживая кнопку мыши и увидев, что одно вставлено, а за ним другое. 't'на выпуске, когда я отпускаю.

Я убил все процессы xbindkeys перед тестированием. Бег xbindkeys --verbose --nodaemonпроявляет необычное поведение, т. pressа также releaseоба записываются, когда я нажимаю кнопку мыши, несмотря на то, что я не отпускаю нажатую кнопку мыши. Следующее выглядит так, будто я дважды нажал и отпустил кнопку, но это было только один раз:

      starting loop...
Button press !
e.xbutton.button=6
e.xbutton.state=16
Button release !
e.xbutton.button=6
e.xbutton.state=16
"xte 'key t' "
    Release + m:0x0 + b:6   (mouse)
got screen 0 for window 510
Start program with fork+exec call

Button press !
e.xbutton.button=6
e.xbutton.state=16
Button release !
e.xbutton.button=6
e.xbutton.state=16
"xte 'key t' "
    Release + m:0x0 + b:6   (mouse)
got screen 0 for window 510

Сами строки xte в командной строке печатают только одну букву «t». Любые идеи о том, как исправить/обойти это?

2 ответа

Ну, похоже, это не проблема с Ubuntu или xbindkeys, а с драйвером мыши xrdp. Я использую виртуальную машину MS Hyper-V под управлением Ubuntu 20.04.2 и столкнулся со следующей проблемой на github, где кто-то точно сообщает о моей проблеме: «один щелчок (нажатие + отпускание) вертикальной мыши Logitech MX кнопки 6 и 7 (кнопки вперед/назад) отправляются два события ButtonPress и ButtonRelease."

xrdpmouse: событие ButtonPress/ButtonRelease отправлено дважды

Так что кажется, что нет простого решения, и это печально.

я использую xbindkeysаналогично на одном ПК для переключения рабочей области боковыми кнопками мыши. Глядя на мою конфигурацию, я вижу, что в конце моих строк конфигурации, которые, как я полагаю, выполняются xteна заднем фоне. Возможно, вам это нужно? Я не за этим компьютером, чтобы проверить, что произойдет, если я удалю &из моего конфига:

              # Mouse button 8 (the "back" side button)
        # Re-map to super+page-down (move to workspace down)
        "xte 'keydown Super_L' 'key Page_Down' 'keyup Super_L' &"
          b:8

        # Mouse button 9 (the "forward" side button)
        # Re-map to super+page-up (move to workspace up)
        "xte 'keydown Super_L' 'key Page_Up' 'keyup Super_L' &"
          b:9
Другие вопросы по тегам