Ich habe ein seltsames, hochspezifisches Problem bei der Verwendung meiner USB-Tastatur eines Drittanbieters mit meinem MacBook Pro: option + left-shift + right-arrow
(was, wie Mac-Programmierer wissen, bedeutet, dass das Wort rechts vom Cursor hervorgehoben wird) funktioniert nicht. Die Gründe dafür sind unklar, aber ich weiß, dass dies weder mit Softwareeinstellungen auf Benutzerebene noch direkt mit einem Hardwareproblem auf niedriger Ebene zu tun hat ( die vollständige Logik zur Fehlerbehebung finden Sie in meiner ursprünglichen Frage zum Superuser ).
Ich sollte beachten, dass es sich um eine für Windows entwickelte Tastatur handelt: eine Thinkpad-USB-Tastatur mit Trackpoint - der Trackpoint ist der Grund, warum ich es so mag und trotz seiner Probleme dabei bleibe. Der Schlüssel, dem ich option
in den Systemeinstellungen zuordne, ist also der Schlüssel "Windows-Logo".
Es funktioniert , wenn ich es benutze, option + RIGHT-shift + right-arrow
aber dies ist eine sehr ungeschickte Handposition, um mich schnell in meinen Dokumenten zu bewegen. Daher möchte ich versuchen, die Interpretation der linken und rechten Umschalttaste durch den Mac auszutauschen . Ist das möglich und wenn ja, wie?
Aktualisieren:
Auf Vorschlag von Tetsujin habe
ich Karabiner ausprobiert, aber es scheint, dass das Problem auf einer niedrigeren Ebene auftritt. Das Tastaturereignis für den Rechtspfeil erreicht Karabiner nicht einmal, wenn die Tasten Windows-logo
und (physisch) left-shift
gedrückt gehalten werden (und es spielt keine Rolle, ob Windows logo
sie einem anderen Modifikator zugeordnet sind: Das Problem bleibt bei dieser bestimmten Kombination aus physischen Tasten).
Als Antwort auf den Kommentar von Insomniac Software sagt der Karabiner EventViewer Folgendes, wenn ich drücke:
Windows-logo + left-shift + left-arrow
::
eventType:keyMod code:0x3a name:Option_L flags:Opt misc:KeyCode::OPTION_L characters:
eventType:keyMod code:0x38 name:Shift_L flags:Shift Opt misc:KeyCode::SHIFT_L characters:
eventType:keyDown code:0x7b name:Left flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_LEFT characters:
eventType:keyUp code:0x7b name:Left flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_LEFT characters:
eventType:keyMod code:0x38 name:Shift_L flags:Opt misc:KeyCode::SHIFT_L characters:
eventType:keyMod code:0x3a name:Option_L flags: misc:KeyCode::OPTION_L characters:
Windows-logo + left-shift + right-arrow
::
eventType:keyMod code:0x3a name:Option_L flags:Opt misc:KeyCode::OPTION_L characters:
eventType:keyMod code:0x38 name:Shift_L flags:Shift Opt misc:KeyCode::SHIFT_L characters:
eventType:keyMod code:0x38 name:Shift_L flags:Opt misc:KeyCode::SHIFT_L characters:
eventType:keyMod code:0x3a name:Option_L flags: misc:KeyCode::OPTION_L characters:
Windows-logo + right-shift + right-arrow
::
eventType:keyMod code:0x3a name:Option_L flags:Opt misc:KeyCode::OPTION_L characters:
eventType:keyMod code:0x3c name:Shift_R flags:Shift Opt misc:KeyCode::SHIFT_R characters:
eventType:keyDown code:0x7c name:Right flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_RIGHT characters:
eventType:keyUp code:0x7c name:Right flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_RIGHT characters:
eventType:keyMod code:0x3c name:Shift_R flags:Opt misc:KeyCode::SHIFT_R characters:
eventType:keyMod code:0x3a name:Option_L flags: misc:KeyCode::OPTION_L characters:
(NB: windows-logo + right-shift + left-arrow
funktioniert auch, falls Sie sich fragen).
Beachten Sie, dass im speziellen Fall von windows-logo + left-shift + right-arrow
Karabiner in erster Linie weniger Ereignisse auftreten. Ich sehe die gleiche Geschichte (zumindest soweit ich das beurteilen kann) aus Karabiners Debug-Protokoll: weniger Ereignisse, die durch diese spezielle problematische Kombination generiert wurden. Ich habe in --Debug--
den gleichen drei Fällen alles bis zu jeder Zeile abgeschnitten :
# Windows-logo + left-shift + left-arrow
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x800a0022, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x000a0022, key 0x0038, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x002a0022
KeyboardEventCallback [ caught]: eventType 10, flags 0x802a0022, key 0x007b, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x002a0022
KeyboardEventCallback [sending]: eventType 10, flags 0x002a0022, key 0x007b, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 11, flags 0x802a0022, key 0x007b, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x000a0022
KeyboardEventCallback [sending]: eventType 11, flags 0x002a0022, key 0x007b, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x000a0022
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80000000, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003a, kbdType 40, repeat = 0
# Windows-logo + left-shift + right-arrow
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x800a0022, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x000a0022, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80000000, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003a, kbdType 40, repeat = 0
# Windows-logo + right-shift + right-arrow
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x800a0024, key 0x003c, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x000a0024, key 0x003c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x002a0024
KeyboardEventCallback [ caught]: eventType 10, flags 0x802a0024, key 0x007c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x002a0024
KeyboardEventCallback [sending]: eventType 10, flags 0x002a0024, key 0x007c, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 11, flags 0x802a0024, key 0x007c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x000a0024
KeyboardEventCallback [sending]: eventType 11, flags 0x002a0024, key 0x007c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x000a0024
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003c, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003c, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80000000, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003a, kbdType 40, repeat = 0