HHKB(US)+Win10をMacBookのように快適に使うキーバインドを設定する

# はじめに
普段US配列のMacBook Pro(OSX)を使用している人が，HHKB(US配列/無刻印)でWindows10を使うときに操作しにくく感じて，HHKB+Win10でOSXに近いキーボード操作ができるようにキーバインド等を設定したという話の自分用備忘録です．大したことは書いてませんが，もし同じ境遇の人がいたらお役に立てば幸いです．

# DIPスイッチの設定
HHKBはキーボード後部のDIPスイッチでキーボードのモード設定やいつくかのキーのキーコードを設定できます．
設定内容は以下のようになっています．

![hhkb1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/dc9709a3-2445-11f9-913e-80fa6e5d208a.png)

|SW1|SW2|モード|
|---|---|------|
|ON |ON |設定禁止|
|ON |OFF|Lite Ext. モード(PC)|
|OFF|ON |Macモード|
|OFF|OFF|HHKモード(PC)|

|SW3|キー|機能|
|---|---|---|
|ON |Del|BackSpace|
|OFF|Del|Delete|

|SW4|キー|機能|
|---|---|---|
|ON |左◇|Fn|
|OFF|左◇|左◇|

|SW5|キー|機能|
|---|---|---|
|ON |Alt<br>右◇|右◇<br>Alt|
|OFF|Alt<br>右◇|Alt<br>右◇|

|SW6|機能|
|---|---|---|
|ON |Wake Up 有効 (本体がサスペンド状態でもキーボードは電力を消費する)|
|OFF|Wake Up 無効|

今回はDIPスイッチを以下のようにSW1とSW3をONに設定しました．
Lite拡張モードに設定して，さらに「Delキー」を「BSキー」にしています．
また，Lite拡張モードのとき「◇キー」は「Windowsキー」として動作します．（Macモードのときは「Commandキー」になります．）

![HHKB2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/287a9304-950f-f2e8-e7e8-9237185ef564.png)

現状の特殊キーのマップはこんな感じです．

![hhkb3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/75f5917c-c070-b7b4-ee50-859fa8b51edc.png)


# Ctrlキーの移動
MacBookのように「Spaceキー」のすぐ左に「Commandキー」と似た機能である「Ctrlキー」を持ってきたいのでフリーソフトのKeySwapを利用してレジストリをいじって配列を変更します．
KeySwapは[こちら](http://www.asahi-net.or.jp/~ee7k-nsd/)からDLしました．

KeySwapを使って左の「Winキー」をつぶして「Ctrlキー」に変更します．
加えて自分は「CapsLockキー」が欲しかったので元々あった左の「Ctrlキー」を変更しましたが，お好みで好きに変更するといいと思います．

<img width="392" alt="keyswap.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/153a7004-93dc-5b2d-35b6-f410e5a8ea54.png">

![hhkb4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/cc44a85f-80e6-7ea5-0656-0df28da06b1e.png)

# Alt+Ctrlによる半角全角の切り替え
macbookと同じ操作感で「半角/全角」を変えたいので左Alt+Ctrlで切り替えられるようにIMEの設定を変更します．

![hhkb5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/cb071797-1eef-8be2-2493-1b29e3bdd40f.png)


タスクバーにあるIMEを右クリックして，プロパティ>詳細設定>全般と進み，編集操作のユーザー定義を変更しようとするとキーの一覧から「Alt+SPACE」は選択できませんでした．

<img width="365" alt="IME1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/28bf3f8a-78da-d167-3880-cc5ab6d9680f.png">　<img width="377" alt="IME2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/177dc8ef-1adc-070c-8793-58d7d9bad59e.png">

左「Altキー」を使わない人は上述のKeySwapなどのレジストリエディタを使ってそこも「Ctrlキー」にした上で「Ctrl+SPACE」に「IME-オン/オフ」を割り当てれば簡単で良いのですが，アプリケーションで普通に左の「Altキー」を使う人はそういうわけにはいきません．

そこでAutoHotKeyを使って「Altキー」と「Spaceキー」を同時押ししたときだけ「半角/全角キー」として動作するように設定します．
AutoHotKeyはPCの動作に対してショートカットキーを割り当てるためのソフトウェアで[ここ](https://www.autohotkey.com/)からDLできます．

また，AutoHotKeyで入力として設定するため，本来はUS配列のHHKBに「半角/全角キー」は存在しないですが，先ほどのIMEのプロパティから「半角/全角キー」でIMEのオン/オフの切り替えをできるように設定しておきます．

<img width="377" alt="IME3.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/b59d0561-9594-d644-21f7-8d9ed2306d13.png">

AutoHotKeyをインストールしたらテキストエディタに以下のスクリプトを記述して拡張子```.ahk```で保存します．

```.ahk
!Space::Send,{vkF3sc029}
```

記述内容はシンプルで「Altキー」と「Spaceキー」が入力されたときに「全角/半角キー」を送信するというもので，これによってIMEのプロパティで設定したようにIMEのオン/オフを切り替えることができます．
本当はIMEをオンにするときとオフにするときで発生するイベントが違うのですが（オンのときは```vkF3sc029```，オフのときは```vkF4sc029```），キーを送信する場合はどちらでも同じなので片方だけ記述しています．

作成したスクリプトをAutoHotKeyで実行すると左「Altキー」+「Ctrlキー」でIMEのオン/オフを変更して半角と全角の切り替えができるようになります．

PC起動時に毎回このスクリプトを実行するのはさすがに面倒なので，コンパイルして```.exe```を作成してスタートアップにショートカットを追加すればPC起動時に自動で実行されるようにできます．

# Hainのインストール
[Hain](http://hainproject.github.io/hain/)はOSXのSpotlightのような機能を提供するOSSのコマンドランチャーです．

<img width="603" alt="hain1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/b4c58fa1-1431-0d54-eed8-c265a54164e7.png">


これも例のごとく，MacのSpotlightが「Cmdキー」+「Spaceキー」で起動するように，カスタマイズ後の「Ctrlキー」+「Spaceキー」で起動するようにしたいです．

![hhkb6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/3c29452c-a9eb-b914-0ed0-227885adab43.png)


Hainの初期設定では「Altキー」+「Spaceキー」で起動するようになっているので，Hainの Preferences>General>Open/Close Toggle Shortcutから以下のように設定を変更します．

<img width="589" alt="hain2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187083/648bb932-5d35-309c-35be-28ff9f06cfe3.png">

これで「Ctrlキー」+「Spaceキー」でHainを起動することができるようになります．

「Ctrlキー」を移動したことで左の「Winキー」をつぶしてしまったので，検索からアプリケーションの起動やファイルのオープンがしにくくなってしまったかと思いますが，Hainがあれば快適です．（ちなみに右のWinキーは健在なので，ときどきたまに使ってます．）

# おわりに
この設定をしてからUS配列のmacbookに慣れてしまった私でもWindowsで快適に作業できるようになりました．各自の好みにカスタマイズする上でのご参考になれば幸いです．
好き勝手にキーマップを変えても盤面に矛盾が出ないのが無刻印キーボードの良いところだと思いますが，あまり魔改造しすぎると学校や職場で別のキーボードの使用を余儀なくされるときに発狂してしまいます．