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' , удерживая кнопку мыши и увидев вставленную одну 't' , за которой следует другой 't ' при освобождении, когда я отпускаю.

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

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.«Есть идеи, как исправить / обойти это?»

1
задан 4 July 2021 в 12:25

2 ответа

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

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

Так что, похоже, простого исправления нет, что весьма прискорбно.

0
ответ дан 28 July 2021 в 11:22

Я использую xbindkeys аналогичным образом на одном ПК для переключения рабочего пространства с помощью боковых кнопок мыши. Посмотрев на свой конфиг, я увидел, что у меня есть & в конце строк конфига xte, который, как я полагаю, запускает 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
0
ответ дан 28 July 2021 в 11:22

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

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