Caps Lockをエスケープとコントロールの両方に再マップするにはどうすればよいですか?


22

私は通常Linuxを実行しています。私はVimを頻繁に使用するため、Escapeキーは非常に重要です。他のキーボードショートカットもよく使うので、Controlも「キー」です。Linuxでは、xcapeを使用して、Caps Lockキーを単独で押す場合はEscapeに、別のキーと組み合わせて押す場合はControlにマップすることでこれを解決しました。これにより、両方の長所が私の小指にすぐ届くようになります。Macでこれを行う方法はありますか?

回答:


19

はいカラビナ(以前のKeyRemap4Macbook)を使用します。

まず、キーボードの環境設定ペインに移動し、「修飾キー…」をクリックして、Caps LockをControlに変更します。次に、カラビナに移動してこのオプションを検索します。

Control_LからControl_L
      (+ Control_Lのみを入力した場合、エスケープを送信)

それを確認すれば、完了です。Karabinerを使用すると、(今ではまったく役に立たない)エスケープキーを、さらに多くのキーバインドでハイパーキーにマッピングするなど、より多くの興味深いことができます。


escをcaps lockに再マップし、caps lockを制御してエスケープするようにマップすることは可能ですか いつか、大文字の長い文字列を入力するためにCaps Lockを使用する必要があると感じています。
アーロンシェン

Karibinerは、OSXキーボード設定でCaps Lockを「No Action」に変更し(Controlに設定するのではなく)、Karabinerの姉妹プログラムであるSeilを使用して再マッピングを行うように指示します。上記の答えの最後の部分(Control_Lのみを入力した場合...)は、カラビナで引き続き行われます。
ScoBe

@AaronShenはエスケープをcaps lockに再マップするだけです;-)。
2015年

@ScoBe私は、あなたが本当にセイルを必要としない、ということに対してお勧めしたい
ヴェン

KarabinerのKey Overlaid Modifier> Timeoutパラメーターを1000msから200msに減らすことをお勧めします。キーを押しながら考えを変えて放すと、エスケープを起動したくありません。
joeytwiddle

16

Karabinerは現在、MacOS Sierraと互換性がありません。もう1つのシエラフレンドリーなソリューションは、Keyboard Maestroを使用することです(無料ではありません)。他の人が示唆しているように、Caps-Lockキーの動作をControl through System Preferences-> Keyboard->に変更Modifier Keysします。

次に、Keyboard Maestro内で、次のようにマクロをセットアップします。

  • 引き起こされた USB Device Key Trigger
  • キーボードのCaps-Lockキーを押します
  • 一度タップされる
  • これらの修飾子: ^
  • (使用するUSB​​キーボードごとに前のトリガーを繰り返す必要があります)
  • 次に、アクションを追加しますText->Type a keystroke
  • Escを押す

1
明確にするために、Sierraで実行されるKarabiner Elementsというプロジェクトがあります(Sierraで実行されるKarabinerのバージョンの前身です)。試したことがないので、この機能が利用可能かどうかはわかりません。
tubedogg

5
Karabiner-Elementsは、これに必要な修飾キータップの操作をまだサポートしていません。
悲惨な

このオプション「これらの修飾子:^」^を使用するには、アクションをトリガーするためにcapslockと一緒に押す必要があります。それは質問で必要なものではありません。
defhlt

最初にCaps-Lockを変更してシステム環境設定からControlのように動作するため、KMはControlキーが押された状態でUSBイベントを認識します。^修飾子を省略すると、アクションはトリガーされません。
悲惨なことに

キーボードマエストロルートに移動する場合、Caps Lock機能を回復するためにエスケープキーをCaps Lockにマップする方法はありますか?ctrlとエスケープの両方としてキャップをロックするのが大好きです。
クバス

1

macOS 10.12以降をサポートするKarabiner Elementsでこれを行うには、を開き~/.config/karabiner/karabiner.json、次のルールをrules配列に追加します。

{
  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"
    }
  ]
}

ControlEscape.spoonHammerspoonで使用することもできます。


to_if_aloneセクションの修飾子(キーワードとすべて)を削除しない限り、これを機能させることはできませんでした。しかし、スニペットに感謝します。とても便利です。
マイケル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.