7月1日追記、GUIの画面で英かな切り替えが設定できるように!

Karabiner-Element - How to use complex modifications

Karabiner-Elements 0.91.5 にて、GUI画面での英かな切り替え設定が実装されました! とりあえず⌘英かなから乗り換えたいという方はこれで楽にできて良さそうですね。 ただし、事前に用意されているルール(2017年7月1日現在は7個)の中から選ぶことしかできなさそうです。ポチポチ操作だけでインポートできる complex_modifications の設定はこちらから見ることができます↓

Karabiner-Elements complex_modifications rules

自分で修飾キーつきホットキーのカスタマイズを行いたい場合は、以下の方法で設定ファイルを編集する必要があります。

追記おわり


Karabiner-Elements not implemented yet

macOS Sierra のUSキーボードを使っている全日本人に朗報です。Karabiner-Elements beta (0.91.4) で修飾キーつきのホットキーが使えるようになっていました。これで英/かな切り替えも実現できる。もう、⌘英かなHammerspoonもいらない。人々が Karabiner を使って幸せに暮らしていたあの時代がまたやってきます。

左右のコマンドキーを単体で押した時に英数/かなを切り替えるようにする

USキーボードの日本語ユーザー必須の機能を Karabiner-Elements で実現する方法です。まだGUIでの設定画面は未実装のため、設定ファイルを直接書き換える必要があります。

1. Karabiner-Elements をインストール

こちらのインストールガイドに沿ってインストール

2. ベータ版をインストール

Karabiner-Elements を起動し、Preferences → Misc からベータ版をインストールします。

3. キーボードタイプを指定

Preferences → Virtual Keyboard の Keyboard Type を確認します。USキーボードの場合は ANSI

4. 設定ファイルを編集する

2017年6月29日現在、GUIの画面では “complex_modifications” という One-to-Many / Many-to-One な設定は行なえません。~/.config/karabiner/karabiner.json を開き、手でJSONを編集します。英かなを左右のコマンドに設定するには、“simple_modifications” と同じ階層に、以下の設定を追記。

           "complex_modifications": {
                "rules": [
                    {
                        "manipulators": [
                            {
                                "type": "basic",
                                "from": {
                                    "key_code": "left_command",
                                    "modifiers": {
                                        "optional": [
                                            "any"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "left_command"
                                    }
                                ],
                                "to_if_alone": [
                                    {
                                        "key_code": "lang2"
                                    }
                                ]
                            },
                            {
                                "type": "basic",
                                "from": {
                                    "key_code": "right_command",
                                    "modifiers": {
                                        "optional": [
                                            "any"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "right_command"
                                    }
                                ],
                                "to_if_alone": [
                                    {
                                        "key_code": "lang1"
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }

これで、⌘英かな で行われるように、⌘単発では英/かな、複数と組み合わせて押すと⌘というようになります。ちょっと設定が長いですが、toto_if_alone という名前からやれることの雰囲気察せるかと思います。特に再起動とかせずいきなり使えるようになるみたいです。

左 ctrl + h / j / k / l で上下左右に移動

これは自分の場合絶対外せない設定。左ctrlにhjklで上下左右カーソル移動ができるようにしています。右下の小さい矢印まで移動する必要が無いので、これができるとかなり楽です。今までは Hammerspoon で lua を書いて実現していました。これを Karabiner-Elements で実現するには以下の “complex_modifications” を追記します。

            "complex_modifications": {
                "rules": [
                    {
                        "manipulators": [
                            {
                                "type": "basic",
                                "from": {
                                    "key_code": "h",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "left_arrow"
                                    }
                                ]
                            },
                            {
                                "type": "basic",
                                "from": {
                                    "key_code": "j",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "down_arrow"
                                    }
                                ]
                            },
                            {
                                "type": "basic",
                                "from": {
                                    "key_code": "k",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "up_arrow"
                                    }
                                ]
                            },
                            {
                                "type": "basic",
                                "from": {
                                    "key_code": "l",
                                    "modifiers": {
                                        "mandatory": [
                                            "left_control"
                                        ],
                                        "optional": [
                                            "caps_lock"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "right_arrow"
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }

めちゃくちゃ長くて見づらいのは仕方ないですね。この公式exampleにいろいろな設定例がありますので、ここを見ながら書いてくといいと思います。

既知の問題

The Fn key of Macbook 2016 with Touchbar broken #543

TouchBar 付き MacBook Pro では、Fn キーを押してもファンクションキーがでなくなります。そのうち直るかもですが、もうファンクションキー専用のキーなんて必要ないでしょ。自分は普段 ErgoDox というキーボードを使っているのですが、このキーボードにはそもそもファンクションキー相当のキーの位置が存在していません。TouchBar 付き MacBook Pro に切り替えてからというものの本格的にファンクションキーは使わなくなっていました。どうせタッチタイピングするなら TouchBar にキーがあるのはキツすぎだし、complex_modifications に対応した Karabiner で適当に control + [数字キー] あたりに設定すればよいのではないでしょうか。

寄付先

いやーほんと嬉しい、⌘英かなは定期的に再起動しないとなんか使えなくなるし、Hammerspoonももっさりすることがあって困ってた。Karabinerは速くて相当快適になりますね。

支援 - Karabiner - OS X用のソフトウェア

作者さまには上記のリンクから寄付を行うことができます。