ErgoDox EZ キー配列変更メモ(Mac) 2018

ついにErgoDoxEZが届きましたー！！
嬉しい。

キーマップ変更を自分へのメモがてら残します。

```
1. GUIツールでキー配列を決める
2. GUIツールでキーボードに設定を流し込む
--- (人によってはここで終了) ---
3. 細かい設定をソースコードからコンパイルする( => 1.　のソースを改造　)
```
自分は上記の流れが一番簡単だったと感じました。

- Mac
- Homebrew

# 1. GUIツールでキー配列を決める
## キー配列をWeb上で決める

http://configure.ergodox-ez.com/keyboard_layouts/qjnvox/clone
<img width="1235" alt="スクリーンショット 2018-07-28 16.27.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/142448/fe534b32-ed6f-2ad3-fbc7-e953d183ad6d.png">

上記リンクにアクセスすると、写真のように簡単にキー配列を設定することができます。

- 編集が終わったら、`Name your layout` の部分を自分の好きな名前に変更されていることを確認
- `Compile this layout` をクリック
- `Download this layout`をクリック(場合によっては、タグを設定してからダウンロード)
-  ergodox_ez_firmware_~~.hex が手に入る

※※　最後にソースコードとしてダウンロードする可能性があるので、一応このページは残しておくか、コンパイル後に`Download this layout`ボタン下でにタグを設定しておきましょう。
※※　タグを設定しておくと、後から、右上のサーチから、自分のキー配列を探すことができます。

# 2. GUIツールでキーボードに設定を流し込む
## Teensyを入手

https://www.pjrc.com/teensy/loader.html
<img width="1189" alt="スクリーンショット 2018-07-28 16.40.09.png" src="https://qiita-image-store.s3.amazonaws.com/0/142448/579fd9cf-eb9f-f826-5ef6-04cbd727a71d.png">
上記リンクからTeensyを入手できます。
今回は`Macintosh`を選択。


<img src="https://raw.githubusercontent.com/tkmn0/media/master/ergdox_ez/teedsty.png">

リンク先で`Teensy Loader Disk Image`をクリックでインストーラーをダウンロードできるので、ダウンロード=>インストール


## Teensyを使って、hexファイルを流し込む

#### 1. キーボードをプログラムモードに変更する
---

<img src="https://raw.githubusercontent.com/tkmn0/media/master/ergdox_ez/mac_loader_3.png">
この画面が表示されたら、クリップ等でキーボードの右上の穴の中のスイッチを押してください
<img width=500 src="https://raw.githubusercontent.com/tkmn0/media/master/ergdox_ez/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202018-07-28%2017.14.45.png">
成功するとTeensyの画面が次のようになります。

#### 2. hexファイルを読み込む 
---
<img src="https://raw.githubusercontent.com/tkmn0/media/master/ergdox_ez/mac_loader_4.png">
左上の四角いボタンをクリックすると、ファイルを選択できるので、先ほどWeb上で設定し、ダウンロードしてきたhexファイルを選択します

#### 3. hexファイルを流し込む
---
 2.の画像の下向き矢印をクリックしてください。
hexファイルの書き込み（上書き）が始まります。

#### 4. キーボードのリブート
---
最後に、2.の画像の右矢印をクリックしてください。
キーボードがリブートして、変更内容が反映されているはずなので、確認してください。

以上で、細かい設定をしないのであれば、キーマップ配列の変更は終わりです。　おつかれ様でした。


# 3. 細かい設定をソースコードからコンパイルする( => 1.　のソースを改造　)
## ソースコードをコンパイルして、hexファイルを作る

#### 1. avr-gccの入手
---
Homebrew経由で行います
`brew install avr-gcc`

#### 2. ソースコードの入手
---
[ここ](https://github.com/qmk/qmk_firmware)にあります。

`cd /path_to_workspace`
`git clone https://github.com/jackhumbert/qmk_firmware.git`

#### 3.　コンパイルしてみる
---
`/qmk_firmware`
直下で
`make clean && make keyboard=ergodox_ez keymap=default`
とするとコンパイルが始まります。 成功すると、`/qmk_firmware`に`ergodox_ez_default.hex`ができているはずです。

#### 4. Webで作ったソースを使う
---
実は一番最初に行ったWeb上で作ったキー配置ですが、hexファイルとしてだけだはなく、ソースコードとしてもダウンロードできます。

<img width=500 src="https://raw.githubusercontent.com/tkmn0/media/master/ergdox_ez/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202018-07-28%2017.39.43.png">

`Download source`をクリックで、
`ergodox_ez_firmware_~~.c` が手に入ります。　
`mkdir qmk_firmwqre/keyboards/ergodox_ez/keymaps/YOUR_KEY_MAP_NAME`
YOUR_KEY_MAP_NAMEはなんでもいいです。好きな名前にしましょう。

`YOUR_KEY_MAP_NAME`直下に 先ほどダウンロードした`ergodox_ez_firmware_~~.c`
を配置してください。

コンパイルします。
`make clean && make keyboard=ergodox_ez keymap=YOUR_KEY_MAP_NAME`

これが成功したら、qmk_firmware直下に`ergodox_ez_YOUR_KEY_MAP_NAME.hex`
があるはずなので、これを、上記の Teensyの手順でキーボードに反映させることができます。

あとは、`qmk_firmware/keyboards/ergodox_ez/keymaps/default/keymap.c`のキーマップを参考にしつつ、`ergodox_ez_firmware_~~.c`
を改造してはコンパイルして反映させましょう！！

間違い等ございましたら教えていただけると嬉しいですm(_ _)m。

## キー配列作成時に役立つリンク
- [ErgoDoxのキーマップをいじる時に見るチートシート](https://qiita.com/ReSTARTR/items/970354940f49c67fb9fd)
- [JISキーボーダーもErgodoxを使いたいんです](https://qiita.com/sugarAsalt/items/df46c86804f98da556cc)

## 参考
- [Getting Started With Your New ErgoDox EZ | ErgoDox EZ](https://ergodox-ez.com/pages/getting-started)
- [ErgoDox EZのキーマップを変更する](https://qiita.com/ReSTARTR/items/f84f8f3c4c51c876cb2f)