2010-10-14 8 views
5

Ich besitze eine Razer Naga Mouse, im Wesentlichen hat es eine kleine Nummernblock auf der Seite davon. Ich möchte diese Schlüssel zu verschiedenen unbenutzten Schlüsseln zuordnen oder Befehle bash. Ich kann dies leicht tun, indem ich xev verwende, um den Schlüsselcode zu greifen (zum Beispiel die "1" auf der Maus ist der Schlüsselcode 87) und dann kann ich xmodmap verwenden, um den Schlüsselcode an einen anderen Schlüssel zu binden.Zuordnung eines Schlüssels basierend auf dem Gerät, auf dem der Schlüssel aktiviert ist? (Linux)

Allerdings erbt das Numpad auf meiner Tastatur dies auch, da der Schlüsselcode derselbe ist, was ich jedoch bemerkt habe, ist, dass die "Seriennummer" anders ist.

Zum Beispiel hier ist die Ausgabe von xev, wenn Sie die "1" -Taste auf meiner Maus Numpad drücken.

KeyPress event, serial 34, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2179878, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False 

KeyRelease event, serial 35, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2179966, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XFilterEvent returns: False 

und hier ist der Ausgang, wenn „1“ auf meiner Tastatur Numpad

KeyPress event, serial 35, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2180261, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False 

KeyRelease event, serial 36, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2180341, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XFilterEvent returns: False 

Gibt es trotzdem drücken konnte ich die Tasten auf der Maus auf dieser Basis Karte?

Antwort

1
+0

Ich habe Linux-Code für mein System und steckte jetzt. Ich sehe nicht init_module() Funktion irgendwo in der/drivers/hid/usbhid :( –

+0

Ich fand/dev/input/by-id/usb-Razer_Razer_Naga-event-kbd und macht einen hexdump auf das scheint wie etwas, das ich kann ein Recht Programm, das analysiert werden soll Diese Routeninterpretation von X für Razer Naga muss deaktiviert werden –

+0

Ich habe nicht bemerkt, dass die Frage fast ein Jahr alt ist ... hoffentlich kann mir meine Antwort helfen :) –

2

Verwenden Sie anstelle von xmodmapsetxkbmap und xkbcomp. Mit dem Befehl xkbcomp können Sie eine Eingabegerät-ID angeben (mit der Option -i).

Um eine Liste der Geräte-IDs zu erhalten, führen Sie xinput --list. (FWIW, meine Razer Salmosa wurde eindeutig als "Razer Razer Salmosa" bezeichnet.)

Hier ist, wie ich meine USB-Tastatur (ID 16) konvertiert, um die deutsche Tastaturbelegung zu verwenden, während meine Laptop-Tastatur auf einem US-Mapping:

setxkbmap de -print | xkbcomp - -i 16 $DISPLAY 

ich weiß nicht wirklich, wie xkb Mappings einzurichten, aber ich fand ein tutorial that looks pretty good.

Verwandte Themen