HHKB & Windows使いがKarabiner-Elementsの設定をしてみた
こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。
私は普段「Macbook Pro」を利用しているのですが、実はほとんどの開発作業は「VMWare Fusion上のWindows 10」で実施していました。一方で、最近はM1 Macが出てきたり、VMのWindowsの調子がいまいち良くなかったりすることもあり、いい加減Windowsから出てこようと一念発起をして環境整備をしています。
改めて考えると、私がMacを利用する上でのハードルとしては、「キーボードのショートカットが変わるのが辛い」というのがありました。特に長年利用している「Ctrl+c」、「Ctrl+v」などの「Ctrl」を利用するショートカットです。
これについて「Karabiner-Elements」というアプリを利用すれば解決できそうというのがわかったので、脱Windowsをするべく色々設定をしてみました。
前提
私の環境は以下になります。
- キーボード
- 内蔵
- 英字配列
- 外付け
- HHKB Professional BT 英語配列/墨
- (いつか HYBRID Type-S に買い替えたい)
- 内蔵
- OS
- MacOS Catalina
- VM
- VMware Fusion
キーボードはHHKBを利用しており、普段はクラムシェルモードでこちらだけを利用しています。また、DIPの設定は以下に設定しています。
SW1 | SW2 | MODE |
---|---|---|
OFF | ON | Macintosh |
SW | ON/OFF | MODE |
---|---|---|
SW3 | ON | Delete='BS' |
SW4 | ON | Left◇='Fn' |
SW5 | OFF | ◇='◇',Alt='Alt' |
SW6 | OFF | Wake Up Disable |
ON
にしていて設定に関係ありそうなのは、SW4
の設定です。当エントリについてはこの設定を前提としています。
また、開発時には主に以下を利用しているので、このあたりをうまく動かしたいです。
- Chrome
- Visual Studio Code
- VM(Windows 10)
Windows 10はあまり使わなくする想定ですが、環境としては残しておき、必要に応じていままで通りの操作をできるようにしたいと考えています。
では、この前提で始めていきます。
Karabiner-Elementsのインストール
こちらは公式サイトからダウンロードしてインストールするだけです。
Karabiner-Elementsの設定
設定ファイルとして下記のkarabiner-conf.json
というファイルを作成し、~/.config/karabiner/assets/complex_modifications/karabiner-conf.json
に配置しました。
配置後に、Karabiner-Elementsの設定画面を開き、「Complex modifications」タブの「Add rule」から追加したものを「Enable」ボタンで有効化します。
【クリックでコードを展開/閉じる】
{ "title": "Karabiner Settings", "rules": [ { "description": "left_control to right_command(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "left_control", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "right_command" } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] }, { "description": "right_command to left_control(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "right_command", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "left_control" } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] }, { "description": "Home Key(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "home" }, "to": [ { "key_code": "left_arrow", "modifiers": ["right_command"] } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] }, { "description": "End Key(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "end" }, "to": [ { "key_code": "right_arrow", "modifiers": ["right_command"] } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] }, { "description": "shift+space to input control(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "spacebar", "modifiers": { "mandatory": ["left_shift"] } }, "to": [ { "key_code": "spacebar", "modifiers": ["left_control"] } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] }, { "description": "Pan Screen Right(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "right_arrow", "modifiers": { "mandatory": ["right_command"] } }, "to": [ { "key_code": "right_arrow", "modifiers": ["left_control"] } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] }, { "description": "Pan Screen Left(without VMWare)", "manipulators": [ { "type": "basic", "from": { "key_code": "left_arrow", "modifiers": { "mandatory": ["right_command"] } }, "to": [ { "key_code": "left_arrow", "modifiers": ["left_control"] } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.vmware\\.fusion" ] }, { "type": "device_if", "identifiers": [ { "vendor_id": 1278, "product_id": 514, "description": "HHKB-BT" } ] } ] } ] } ] }
主な設定について
主な設定としては以下の通りです。
Ctrl
キーとCommand
キーの入れ替え- これが主に設定したかったものです。
Home
キーとEnd
キーの設定- Macにはないらしいので、好みで設定しています。
Shift+Space
キーでのIME切り替え- 個人的にこのキーをIMEの切り替えに利用しているので、設定しています。
- スクリーンのパン設定
- これがちょっと設定に苦労しました。元々は
Ctrl+Fn+矢印の設定されているキー(;など)
の組み合わせです。
- これがちょっと設定に苦労しました。元々は
また、全体的に「VMware Fusion
では無効」とし、「ハードウェアはHHKB
に限定」とするようにしています。(かなり冗長な記述なので、できれば改善したい…)
設定したデバイスIDなどの情報については、Karabiner-Elementsのインストール時に同時にインストールされたKarabiner-EventViewerで確認できました。
また、Karabiner-Elementsの設定として「Function keys」の設定は特に特殊な割り当ては不要(むしろ困る)だったので「Use all F1, F2, etc. keys as standard function keys」はON
にしています。
その他の設定について
その他、以下のような設定も実施しました。
VS Codeのキーボードショートカット
こちらについては、以下のエントリを参考にさせていただき、設定はまるっとそのまま適用しています。
Spotlight検索
ちょっとSpotlight検索がやっかいで、VS Codeでコードを書いている時に.
の後でショートカットキーでサジェスト表示させたい場合、Spotlight検索が同時に表示される事象がありました。(こちらも上記エントリで言及されていました
こちらについては、Macのキーボードショートカットを設定し、Shift+Command+Space
に変更して対応しました。(実際に押すキーはShift+Ctrl+Space
)
まとめ
以上、Windows使いがKarabiner Elementsの設定をしてみました。これで大体困らずに作業ができているので、しばらく様子をみつつ、なにかあったら追記していきたいと思っています。
どなたかのお役に立てば幸いです。それでは!