Funktionstasten von Microsoft Sculpt Mobile Keyboard unter Linux neu zuordnen
Situation
Ich habe ein Microsoft Sculpt Mobile Keyboard, das über Bluetooth verbunden ist. Auf meinem Laptop läuft eine xUbuntu 16.04.
Die F1auf F12Tasten der Sculpt Mobile Keyboard Arbeit als Funktionstasten Wiedergabe / Pause, Mute, .... Um die Verwendung F1zu F12Tasten, wie beabsichtigt, muss man die Presse die FnTasten, die auf der rechten Seite . Dies ist ziemlich unangenehm, wenn Sie ALT+ F4... drücken möchten . Ich möchte dauerhaft zu den FxSchlüsseln wechseln (oder den FnSchlüssel sperren ). Außerdem würde Ich mag schalten PageUpund PageDownSchlüssel gegen Homeund End.
Windows-Lösung
Verwenden Sie AutoHotKey wie in beschrieben
- Microsoft Sculpt Mobile Keyboard Reverse-Fn-Tasten und
- "Microsoft Sculpt Mobile Keyboard Remap" für AutoHotKey bei GitHub .
Nicht funktionierende Lösung
Die Antwort gilt für eine andere Tastatur
Linux-Lösung für andere Keyboards (funktioniert nicht)
Es sollte möglich sein, Schlüssel mit den Befehlszeilenwerkzeugen xkbcomp
oder setxkbmap
wie hier beschrieben zu ändern oder zu wechseln :
- Superuser: Wie werden die Tasten unter Linux nur für eine bestimmte Tastatur neu zugeordnet?
- AskUbuntu: Was ist das Gegenteil von setxkbmap -option ctrl: nocaps?
- Stackoverflow: Erstellen Sie eine benutzerdefinierte setxkbmap-Option
- Übersicht über das xkbcomp-Keymapping bei GitHub
- AskUbuntu: Ändern Sie NUR die Tastaturzuordnung für die Bluetooth-Tastatur
- Unix & Linux: Verwenden Sie setxkbmap, um die Left Shift- und Left-Control auszutauschen
Basierend auf diesen Fragen und Antworten habe ich xev
die Schlüsselnamen (XKB-Bezeichner) der betreffenden Schlüssel gefunden. Ich wollte folgendes Mapping erstellen:
# F1 to F5 (F5 probably does not work) I172 -> FK01 MUTE -> FK02 VOL- -> FK03 VOL+ -> FK04 FIND -> FK05 # F11 and F12 FK22 -> FK11 FK23 -> FK12 # switch Page Up and Page Down with Home and End PGUP -> HOME HOME -> PGUP PGDN -> END END -> PGDN
So habe ich den entsprechenden Code erstellt:
xkb_symbols "remote" { key <I172> { type= "CTRL+ALT", symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] }; key <MUTE> { type= "CTRL+ALT", symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] }; key <VOL-> { type= "CTRL+ALT", symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] }; key <VOL+> { type= "CTRL+ALT", symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] }; key <FIND> { type= "CTRL+ALT", symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] }; key <FK22> { type= "CTRL+ALT", symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] }; key <FK23> { type= "CTRL+ALT", symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] }; key <PGDN> { [ End ] }; key <END> { [ Next ] }; key <PGUP> { [ Home ] }; key <HOME> { [ Prior ] }; };
Und fügte sie der vorhandenen Keymap-Definition xkbcomp
hinzu und fügte +custom(remote)
sie der xkb_symbols
Variablen des Key-Mappings des jeweiligen Geräts hinzu. Es hat nicht funktioniert.
Ich denke, dass sie vielleicht nicht funktionieren, weil die Tastatur als Zeiger und nicht als Tastatur erkannt wird. Die xinput list
Ausgabe sagt:
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech USB Mouse id=11 [slave pointer (2)] ⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=14 [slave pointer (2)] ⎜ ↳ AlpsPS/2 ALPS DualPoint Stick id=15 [slave pointer (2)] ⎜ ↳ Microsoft Sculpt Mobile Keyboard id=17 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Video Bus id=8 [slave keyboard (3)] ↳ Power Button id=9 [slave keyboard (3)] ↳ Sleep Button id=10 [slave keyboard (3)] ↳ Laptop_Integrated_Webcam_E4HD id=12 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] ↳ Dell WMI hotkeys id=16 [slave keyboard (3)]
Alternative Lösungen (nicht versucht)
Ich las über einige Mäuse, die als Tastatur und nicht als Zeiger erkannt wurden. Das Ändern des Linux-Kernel-Codes + Neukompilieren war eine der Lösungen. Ich möchte den Kernel nicht neu kompilieren, nur damit meine Tastatur richtig funktioniert.
Hardware-Lösung (Arbeit)
Frage
- Ist meine Annahme in "Linux-Lösung für andere Keyboards" falsch?
- Wenn die Antwort auf die erste Frage nein ist : Wie löse ich das beschriebene Problem softwarebasiert (Schlüssel wechseln und ersetzen), ohne meinen Kernel neu zu kompilieren?
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
1
Ordnen Sie FN einem anderen Schlüssel zu
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
Wie ordnen Sie eine Mac-Tastatur dem PC-Layout zu?
-
4
Wie kann ich die Auswurftaste auf der MacBook-Tastatur erneut "löschen"?