Mam sieć bezprzewodową Logitech MX400. Ma przycisk wyszukiwania, którego chciałbym użyć do wklejenia (zamiast bardzo wrażliwego, ale trudnego do naciśnięcia kółka przewijania). Zmapowałem już inne przyciski za pomocą xbindkeys i użyłem xev, aby znaleźć kod przycisku, ale to nie działa w przypadku przycisku wyszukiwania. za pomocą xev i klikając przycisk wyszukiwania otrzymuję następujące zdarzenia
FocusOut event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 4294967275 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
PropertyNotify event, serial 34, synthetic NO, window 0x3c00001,
atom 0x1d7 (_NET_WM_ICON_GEOMETRY), time 23653064, state PropertyNewValue
Brak zdarzeń ButtonPress. Wygląda na to, że przycisk wyszukiwania jest przechwytywany na poziomie poniżej X zdarzeń. Jakieś pomysły? Mam Ubuntu 12.04. Ubuntu faktycznie widzi kliknięcie i odradza okno wyszukiwania, ale w xev nie ma śladu zdarzenia kliknięcia.
Edytować
Sprawdziłem metodę dostarczoną z xmodmap. Mój .Xmodmap
teraz zawiera następujący wiersz
keycode 225 = XF86Paste NoSymbol XF86Paste``
bieganie xmodmap ~/.Xmodmap
teraz całkowicie wyłącza przycisk (a przynajmniej nie otrzymuję żadnego wyniku po naciśnięciu). Próbowałem xmodmap -pke
i drukuje:
keycode 225 = XF86Paste NoSymbol XF86Paste NoSymbol XF86Paste
Dziwne. Wszystkie pozostałe wpisy są podobnie sformatowane. Jestem blisko rozwiązania, ale wciąż jest coś dziwnego.
Edytuj 2
Próbowałem uruchomić xinput (nigdy nie słyszałem o tym poleceniu. Niesamowite rzeczy). Istnieją dwa wpisy dotyczące Logitech. Oto wynik wyszczególnienia każdego z nich (id 9 i 10)
Logitech USB Receiver id=9 [slave pointer (2)]
Reporting 7 classes:
Class originated from: 9. Type: XIButtonClass
Buttons supported: 24
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" "Button Task" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown"
Button state:
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 3:
Label: Rel Vert Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 3
type: 1 (vertical)
increment: -1.000000
flags: 0x2 ( preferred )
Logitech USB Receiver id=10 [slave pointer (2)]
Reporting 6 classes:
Class originated from: 10. Type: XIButtonClass
Buttons supported: 7
Button labels: "Button 0" "Button Unknown" "Button Unknown" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right"
Button state:
Class originated from: 10. Type: XIKeyClass
Keycodes supported: 248
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Urządzenie testujące 9 nic nie robi z przyciskiem. Zamiast tego działa urządzenie testujące 10, które jest generowane po kliknięciu
$ xinput test 10
key press 225
key release 225
key press 225
key release 225
key press 225
key release 225
Wygląda więc na to, że pod tym względem mysz działa jak klawiatura, ale z jakiegoś powodu xmodmap nic nie robi po otrzymaniu klucza 225.
** Edytować **
Potwierdzam, że dodawanie keycode 225 = a
wydruków za a
każdym razem, gdy klikam przycisk. Problem wydaje się więc związany z tym, jak faktycznie obsługiwana jest XF86Paste. Wysyłam to, ale to nie wkleja.
tail -f /var/log/dmesg
a następnie spróbuj nacisnąć przycisk. Czy otrzymujesz jakieś dane wyjściowe odnoszące się do klawiszy / przycisków?
xinput list
następnie znajdź kod przycisku klucza wyszukiwania za pomocą xinput test <MOUSE ID>
. czy to działa?
xev
pokazać zdarzenia XF86Paste / XF86Copy, ale nic się nie dzieje. Oznacza to, że do wklejenia musisz użyć kombinacji klawiszy CTRL + v. Xmodmap mapuje przyciski 1: 1, ale możesz użyć ustawień skrótów klawiaturowych, aby wywołać wykonanie polecenia po naciśnięciu klawisza (patrz moja odpowiedź).
xbindkeys
ustawione na uruchamianie podczas uruchamiania prawda? Czy możesz to wyłączyć i spróbować ponownie?