Ich habe eine Logitech MX400 Wireless. Es hat eine Suchschaltfläche, die ich zum Einfügen verwenden möchte (anstelle des extrem empfindlichen, aber schwer zu drückenden Scrollrads). Ich habe bereits andere Schaltflächen mit xbindkeys neu zugeordnet und xev verwendet, um den Tastendruckcode zu finden, aber dies funktioniert nicht für die Suchtaste. Wenn ich xev benutze und auf die Suchschaltfläche klicke, erhalte ich die folgenden Ereignisse
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
Keine ButtonPress-Ereignisse. Es scheint, dass die Suchschaltfläche auf einer Ebene unterhalb der X-Ereignisse abgefangen wird. Irgendwelche Ideen? Ich habe Ubuntu 12.04. Ubuntu sieht den Klick tatsächlich und erzeugt einen Suchdialog, aber es gibt keine Spur eines Klickereignisses im xev.
Bearbeiten
Ich habe die mit xmodmap bereitgestellte Methode überprüft. Mein .Xmodmap
enthält jetzt die folgende Zeile
keycode 225 = XF86Paste NoSymbol XF86Paste``
Wenn Sie xmodmap ~/.Xmodmap
jetzt laufen, wird die Schaltfläche vollständig deaktiviert (oder zumindest erhalte ich kein Ergebnis, wenn Sie darauf drücken). Ich habe es versucht xmodmap -pke
und es wird ausgedruckt:
keycode 225 = XF86Paste NoSymbol XF86Paste NoSymbol XF86Paste
Seltsam genug. Alle anderen Einträge sind ähnlich formatiert. Ich bin nah an der Lösung, aber es gibt immer noch etwas Seltsames.
Bearbeiten 2
Ich habe versucht, xinput auszuführen (noch nie von diesem Befehl gehört. Erstaunliches Zeug). Es gibt zwei Einträge für Logitech. Hier ist die Ausgabe der Auflistung jedes von ihnen (ID 9 und 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
Das Testgerät 9 macht nichts mit der Taste. Das Testen von Gerät 10 funktioniert stattdessen, und dies ist die Ausgabe, wenn ich klicke
$ xinput test 10
key press 225
key release 225
key press 225
key release 225
key press 225
key release 225
Es scheint also, dass die Maus in dieser Hinsicht als Tastatur fungiert, aber aus irgendeinem Grund tut xmodmap nichts, wenn sie die Taste 225 empfängt.
** Bearbeiten **
Ich kann das Hinzufügen von keycode 225 = a
Ausdrucken a
jedes Mal bestätigen, wenn ich auf die Schaltfläche klicke. Das Problem scheint also damit zu tun zu haben, wie XF86Paste tatsächlich behandelt wird. Ich sende es, aber es wird nicht eingefügt.
tail -f /var/log/dmesg
es aus. Drücken Sie dann die Taste. Erhalten Sie eine Ausgabe, die sich auf Tasten bezieht?
xinput list
und ermitteln Sie dann den Schaltflächencode Ihres Suchschlüssels mit xinput test <MOUSE ID>
. Funktioniert das?
xev
die XF86Paste / XF86Copy-Ereignisse angezeigt werden können, aber es passiert nichts. Das bedeutet, dass Sie zum Einfügen die Tastenkombination STRG + v verwenden müssen. Xmodmap ordnet die Schaltflächen 1: 1 zu, aber Sie können die Einstellungen für Tastaturkürzel verwenden, um die Ausführung eines Befehls beim Tastendruck auszulösen (siehe meine Antwort).
xbindkeys
festgelegt, dass es beim Start ausgeführt werden soll, oder? Können Sie es deaktivieren und erneut versuchen?