Win-Tastatur an Mac zu RDP zu Windows ūü§™

An meinem Mac nutze ich die Microsoft Sculpt Tastatur. Das bringt in soweit gleich einmal “Probleme” mit sich, als dass die Tasten [Win] und [Alt], an deren Stelle beim Mac die Tasten [Option] und [Command] liegen, getauscht sind.

So sollte also das Mapping sein, wenn ich unter macOS eine Windows-Tastatur nutze:

[Win] -> [Option]
[Alt] -> [Command]

So ist es aber nicht, da wie erw√§hnt, die Tasten gedreht sind. Das ganze l√§sst sich recht simpel √ľber die Einstellungen der Tastatur l√∂sen:

Nun bin ich aber dann und wann auch mal vom Mac aus per Remote Desktop am Windows-PC angemeldet und genau dort sind [Win] und [Alt] durch diese Einstellung wieder verdreht.

Was ich also benötige ist die Möglichkeit, die Tasten während ich den Remote Desktop nutze wieder zu tauschen.

Karabiner und frontmost_application_if

Achtung: Mit Karabiner k√∂nnen die Wahltastae und die Befehlstaste nicht √ľber die Systemeinstellungen ge√§ndert werden. Macht man das, so kann Karabiner die Taste ALT nicht mehr korrekt mappen.

Das Programm Karabiner bietet die M√∂glichkeit, Tasten nur unter bestimmten Bedingungen (hier: nur wenn Remote Desktop im Vordergrund ist) zu tauschen. Es gibt aber keine UI-Einstellung daf√ľr.

Ein wenig Doku wälzen hilft also (hier und hier).

Was wir ben√∂tigen ist eine Complex modification um die Condition frontmost_application_if erweitert. Die Erweiterung m√ľssen wir dann im Editor machen. Wo genau die Karabiner-Konfiguration liegt, l√§sst sich √ľber die UI herausfinden. Sollte man die JSON-File derart zerschie√üen, dass sie nicht mehr geladen werden kann, so findet man den entsprechenden Fehler ebenfalls √ľber die UI. Sobald die Konfigurationsdatei gespeichert wird, l√§dt Karabine die Datei sofort neu. Ein Neustart ist also nicht n√∂tig.

BundleID oder FilePath

Die Applikation f√ľr die Bedingung frontmost_application_if l√§sst sich laut Doku wahlweise per BundleID oder FilePath angeben. Beim Ermitteln der Werte hilft der Karabiner-EventViewer.

Konfiguration

Das war jetzt mal ein wenig Theorie, jetzt kommts nur eigentlichen Konfiguration.

Wahltaste und Befehlstaste f√ľr macOS tauschen

√úber die Simple modifications werden zwei Regeln definiert, die die Tasten Option und Command tauschen.

WIN / ALT f√ľr Windows setzen

F√ľr Windows (√ľber Remote Desktop) m√ľssen die Tasten wieder zur√ľckgetauscht werden.

Tipp: Man kann sehr gut testen, was die angeschlossene Tastatur so macht, in dem man unter Windows die Bildschirmtastatur aufruft.

Benötigt werden 2 komplexe Modifikationen die nur unter Remote Desktop greifen sollen.

  1. left_command -> left_option um die Taste ALT zu definieren
  2. left_option -> left_command um die Tastae WIN zu definieren

Und so sieht eine mögliche Konfiguration dann aus:

"complex_modifications": {
    "parameters": {
        "basic.simultaneous_threshold_milliseconds": 50,
        "basic.to_delayed_action_delay_milliseconds": 500,
        "basic.to_if_alone_timeout_milliseconds": 1000,
        "basic.to_if_held_down_threshold_milliseconds": 500,
        "mouse_motion_to_scroll.speed": 100
    },
    "rules": [ {
        "description": "Map Keyboard to Windows",
        "manipulators": [{
            "conditions": [{
                "file_paths": [
                "/Applications/Microsoft Remote Desktop.app/Contents/MacOS/Microsoft Remote Desktop"
                ],
                "type": "frontmost_application_if"
            }],
            "description": "[ALT] Left CMD -> Left OPT",
            "from": {
                "key_code": "left_command",
                "modifiers": {
                    "optional": ["any"]
                }
            },
            "to": [{
                "key_code": "left_option",
                "modifiers": ["any"]
            }],
            "type": "basic"
        },
        {
            "conditions": [{
                "file_paths": [
                "/Applications/Microsoft Remote Desktop.app/Contents/MacOS/Microsoft Remote Desktop"
                ],
                "type": "frontmost_application_if"
            }],
            "description": "[WIN] Left OPT -> Left CMD",
            "from": {
                "key_code": "left_option",
                "modifiers": {
                    "optional": ["any"]
                }
            },
            "to": [{
                "key_code": "left_command",
                "modifiers": ["any"]
            }],
            "type": "basic"
        }]
    }]
}

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.