Linuks i usunięcie makra z dodatkowego przycisku myszy


(Frankfurterium) #1

Kupiłem mysz bezprzewodową. Na Linuksie działa. Problem w tym, że oprócz standardowego układu obok rolki ma jeszcze jeden dodatkowy. Jest do niego przypisane kretyńskie makro - wywoływany jest event klawiaturowy odpowiadający kombinacji [Win]+r http://www.win2.cn/g9 [enter] . W Windowsie powoduje otworzeniu strony z oprogramowaniem pozwalającym zmienić makro. Na Linuksie, oczywiście, program nie działa.

Nieszczególnie zależy mi na dodatkowej funkcji myszki, więc po prostu byłbym szczęśliwy, gdyby jakoś dało się wyłączyć to makro. Niestety wiedza uzyskana z internetu nie napawa optymizmem. Z tą samą myszką odważnie i niskopoziomowo bez efektów walczono na forum Debiana (wyniki odpowiednich poleceń mam identyczne). Ma ktoś więc pomysł, jak w X-ach zablokować ten cholerny event?

Próbka z xev:

KeyPress event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156682, (155,15), root:(156,448),

    state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,

    XLookupString gives 1 bytes: (77) "w"

    XmbLookupString gives 1 bytes: (77) "w"

    XFilterEvent returns: False


KeyRelease event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156690, (155,15), root:(156,448),

    state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,

    XLookupString gives 1 bytes: (77) "w"

    XFilterEvent returns: False


KeyPress event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156700, (155,15), root:(156,448),

    state 0x10, keycode 60 (keysym 0x2e, period), same_screen YES,

    XLookupString gives 1 bytes: (2e) "."

    XmbLookupString gives 1 bytes: (2e) "."

    XFilterEvent returns: False


KeyRelease event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156709, (155,15), root:(156,448),

    state 0x10, keycode 60 (keysym 0x2e, period), same_screen YES,

    XLookupString gives 1 bytes: (2e) "."

    XFilterEvent returns: False


KeyPress event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156717, (155,15), root:(156,448),

    state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,

    XLookupString gives 1 bytes: (77) "w"

    XmbLookupString gives 1 bytes: (77) "w"

    XFilterEvent returns: False


KeyRelease event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156727, (155,15), root:(156,448),

    state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,

    XLookupString gives 1 bytes: (77) "w"

    XFilterEvent returns: False


KeyPress event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156735, (155,15), root:(156,448),

    state 0x10, keycode 31 (keysym 0x69, i), same_screen YES,

    XLookupString gives 1 bytes: (69) "i"

    XmbLookupString gives 1 bytes: (69) "i"

    XFilterEvent returns: False


KeyRelease event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156745, (155,15), root:(156,448),

    state 0x10, keycode 31 (keysym 0x69, i), same_screen YES,

    XLookupString gives 1 bytes: (69) "i"

    XFilterEvent returns: False


KeyPress event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156754, (155,15), root:(156,448),

    state 0x10, keycode 57 (keysym 0x6e, n), same_screen YES,

    XLookupString gives 1 bytes: (6e) "n"

    XmbLookupString gives 1 bytes: (6e) "n"

    XFilterEvent returns: False


KeyRelease event, serial 39, synthetic NO, window 0x3800001,

    root 0xa8, subw 0x0, time 156762, (155,15), root:(156,448),

    state 0x10, keycode 57 (keysym 0x6e, n), same_screen YES,

    XLookupString gives 1 bytes: (6e) "n"

    XFilterEvent returns: False

Mysz: A4Tech G9-500F

System: openSUSE 12.2 z KDE 4.10

Jeżeli nic się nie da zrobić, po prostu wydłubię sukinkota, ale przydałoby się bardziej eleganckie rozwiązanie.


(Coman Pl) #2

Może dało by się mu zmienić funkcję? Można użyć np. btnx albo w samym kde spróbować skonfigurować inaczej(jak się da).

Może się przyda: http://www.ghacks.net/2011/06/28/how-to-customize-extra-mouse-buttons-in-linux/


(Frankfurterium) #3

Żaden program wychwytujący działanie myszki nie widzi tego przycisku. Xinput nie wychwytuje też żadnej dodatkowej "wirtualnej" klawiatury ale eventy "magicznie" skądś się biorą.

[edit]

W ramach dalszego śledztwa zawędrowałem do /proc/bus/input/devices Tam znalazłem dwa urządzenia nazywające się "A4TECH USB Device", z czego jedno ma Handler "kbd event1 js0 ". Wiem, jak mógłbym zablokować urządzenie w X-ach, ale i mysz, i "klawiatura" dzielą tę samą nazwę, a myszy amputować nie chcę.

Ktoś mi wyjaśni, jak na podstawie poniższych informacji zmusić systemd do niewłączania pierwszego z urządzeń?

I: Bus=0003 Vendor=09da Product=054f Version=0111

N: Name="A4TECH USB Device"

P: Phys=usb-0000:00:1d.0-1.1/input0

S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input16

U: Uniq=

H: Handlers=kbd event1 js0 

B: PROP=0

B: EV=12001f

B: KEY=4c37fff072ff32d bf54445600000000 c00000000000001 30c100b17c007 ffa67bfad951dfff febeffdfffefffff fffffffffffffffe

B: REL=40

B: ABS=ffffff01000701ff

B: MSC=10

B: LED=1f


I: Bus=0003 Vendor=09da Product=054f Version=0111

N: Name="A4TECH USB Device"

P: Phys=usb-0000:00:1d.0-1.1/input1

S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input17

U: Uniq=

H: Handlers=mouse0 event2 

B: PROP=0

B: EV=17

B: KEY=ffff0000 0 0 0 0

B: REL=143

B: MSC=10