Wie kann ich die Feststelltaste für Escape und Control neu zuordnen?

22

Ich benutze normalerweise Linux. Ich benutze Vim sehr oft, daher ist die Escape-Taste extrem wichtig. Ich benutze auch oft andere Tastaturkürzel, daher ist Control auch "key". Unter Linux habe ich dies gelöst, indem ich xcape verwendet habe , um die Feststelltaste Escape zuzuordnen , wenn sie von selbst gedrückt wird, oder Control, wenn sie in Kombination mit einer anderen Taste gedrückt wird. Dadurch ist das Beste aus beiden Welten schnell in Reichweite meines kleinen Fingers. Kann ich das auf einem Mac machen?

BenjaminRH
quelle

Antworten:

19

Ja , mit Karabiner (früher KeyRemap4Macbook) .

Wechseln Sie zunächst in den Bereich "Tastatureinstellungen", klicken Sie auf "Zusatztasten ..." und ändern Sie die Feststelltaste in "Steuerung". Dann gehe in Karabiner und suche nach dieser Option:

Control_L bis Control_L
      (+ wenn Sie nur Control_L eingeben, senden Sie Escape)

Überprüfen Sie das und Sie sind fertig. Mit Karabiner können Sie viele weitere interessante Dinge tun, wie beispielsweise die Zuordnung Ihrer (jetzt irgendwie nutzlosen) Escape-Taste zu einer Hyper-Taste mit noch mehr Tastenkombinationen.

0942v8653
quelle
Ist es möglich, die Feststelltaste neu zuzuordnen und die Feststelltaste zuzuordnen, um zu steuern und zu entkommen? Weil ich manchmal immer noch das Bedürfnis habe, die Feststelltaste zu verwenden, um eine lange Zeichenkette in Großbuchstaben zu schreiben.
Aaron Shen
Karibiner weist Sie jetzt an, die Feststelltaste in den OSX-Tastatureinstellungen auf "Keine Aktion" zu setzen (anstatt sie dort auf "Steuerung" zu setzen) und Seil, Karabiners Schwesterprogramm, für die Neuzuordnung zu verwenden. Der letzte Teil der obigen Antwort (+, wenn Sie nur Control_L eingeben ...) wird immer noch in Karabiner ausgeführt.
ScoBe
@ AaronShen nur Remap Flucht nach Feststelltaste ;-).
Ven
@ScoBe Ich würde dagegen raten, du brauchst wirklich kein Seil,
Ven
Ich empfehle, Karabiners Parameter Key Overlaid Modifier> Timeout von 1000ms auf 200ms zu reduzieren . Wenn ich den Schlüssel halte, dann aber meine Meinung ändere und ihn freigebe, möchte ich kein Escape abfeuern.
Joeytwiddle
16

Karabiner ist derzeit nicht mit MacOS Sierra kompatibel. Eine andere, Sierra-freundliche Lösung ist mit Keyboard Maestro (es ist nicht kostenlos). Ändern Sie das Verhalten der Feststelltaste in Steuerung durch System Preferences-> Keyboard->, Modifier Keyswie von anderen vorgeschlagen.

Richten Sie dann in Keyboard Maestro ein Makro wie folgt ein:

  • Ausgelöst durch USB Device Key Trigger
  • Drücken Sie die Feststelltaste auf Ihrer Tastatur
  • wird einmal getippt
  • mit diesen Modifikatoren: ^
  • (Sie müssen den vorherigen Trigger für jede verwendete USB-Tastatur wiederholen.)
  • Dann fügen Sie eine Aktion hinzu Text->Type a keystroke
  • Drücken Sie die Esc-Taste
ärgerlich
quelle
1
Um es klar auszudrücken , es gibt ein Projekt namens Karabiner Elements , das auf Sierra ausgeführt wird (was ein Vorläufer einer Version von Karabiner ist, die auf Sierra ausgeführt wird). Ich habe es nicht ausprobiert, daher weiß ich nicht, ob diese Funktionalität verfügbar ist oder nicht.
Tubedogg
5
Karabiner-Elements unterstützt noch nicht das Betätigen eines Modifikator-Tastendrucks, der hierfür erforderlich wäre.
Grokfully
Diese Option 'mit diesen Modifikatoren: ^' muss nur ^zusammen mit der Feststelltaste gedrückt werden, um eine Aktion auszulösen. Es ist überhaupt nicht das, was in der Frage verlangt wird.
18.
Da die Feststelltaste zum ersten Mal über die Systemeinstellungen so geändert wird, dass sie sich wie die Steuerung verhält, wird das USB-Ereignis von KM mit gedrückter Steuertaste angezeigt. Wenn Sie den ^Modifikator weglassen , wird die Aktion niemals ausgelöst.
verärgert
Gibt es eine Möglichkeit, die Escape-Taste der Feststelltaste zuzuordnen, um die Feststelltaste wieder zu aktivieren? Ich liebe es, die Feststelltaste sowohl als Strg- als auch als Fluchttaste zu haben.
Kwas
1

Öffnen Sie dazu Karabiner Elements , das MacOS 10.12 und höher unterstützt ~/.config/karabiner/karabiner.json, und fügen Sie dem rulesArray die folgende Regel hinzu .

{
  manipulators: [
    {
      description:
        "Change caps_lock to control when used as modifier, escape when used alone",
      from: {
        key_code: "caps_lock",
        modifiers: {
          optional: ["any"]
        }
      },
      to: [
        {
          key_code: "left_control"
        }
      ],
      to_if_alone: [
        {
          key_code: "escape",
          modifiers: {
            optional: ["any"]
          }
        }
      ],
      type: "basic"
    }
  ]
}

Sie können auch versuchen, ControlEscape.spoon mit Hammerspoon zu verwenden .

Danny Guo
quelle
Ich könnte das nicht zum Laufen bringen, wenn ich nicht die Modifikatoren (Schlüsselwort und alle) im to_if_aloneAbschnitt entfernt hätte. Aber danke für den Schnipsel. Es ist super nützlich.
Michael