macOS Sierra に Karabiner-Elements 入れて「英数」キーを「Command」にして、単独で押した時は「英数」として認識させた話
2017/07/08 追記
本エントリは 2016年12月現在の情報です。それから半年+α 経って、ついに本家の Karabiner-Elements で同機能がサポートされました。その詳細を、次のエントリに記載しましたので、今後はこちらを参考にしてください。
以下、当時の情報です。
はじめに
タイトル長い。。
MAC OS Sierra がリリースされてはや3ヶ月。"そろそろアップデートしないとなー"と思いつつも、これまで Karabiner にお世話になっていたこともありなかなかバージョンアップに踏み切れずいたのですが、、先日、改めて調べてみると Karabiner-Elements でいけそうな気配を感じたので、思い切って Sierra にアップデートしました!!という、その時の話です。
すなわち、MAC OS Sierra にアップデートした後、Karabiner-Elements でタイトルのようなことをゴニョゴニョしたときのメモです。
これまで Karabiner にお世話になっていたこと
自宅のMACでは日本語キーボードを使っています。なので、別に Karabiner 使わなくても何とかなるのですが、日本語キーボードは英語キーボードに比べ、左「Command」キーの位置が左に寄り過ぎていて気に食わない、そこで、できれば「英数」キーを左「Command」キー的に利用したい。さらに単独で「英数」キーや左「Command」キーを押した時は「英数」として認識してほしいというのが私の願望でして、その願望をうまいこと叶えてくれていたのが Karabiner でございました。
また、会社では英語キーボードを使用しており、単独で左「Command」キーを押した時は「英数」として、右「Command」の時は「かな」として認識してもらわないと、なおのこと日本語切り替えに困惑する訳でありまして、やっぱし karabiner の導入は必須となってしまうのです。
今回導入した Karabiner-Elements について
「英数」キーを左「Command」キー的に利用したいというのは、本家の Karabiner-elements でも問題なく実現できるのですが、単独で「英数」キーや左「Command」キーを押した時は「英数」として認識させるということはできませんでした。
ここで諦める訳にはいかないので、さらに調査を進めてみると、wwwjfy さんが単独で何かのキーを押した場合だけ、特別な認識をさせるという、いわゆる「StandAlone Key」という機能を開発されていて、これをマージすればよさげなことが分かりました。さっそくマージだ!とビルド環境を整備していた矢先、なんと wwwjfy さんご自身でマージ版のインストールパッケージご提供されておりましたよ。至れり尽くせり、ありがたや。
ということで、「StandAlone Key」がマージされた Karabiner-Elements を Sierra にインストールしました。
Karabiner-Elements の設定内容
無事にインストールが完了したら、まず最初にキーボードの種類をきちんと設定します。現在 Karabiner-Elements の “Keybord Type” のデフォルトが、英語配列になってますので、日本語配列のキーボードを利用する場合は、"Keybord Type" を “JIS” に変更する必要があります。以下のように Karabiner-Elements の設定画面上で設定します。
続いてキースワップを設定します。今回は「英数」キーを左「Command」として認識するように設定します。こちらも Karabiner-Elements の設定画面上から行います。
そしていよいよ StandAlone Key の設定です。すなわち、単独で「英数」キーや左「Command」キーを押した時は「英数」として認識させます。これについては、Karabiner−Elements の設定画面で設定できないので、定義ファイルを直接編集して行います。定義ファイルは ~/.karabiner.d/configuration/karabiner.json *1です。これに以下の定義を追加します。
"standalone_keys" : { "left_command" : "japanese_eisuu" }
一部だけだとよく分からないので、ここまでの設定が反映された karabiner.json 全体を以下に示します。
{ "profiles": [ { "devices": [ { "disable_built_in_keyboard_if_exists": false, "identifiers": { "is_keyboard": true, "is_pointing_device": false, "product_id": 599, "vendor_id": 1452 }, "ignore": false, "keyboard_type": 42 }, { "disable_built_in_keyboard_if_exists": false, "identifiers": { "is_keyboard": true, "is_pointing_device": false, "product_id": 627, "vendor_id": 1452 }, "ignore": false, "keyboard_type": 42 } ], "fn_function_keys": { "f1": "vk_consumer_brightness_down", "f10": "mute", "f11": "volume_down", "f12": "volume_up", "f2": "vk_consumer_brightness_up", "f3": "vk_mission_control", "f4": "vk_launchpad", "f5": "vk_consumer_illumination_down", "f6": "vk_consumer_illumination_up", "f7": "vk_consumer_previous", "f8": "vk_consumer_play", "f9": "vk_consumer_next" }, "name": "Default profile", "selected": true, "simple_modifications": { "japanese_eisuu": "left_command" }, "standalone_keys" : { "left_command" : "japanese_eisuu" } } ] }
一番下にある定義が、StandAlone Key の設定ですね。。
さて、これでOKかテストして、うまくいきましたよ。今回は、「英数」と左「command」キーだけでやって見ましたが、「かな」と右「command」でも同様に設定可能です。
また、英語キーボードの場合でも、この StandAlone Key を使えば「Commnd」キー単独の時は「かな」や「英数」となるように設定できるので便利かと思います。
ご注意
このエントリは2016年12月20日時点のことなので、将来は状況が変わっているためご注意ください。
なお、wwwjfy さんの StandAlone Key 機能は、現在のところ、本家の Karabiner−Elements に Pull Request が上がっております。こちらがマージされれば、本家の正式版でも同様の設定が可能になるはずです。楽しみですね。