ErgoDox EZのキーマップ設定と躓いた点のメモ（親指シフトでの利用）

自宅のキーボードをErgoDox EZにしてみました。ある程度は覚悟していたものの、初めてのセパレートタイプのキーボード且つ親指シフト用に色々考えていて、結構初期設定に苦戦したので色々メモしておきます。（一応、届いて設定し当日のうちにこの記事もErgoDoxと親指シフトで書き始められたので、長期間まともにタイピングできなくなるというものでもなさそうなのでその点は安心しました・・）

# 前提

- 入力方式が親指シフトなので、結構特殊なキーマップにしています。
親指シフト自体人が少なそうなので需要が皆無な気がしないでもない。自分のための備忘録としての側面が強いです。

- また、親指シフトのキーマップの都合、JIS配列ベースで設定していきます。
- 習得が大変そうなので、複数のレイヤーは設定していません。
- Windows10環境で進めています。おそらく7でも大丈夫なはず・・。

# キーマップ設定

とりあえず初日には以下のような配列にしています。しばらく入力などしてみて、随時調整していく予定です・・

<img width="706" alt="20181125_3.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/bee04a88-f77a-2cd4-b317-9bb155eae090.png">

https://configure.ergodox-ez.com/layouts/XQZo/latest/0

設定には、上記スクショのように、ブラウザによるGUIのツール使っています。（各数字の説明は後述）
これが、英語環境前提のツールとなり、結構色々嵌ります・・
GUIではなくコマンドラインなどを経由しての設定も可能で、そちらの方は色々調整できるそうなのですが、それはそれでWin環境では躓いている方の記事をぼちぼち見かけたのと、一度設定が落ち着けばその後はもうあまり触らないだろうな・・ということで、なるべく設定が短時間で終わるようにGUIの方を選択しています。
日本語向けの記事が少なくて、最初大分大変です・・・。

設定が大変な記号関係は、後述の節でスクショと共に載せておくので、各記号設定で迷った際などにはご確認ください。

## 各キー設定

### ①編集開始

スクショ右上の「Clone and modify layout」をクリックするとキーマップのfork的なことができ、且つ内容を編集できます。（初見の時には、ここをスルーしていて編集できなくない？と悩むこと数分・・・）
なお、通常は編集する際に生成されるURLが変わりますが、たまに変わらなくなり、保存周りでトラブルになるときがあります。（対策と注意点は後述）

### ②半角全角切り替えのキー設定

英語圏のキーボード前提なので、このキーがGUI上の選択肢で見つからず、結構探しました・・・。（ネットで探してもなかなか情報が見つからないという・・）
後述する他の記号などもそうですが、記号関係は大分GUI上の表示と日本のキーボード（JIS）間で乖離しており、設定が難航します。
どうやら、SQLなんかで使うバッククォート記号もしくはCapsのものが該当するようです。
Capsは後述しますが、キーのスワップに利用したため、バッククォートのものを選択しました。

<img width="357" alt="20181125_4.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/9e19e9ce-21da-eb42-fb00-96d23c30d22e.png">

### ③左手親指位置

<img width="380" alt="20181125_5.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/7f2cc14c-4a06-0f65-e52e-7b46649e7cee.png">

特殊な感じですが、親指シフトの左の親指の配置を、親指用のキー群（十字キーなどを割り振っているキー達）とは別の、スクショ②の位置にスペースキーを設定しています。
一般的には私が十字キーを設定しているキーなどに設定している人が多い？印象がありますが、親指シフトの都合、親指のキーと他の各キーを同時打鍵して扱う必要があり、その位置にスペースなどを配置してしまうと左上・右上などのキーと同時打鍵するのが大分しんどい感じになります。（欧米の方で手が大きい方は問題なさそうな気もしますが、私には大分きつく、思いっきり手を広げたりするとホームポジションの維持がちょっとずれたり弊害が出ました）

後述しますが、寝ながら楽な姿勢でタイピングする目的で買ったので、ブラインドタッチ前提となりますが、この位置だと手の位置がずれにくく、タイピングミスも減り快適になったように感じます。

### ④[{の括弧

<img width="321" alt="20181125_6.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/b47829cd-b7ab-8eee-fce0-7565628419a6.png">

UI上のラベルと内容が異なります。
UI上の]キーが実際の[に該当します。（Shift押下時{）

### ⑤]}の括弧

<img width="330" alt="20181125_7.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/a005ce93-def2-e0fa-9b53-cdfd1d89b775.png">

UI上のバックスラッシュの記号が]記号に該当します。（Shift押下時}）

### ⑥右手親指位置

<img width="327" alt="20181125_8.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/9344cd1f-3219-b065-6415-0b3679610ee1.png">

この位置にした理由は左手親指と同様です。今までの通常のキーボードでは変換キーを割り振っていましたが、変換キーに該当するものがなさそうだったため、割り当てても問題が無さそうな右Shiftのキーを設定しています。このキーを右手親指のキーに割り振る設定は、親指シフトのエミュレーター（[やまぶきR](https://www.vector.co.jp/soft/winnt/util/se511126.html)）上で行っています。

<img width="392" alt="20181125_9.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/e0520132-6539-a78b-5cc8-671b53ab7a20.png">

### ⑦^~の記号

<img width="310" alt="20181125_10.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/50df1890-fd8b-2718-7ec5-0aecfde16d3b.png">

UI上ではイコールの記号が^の記号（Shift押下時~）となります。

### ⑧:*の記号

<img width="358" alt="20181125_11.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/cacae0bd-ebde-f5cb-3c4b-68ef1c2e0393.png">

UI上でシングルクォートのラベルのものが、:記号（Shift押下時*）となります。

### ⑨\\|記号

<img width="352" alt="20181125_12.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/a4d817aa-22c3-c17a-db04-34de570d534f.png">

\\と|（Shift押下時）の記号です。この記号もどれが該当するんだ・・と大分探しました。記号のカテゴリになくない？と思ったところ、どうやらint3というラベルのものが該当するようで・・数値のキーのカテゴリに入っていたという・・・。

### ⑩\\_記号

<img width="375" alt="20181125_13.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/a2fb8a63-3c1f-6f15-37ed-7ef4b6cfd955.png">

\\記号（Shift押下時_記号）です。この記号、探しましたがGUIでの設定では見つかりませんでした（UI上のアンダースコアはJIS配列だと他のキーになっています）。しかしながらアンダースコアが入力できないのはプログラミングで致命的です。
そこで、止むを得ず、使わないCaps Lockのキーを割り当て、別のキーのスワップ用のツール（[KeySwap for XP](https://www.vector.co.jp/soft/winnt/util/se228667.html?ds)）を使ってCaps Lockを該当の\\_キーに割り振っています。

<img width="584" alt="20181125_14.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/9e475897-4ed0-1415-3f79-8cfc91193864.png">

※最初、Caps Lockではなく使っていない右Altなどを設定してみましたが、挙動が安定しませんでした。

### ⑪@`記号

この記号、右上に配置しています。正直、慣れるまでEnterと打ち間違えがちな配置ですが、親指シフトでは左上に「。」の句読点、右上に「、」の句読点が必要で、@の記号の位置が該当するため止むを得ずここに設定しています。
一晩経ったら大分慣れてきました。きっとしばらく使っていれば問題なく使えるようになることでしょう・・・。


### 他のF5とかF7キーとかは？

現状、思い切って設定しないようにしました。あまり設定しすぎても慣れるまで時間がかかりそうですし、ミスもしそうなため、今のところ省略しています。
将来、どうしても不便そうであればNone指定になっているキーのどれかに割り振ろうと思います。

その他、日本語の文章だけでなくプログラムもこれで書き始めたら、恐らく足りない記号が出てくると思うため、その都度Noneで空けているキーに割り振っていこうと思います。

## GUIによる設定ツールは、何度も編集していると保存がされなくなっているときがあるようなので注意

一度設定を反映したら、F5などをしてから再度編集するのが良さそうです。
基本的には、同じURLにアクセスするとその設定に再度アクセスできるので、そのURLを控えておけばまた編集したくなった時に続きから編集が効きます。
しかし、何度か連続して編集・保存と繰り返していたところ、どうやら画面上では更新されており、設定ダウンロード時にも反映されているようなのですが、サーバーにうまく保存されていない？ようなケースが何度か発生しました。
F5などしてページを再読み込みするとがっかりな結果になります。（設定のやり直しは結構しんどい・・）

編集の前に一度F5してから編集を開始するようにしたところ、特にそういったトラブルは今のところ発生していません。バグでそのうち直るかもしれませんが、しばらくはF5してから触るようにします。

# クリップ的なものが必要

届いたタイミングでは把握しておりませんでしたが、キーの配置を入れ替える際には、キーボードにある小さい穴の深いところにあるボタンを押す必要があります。
日本語入力する場合にはほとんどの方がカスタマイズすると思いますが、このことを把握しておかないと、届いてすぐにカスタマイズできずがっかりな感じになります。クリップなり、裁縫針の反対の尖っていない方を使うなりが必要になりますので、コンビニなりAmazonなりでクリップなどを買っておくとスムーズです。

# 設定の反映

[ErgoDox EZのキーマップを変更する](https://qiita.com/ReSTARTR/items/f84f8f3c4c51c876cb2f#%E3%82%AD%E3%83%BC%E3%83%9E%E3%83%83%E3%83%97%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B)の記事で書かれている、Teensyというツールを使いました。上に並んでいるアイコンが左から順番に、設定ファイルのロード、設定の反映、キーボードの再起動となっているので、web上のGUIで設定・作成したファイルを読み込ませるだけです。（ただし、最初は何度も何度も再実行して、色々調整する形になります・・）

# reset のキーは一時的に設定していると楽

<img width="327" alt="20181125_15.png" src="https://qiita-image-store.s3.amazonaws.com/0/228778/e52eb2ad-f36a-adba-c306-a86782b085c4.png">

キーボードのあまり使わないキーのところにresetを設定しています。
これは何かと言うと、物理的にクリップなどでキーボードの設定用のボタンを押したときと同じ挙動になります。前述の通り、最初は快適に打てるキーマップになるまで何度も何度も繰り返し設定することになるので、設定しておかないと何度もクリップでボタンを押して・・となり、大分面倒でした。

# 左のキーボードが認識しなくなる時がある

キーマップ反映後、左のキーボードが認識してくれなくなるときが何度かありました。コードを抜いてもう一度差すか、Teensyでまた再起動したら直りました。

# 輸入は大変だった？

webサイトのUIがしっかりしていて、特に購入時は問題になりませんでした。
また、注文後4日程度で届くと連絡が来て（思ったより早かった・・）、且つそのメールでのリンクから、到着前に日付や時間帯の変更が効きました。
他の方の記事で、再配達の指定が面倒なことになった、と書かれていたので、時間帯指定ができたのは良かったです。

注意点は、到着時税金の都合で代引きで2000円程度必要になったので、そこだけ忘れずに用意しておくくらいでしょうか。

まあでも、最初は結構（住所の入力など）調べつつになったので、Amazonとかで取り扱ってくれたらいいな・・と思います。

# 実際使ってみてどう？（所感と余談）

ErgoDoxの存在自体は依然から知っていたものの、元々は[メルカリの方の記事](https://tech.mercari.com/entry/2016/06/30/181442)で興味を持ったのが最終的な購入動機です。
以前からタブレットアームでタブレットを空中に浮かせて、寝ながら記事を書いたりプログラムを書いたりしていますが、どうしても体の上にキーボードを乗せたりしていると、無理な姿勢になるのか長時間そのままだと結構体に負担がかかっているのが懸念点でした。（しかし、休日は平日に備えてなるべく体を休めたい）

ErgoDoxに変えてみたところ大分自然な姿勢で寝ながら入力ができて、確かに腕以外の負担が減ったように感じています。
腰痛とか肩こりとかその他部位の負担が減り、良さそうな感じです。
親指シフトに関しても問題なさそうですし、十字キーが親指で対応できて、手の位置をあまり変えずに大体の入力ができるのは結構気に入ってきました。

懸念としては、今までRealForceなどを長年使ってきたので、特殊なレイアウトになりタイプミスがまだRealForceのときと比べると目立つのと、最初の設定が面倒で、まだまだ日本語用の資料が少なく苦戦した、といったあたりでしょうか・・（高い買い物なので、うまく設定できて使えるようになるのか、設定中結構不安でした）
（前者はしばらく使っていれば解決しそうな気がします）

総評としては、色々ハードル高く苦戦しましたが、買ってよかった！という印象です。（緊急で必要でなければ、もう少し日本語関係が充実してからでもいいのかもしれませんけれども、私は満足）

---

おまけ

まめにキーマップを変えていっているものの、スクショの更新までは手間なので、前述のURLのものはそのままに、以下のURLでマップを更新していきます。

https://configure.ergodox-ez.com/layouts/3Na7/latest/0

- 2018-11-25 Caps のキーを、Shift + Capsに変更（Shift押さずにアンダースコアの入力になるように変更）
- 2018-12-19 コロンとセミコロンの位置を入れ替え（Pythonだとセミコロンよりもコロンの方が使う機会が多いため）
- 2018-12-30 HOMEやENDの位置が押しづらかったので、親指のキーに配置。