3

Я пытаюсь заставить кнопки мыши действовать точно так же, как клавиши Control_L или Super_L.

Во многих приложениях (Firefox, Консоль и т.д.) Ctrl+Scroll имеет специальные действия, такие как масштабирование, поэтому назначение кнопки мыши клавише-модификатору выглядит очень полезным.

Также я надеюсь использовать кнопку мыши, назначенную для Super, в качестве ключа для управления окнами в удивительной WM.

Поэтому я пытаюсь использовать xbindkeys и xdotool:

"xdotool keydown control"
    b:8

"xdotool keyup control"
    release + control + b:8

Но когда я нажимаю кнопку мыши № 8, Ксев говорит:

LeaveNotify event, serial 30, synthetic NO, window 0x1800001,
    root 0x33f, subw 0x0, time 52846491, (-1,166), root:(0,186),
    mode NotifyGrab, detail NotifyAncestor, same_screen YES,
    focus YES, state 0

и когда я отпускаю кнопку:

EnterNotify event, serial 30, synthetic NO, window 0x1800001,
    root 0x33f, subw 0x0, time 52846655, (-1,166), root:(0,186),
    mode NotifyUngrab, detail NotifyAncestor, same_screen YES,
    focus YES, state 0

KeymapNotify event, serial 30, synthetic NO, window 0x0,
    keys:  63  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

Поэтому приложения не получают никаких уведомлений о клавишах / кнопках (KeyPress и другие).

Я пытался играть с xmodmap, использовать xte или xvkbd вместо xdotool.

Когда я пытался назначить клавишу мыши на нормальную клавишу (не модификатор) - все работает нормально.

Кроме того, я попытался вызвать xdotool/xte/xvkbd с другой машины по ssh, и это работает!

Так что я абсолютно не знаю, что попробовать еще. Есть идеи?

Upd: Насколько я понимаю, LeaveNotify и EnterNotify, сгенерированные XGrabButton, вызваны xbindkeys, но я все еще не знаю, что делать :(

1 ответ1

0

Пытаться:

"xdotool keyup control"
  Control + b:8 + release

Обратите внимание, что Control и все другие модификаторы в этом отношении пишутся с заглавной буквы, модификаторы перечислены первыми, а выпуск - последним.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .