Mastodon
Zdjęcie okładkowe wpisu Hyper Key w Karabiner Elements

Hyper Key w Karabiner Elements

4
Dodane: 7 lat temu

Kiedyś, dawno temu, prawdopodobnie w innej galaktyce, były klawiatury, które posiadały inne klawisze modyfikujące niż te, które znamy dzisiaj. Poza wszelkimi Command, Control, Shift i Alt/Option, były jeszcze Super, Meta i wspomniany Hyper. Nazwa tego ostatniego została wykorzystana do nazwania kombinacji klawiszy na Macu.

Hyper Key to nic innego jak równocześnie wyzwolony skrót Shift + Control + Alt/Option + Command. Takie skróty często wykorzystuje się na przykład w aplikacjach typu Keyboard Maestro, aby nie kolidowały z systemowymi skrótami.

macOS Sierra zmieniło parę rzeczy w kwestii obsługi klawiatur i Karabiner przestał funkcjonować. Autor tego programu na szczęście wypuścił Karabiner Elements, który powoli się rozwija (jest napisany od zera) i wprowadza coraz więcej funkcji. Jego ostatnia beta pozwala na przywrócenie Hyper Key pod klawisz Caps Lock.

Wymagania

Aby zainstalować najnowszą betę Karabiner Elements, należy wejść do preferencji programu i w zakładce Misc kliknąć w przycisk Check for beta updates. Jak widać, moja wersja jest za stara!

Przepis

GUI programu nie wspiera jeszcze obsługi nowych funkcji, więc trzeba to zrobić na piechotę, edytując plik konfiguracyjny. Znajduje się on w ~/.config/karabiner/karabiner.json. Zróbcie sobie kopię tego pliku, abyście mieli do czego wracać, jeśli go „popsujecie”.

Mój plik wygląda następująco:

{
  "global": {
    "check_for_updates_on_startup": true,
    "show_in_menu_bar": false,
    "show_profile_name_in_menu_bar": false
  },
  "profiles": [
    {
      "devices": [],
      "fn_function_keys": {
        "f1": "display_brightness_decrement",
        "f10": "mute",
        "f11": "volume_decrement",
        "f12": "volume_increment",
        "f2": "display_brightness_increment",
        "f3": "mission_control",
        "f4": "launchpad",
        "f5": "illumination_decrement",
        "f6": "illumination_increment",
        "f7": "rewind",
        "f8": "play_or_pause",
        "f9": "fastforward"
      },
      "name": "Default profile",
      "selected": true,
      "simple_modifications": {
        "right_command": "right_option",
        "right_option": "right_command"
      },
      "virtual_hid_keyboard": {
        "caps_lock_delay_milliseconds": 0,
        "keyboard_type": "ansi"
      }
    }
  ]
}

Aby dodać do niego kod dla Hyper Key, należy wstawić poniższy kod do działu profiles.

"complex_modifications": {
        "rules": [
          {
            "manipulators": [
              {
                "description": "Caps Lock to Hyper. Escape key on single tap.",
                "from": {
                  "key_code": "caps_lock",
                  "modifiers": {
                    "optional": [
                      "any"
                    ]
                  }
                },
                "to": [
                  {
                    "key_code": "left_shift",
                    "modifiers": [
                      "left_command",
                      "left_control",
                      "left_option"
                    ]
                  }
                ],
                "to_if_alone": [
                  {
                    "key_code": "escape",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  }
                ],
                "type": "basic"
              }
            ]
          }
        ]
      },

Mój finalny plik konfiguracyjny, z dodanymi zmianami, wygląda tak:

{
  "global": {
    "check_for_updates_on_startup": true,
    "show_in_menu_bar": false,
    "show_profile_name_in_menu_bar": false
  },
  "profiles": [
    {
        "complex_modifications": {
        "rules": [
          {
            "manipulators": [
              {
                "description": "Caps Lock to Hyper. Escape key on single tap.",
                "from": {
                  "key_code": "caps_lock",
                  "modifiers": {
                    "optional": [
                      "any"
                    ]
                  }
                },
                "to": [
                  {
                    "key_code": "left_shift",
                    "modifiers": [
                      "left_command",
                      "left_control",
                      "left_option"
                    ]
                  }
                ],
                "to_if_alone": [
                  {
                    "key_code": "escape",
                    "modifiers": {
                      "optional": [
                        "any"
                      ]
                    }
                  }
                ],
                "type": "basic"
              }
            ]
          }
        ]
      },
      "devices": [],
      "fn_function_keys": {
        "f1": "display_brightness_decrement",
        "f10": "mute",
        "f11": "volume_decrement",
        "f12": "volume_increment",
        "f2": "display_brightness_increment",
        "f3": "mission_control",
        "f4": "launchpad",
        "f5": "illumination_decrement",
        "f6": "illumination_increment",
        "f7": "rewind",
        "f8": "play_or_pause",
        "f9": "fastforward"
      },
      "name": "Default profile",
      "selected": true,
      "simple_modifications": {
        "right_command": "right_option",
        "right_option": "right_command"
      },
      "virtual_hid_keyboard": {
        "caps_lock_delay_milliseconds": 0,
        "keyboard_type": "ansi"
      }
    }
  ]
}

Karabiner Elements powinien natychmiast uwzględnić nową konfigurację, po zapisaniu edytowanego pliku karabiner.json, bez konieczności restartu programu.

Na koniec trzeba jeszcze wyłączyć systemową funkcję Caps Locka. Aby to zrobić, należy wejść do Preferencji Systemowych → Klawiatura i wcisnąć na dole Modifier Keys, a następnie wybrać No Action dla Caps Locka.

Jeśli coś Wam nie działa, to sprawdźcie:

  • czy na pewno wykonaliście każdy krok powyżej,
  • czy struktura karabiner.json jest prawidłowa,
  • czy Karabiner Elements jest w wersji 0.91.3 lub nowszej,
  • czy nie używacie już Caps Locka do czegoś innego,
  • czy nie używacie więcej niż jednej klawiatury, bo wtedy trzeba powyższe zmiany zdefiniować dla każdej osobno.

Co teraz robi Caps Lock?

Jednokrotne naciśnięcie Caps Locka / Hyper Key symuluje klawisz Escape (ESC). Docenią to posiadacze MacBooka Pro z Touch Barem.

Przytrzymanie klawisza Caps Lock (Hyper) i wciśnięcie innego klawisza, np. n, wywoła skrót ShiftControlAlt/OptionCommandn.

Smacznego!

Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki, mechaniczne klawiatury i zwinne samochody.

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 4

Witam, znalazłem nowszą dyskusję o tym programie więc ponawiam pytanie tutaj. Czy Karabiner Elements potrafi zamienić dowolny klawisz na klawisz modyfikacyjny? np. “z” na Alt, “2” na Cmd itd. ???