MacBookPro で HHKB 尊師スタイル

# はじめに

色々と書き連ねるよりもまずはこちらの画像を。

![写真 2017-08-31 8 17 36.jpg](https://qiita-image-store.s3.amazonaws.com/0/48606/b1dee7ad-bc76-0829-bb56-09cfdf8ac18f.jpeg)

なぜこれを尊師スタイルと呼ぶのか、それは[リチャード・ストールマン](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%81%E3%83%A3%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%9E%E3%83%B3)がラップトップ上に HHKB を置いてタイピングしている画像が元になっている[^1]。
ハッカーおよびプログラマとしての貢献に対する畏敬の念を込め、彼のことを尊師と呼ぶことからこの名前が付けられた(と言われている、と私は解釈しております)とかなんとか・・・[^2]。

[^1]: 彼の名前を取って RMS スタイルなどとも呼ばれる
[^2]: 彼の風貌、そしてあまりのタイピングの早さから指先を写真に収めることが出来なかったため尊師という名前が付いた、という説もあるとかないとか

# 環境
* OSX El Capitan
* [Happy Hacking Keyboard Professional2 白](http://www.pfu.fujitsu.com/hhkeyboard/hhkbpro2/standard.html)
* [変換名人 USB mini5pin 右L型](http://www.henj.in/USBP_L.html)
* [サンワサプライ 巻き取り USB Aコネクタオス-mini-USB Bコネクタオス](https://www.sanwa.co.jp/product/syohin.asp?code=KU-M08MB5BK&cate=1)

# 準備
なにはともあれまずは HHKB を購入しよう、私が購入したものは **HHKB Professional2 標準の白**。
**Bluetooth®内蔵のProfessional BT**や高速タイピング性と静粛性を向上させた**Professional2 Type-S**も選択肢としていたが、
初めての HHKB 購入ということで水が合わなかった際のことも考え、エントリーとして標準モデルを選択~~、無刻印はハードルが高すぎたため敬遠~~。

# 実践
購入した HHKB を MacBookPro に直置きして完成！
・・・というわけにもいかず、色々と問題があるため解決していこう。
**MacBookPro のキーボード上に物理的に HHKB を配置することで MacBookPro 本体への影響がないとは断定できません、実践される場合は自己責任でお願いします。**

# Karabiner でキーボード切替・無効化
HHKB を MacBookPro のキーボード上に置くことで HHKB の下面がキーボードと干渉してしまう。
それも HHKB を MacBookPro の中央に置くと上手い具合に Esc キーや Enter キー、電源キーといった押されたくないキーと干渉してしまう。
そこで Karabiner を使って HHKB が MacBookPro に接続された時点で MacBookPro の内蔵キーボードを無効化しよう。

![スクリーンショット 2017-10-20 8.29.35.png](https://qiita-image-store.s3.amazonaws.com/0/48606/00496a27-75b3-dc0b-ff1a-1c554415b174.png)

こうすることで内蔵キーボードが無効化され、HHKB の入力のみが認識されるようになる[^3]。
Profiles タブにて HHKB と内臓キーボードそれぞれで Karabiner 設定を切り替えることができるため、HHKB が接続された場合は HHKB 設定を、MTG などで MacBookPro 持参で席を移動する場合など[^4]、
HHKB を接続していない時は内蔵キーボードの設定を有効化、ということが可能になる。
Karabiner アイコンがメニューバーに Profiles 名とセットで表示されるため、 HHKB 設定の場合は "HHKB" と表示される。

![スクリーンショット 2017-10-20 8.30.42.png](https://qiita-image-store.s3.amazonaws.com/0/48606/79ed9880-a24d-b853-1838-ee1d827c0016.png)

これで HHKB を心置きなく使えるわけだが、どうも HHKB 付属の USB ケーブルがモニターと干渉して邪魔くさい。

[^3]: ただし物理的にキーが干渉したままで問題ないのか、という罪悪感は解消できない
[^4]: MacBookPro と一緒に HHKB も持っていくという猛者には当てはまらないが

# 変換名人と USB 巻取りケーブル
MacBookPro 上に HHKB を置いてみたはいいが、 HHKB 付属の太い USB ケーブルがモニターと干渉して気になる。
特にターミナルを触っているとプロンプトを覗き込むことになってしまう、これはよろしくない。
ということで L字型の USB アダプタとケーブルが細く取り回しが効くペラペラの USB 巻取りケーブルを使ってこの問題を解決しよう。

![20170831081546.jpg](https://qiita-image-store.s3.amazonaws.com/0/48606/4745bac1-0aec-91cf-a5a3-4117e3bca1f8.jpeg)


![写真 2017-08-31 8 17 06.jpg](https://qiita-image-store.s3.amazonaws.com/0/48606/bb3f297d-3c3d-cb5e-5cd0-dc004d1b4636.jpeg)


変換名人のおかげで HHKB 背面の USB ポートから HHKB 本体に沿って左に USB ケーブルを接続できるようになった。
そして USB 巻取りケーブルのおかげで MacBookPro 側の USB ポートへスムーズに接続でき、余計なケーブルでデスク上を散乱させることもなくなった。

HHKB 側のインタフェースとして USB の Mini-B を使用しているが、この規格の上記2製品は家電量販店ではなかなか見つからないので注意が必要だ[^5]、というか見つからなかった。

[^5]: そろそろ新しい USB インタフェースに変更してもらいたいところではある

# Karabiner でキーマッピング
ここまで物理的に HHKB と MacBookPro との接続具合がよろしくなってきた、次は指先と MacBookPro とのインタフェースを考えよう。
普段は Scala と ES2015 で SPA の開発を行っているため基本は IDE とターミナルとブラウザを使っているが、
メモをとったりこういった記事の原稿はターミナル上で Emacs を使っている。
ということで OS 自体も Emacs ライクなキーバインドで操作できれば望ましい、そこでまたもや Karabiner の出番だ。

私が実践しているのはこちらだ。

![スクリーンショット 2017-10-20 8.30.19.png](https://qiita-image-store.s3.amazonaws.com/0/48606/0c391732-3881-dde9-fa58-ba014710c69e.png)

先に述べたキーボードの切替と Emacs モードの設定、そして日本語入力を行う際の英数/かな切替だ。
他にもキー押下を認識するミリ秒設定なども Parameters タブで設定可能だが今回は割愛する。

蛇足だが MacBookProの 内蔵キーボードを使う場合は以下のように設定している。

![スクリーンショット 2017-10-20 8.52.26.png](https://qiita-image-store.s3.amazonaws.com/0/48606/a369f28d-4a60-7a63-803d-9b02059a34c9.png)

自分にはカーソルキーや CapsLock が必要ないので無効化している。
*あんなの飾りです。偉い人にはそれが分からんのですよ。*

# bash の bind 変更
最後に、先程述べた通り普段ターミナルを使うことが多い私だが、 HHKB に変えてから Delete キーを使うことがほぼ無くなった。
基本的に C-d と C-h を使うことになり、特に C-h を個人的には多用している。
その際、 C-j が Enter に割当てられているため[^6]、C-h のつもりが C-j を押してしまうことが多々あった。
本番作業等でこの押し間違いは致命的とも言える状況を生み出してしまう可能性があったため、以下のように C-j のキーバインドを外しておいた[^7]。

```bash
$ bind -r "\C-j"
```

これを .bashrc などに書いておくと、C-j のキーバインドが外れる。

[^6]: 試しに C-m も Enter に割当てられているため同様に外してみたのだが、そうすると Enter 自体が効かなくなった・・
[^7]: そもそも Delete キーは使わないのに Enter キーは使うのか、という直球ど真ん中の指摘は否定できない

# 最後に
HHKB 吸振マットを HHKB に貼り付けた状態で MacBookPro に置いたらどういう感触になるのか、試してみたいところである。

# 20180327 追記
PFU が公式にキーボードブリッジを販売しているようだ、これを使えば物理的な干渉はなくなるはず。