LoginSignup
11
11

More than 5 years have passed since last update.

Karabiner-Elementsで特定アプリ以外のキーマップを変更する

Last updated at Posted at 2017-07-27

環境

  • MacBook Pro 2016 日本語キーボード
  • USB日本語キーボード
  • macOS バージョン10.12.5
  • Karabiner-Elements バージョン0.91.10

前置き

Macで本格的に開発を行うようになって数ヶ月。
当初、外付けキーボードを使っているとCommandキーの位置が微妙だなぁと感じていたんですけど、やはり郷に入れば郷に従え?ということで、「慣れる方がいいのでは」と思ってました。

ところが茶軸のキーボードを使っているのでCommandキーに割り当てられたWindowsキーが重い。ひところ話題になった「スマホ指」みたいに「Command指」になってしまうのではないかという懸念が拭いきれなかった(そこまで大げさではないが痛い)ので、やっぱキーバインドするしかないな、となりました。

変換/無変換を日本語入力切替のためにいれていた Karabiner-Elements を起動します。

左Controlを左Commandに設定して…
よし完了!

いやダメじゃん。
ターミナルアプリはiTerm2を使っていたんですけど、ControlがCommandになってしまったので、いままでのキー配置で使えない。それどころかWindowsキーがCommandなので、これで1日中開発していたらより激しいCommand指になってしまう。
これは困る。

仕方がないのでiTerm2の方のキーマップでCommandキーをControlキーに変更。
「入れ替えたものをまた入れ替えるって、なにをやってるんだ」という気持ちになりましたが仕方がない。

よし完了!

いやダメじゃん。
CommandキーがControlキーになっているのでCommand+Tabのアプリ切り替えが出来ない。

うーん。どうしましょう。

そうだ。
iTerm2以外のアプリは変更する。iTerm2は変更しない。
これだ。

frontmost_application_unless を使おう!
ということで設定です。

設定

1.設定ファイルを作成する

$ vim ~/.config/karabiner/assets/complex_modifications/iterm.json

ファイル名はなんでもかまいません。わかりやすいものをつけてください。

2.以下の内容を記述し、保存。

frontmost_application_unless は今回の目的であるiTerm2を指定しています。

iterm.json
{
    "title": "iTerm settings",
    "rules": [
        {
            "description": "left_control to left_command(without iTerm)",
            "manipulators": [
                {
                    "type": "basic",
                    "from": {
                        "key_code": "left_control",
                        "modifiers": {
                            "optional": [
                                "any"
                            ]
                        }
                    },
                    "to": [
                        {
                            "key_code": "left_command"
                        }
                    ],
                    "conditions": [
                        {
                            "type": "frontmost_application_unless",
                            "bundle_identifiers": [
                                "^com\\.googlecode\\.iterm2"
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

3.Karabiner-Elementsを起動し、Complex Modifications タブをクリック

4.Add rule をクリック

5.iTerm settings - left_control to left_command(without iTerm) の Enable をクリック

よし完了!(今度こそ)

私はMacBookのキーは変更して欲しくないので Devices で Apple Internal Keybord/Trackpad のチェックは外しています。ここは好みで。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11