変わり種ErgoDox紹介 + IME話

この投稿は :calendar: [ErgoDox Advent Calendar 2016](http://qiita.com/advent-calendar/2016/ergodox) の 10日目の記事です。

----

## IME設定の話

変わり種ErgoDox紹介の前に、[昨日の@yutaszk さんの記事](http://qiita.com/yutaszk/items/c78c40869e4870690910)でIMEの話があったのでそちらのことを書いてみます。

ErgoDoxで言語入力を切り替えるには日本語の場合だと`KC_LANG1`/`KC_LANG2`が`かな`/`英数`になるのですが、そのへんは日本のコミッターのおかげのようでした。

→[Can't use KC_LANG1 & KC_LANG2 key · Issue #312 · jackhumbert/qmk_firmware](https://github.com/jackhumbert/qmk_firmware/issues/312)

このやり取りを読むとどのOSでも使えるようになったとのことだったんですが、自分のWindowsではどうにもキーコードが出力されず、結局英字配列だとだめなのかなと思いました。

で、結局どうしたのかというと @yutaszk さんと同様に`変換`/`無変換`を割り当てるということをやってました。キーボードの仕組みがまだ良く分からずこれで正しいのか不安だったんですが、まあとりあえずこれでよしとしてます。

### 非トグル かつ ワンキー化

それから切り替えについては、状態を考慮しないといけないトグル式より2キー使うほうが自分も好みなんですが、ただErgoDoxであればもっとやれるんじゃないか？と思い始め、[Tap Dance action](https://github.com/jackhumbert/qmk_firmware/wiki#tap-dance-a-single-key-can-do-3-5-or-100-different-things)も設定しました。

これはタップ数に応じて挙動を変えることができるアクションで、今回は

- シングルタップだと`英数`
- マルチタップだと`かな`

にする設定にしています。これによって非トグル式でありながら、言語切替を同じ一つのキーにまとめるということをしています。

```keymap.c
//Tap Dance用enum設定
enum {
  TD_LANG = 0
};

//キーマップ
TD(TD_LANG),    KC_BSPC,    KC_DEL,     _______,    _______,

//中略

// control IME
void dance_lang (qk_tap_dance_state_t *state, void *user_data) {
  if (state->count == 1) {
    register_code (KC_MHEN);
    unregister_code (KC_MHEN);
    register_code (KC_LANG2);
    unregister_code (KC_LANG2);
  } else {
    register_code (KC_HENK);
    unregister_code (KC_HENK);
    register_code (KC_LANG1);
    unregister_code (KC_LANG1);
  }
};

//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
  [TD_LANG]  = ACTION_TAP_DANCE_FN (dance_lang)
};
```
→[ソース](https://github.com/miyaoka/qmk_firmware/blob/777ede9528efb2e63132b33f3c8f526d2573807b/keyboards/ergodox/keymaps/miyaoka/keymap.c)

また、本来のLANGキーも合わせて出力することでMacでは普通に`英数`/`かな`として使えるようにしています。

ダブルタップ設定は実際に運用してみて十分実用的なんですが、親指クラスタがまだ空いてるんでそっちのタップ押しのほうに後で設定しなおすかもしれません。

----

というわけで、ここからは気になったErgoDox紹介です。

## ミニマル化 & 親指mod

![1.jpg](https://qiita-image-store.s3.amazonaws.com/0/117743/f48cb427-6c4c-c587-8397-eaea4f360712.jpeg)

[ErgoDox Mini 人体工程学机械键盘-淘宝网全球站](https://world.taobao.com/item/535921852918.htm)

中国のtaobaoで販売されているErgoDox。
周辺キーを削ったり、親指クラスタのレイアウトを変更したりとバリエーションが多いです。
**ギリギリなこの形状、めっちゃ良くないですか？**

自分の場合、ErgoDoxをいつも持ち歩いてるという事情もあるんですが、周辺部のスペースが無駄に広くてかさばるのが気になってます。特に[5日目の記事](http://qiita.com/miyaoka/items/36301f1f451364f6b7a1)で書いたように要らないキーもゴリゴリ削りたいので、ミニマル化はかなりそそられます。

<img width="300" src="https://qiita-image-store.s3.amazonaws.com/0/117743/ad729753-8b6f-89e3-ad04-670ea5e1f854.jpeg">

*周辺部が野暮ったい…。サイズ半分にしたい*

また、ミニマル化するということはそれだけ親指でのレイヤー切り替えも必要になるので実用的な親指キーも増やしたいという希望もあります。

![layout.jpg](https://qiita-image-store.s3.amazonaws.com/0/117743/55d47238-5e4f-b103-d51a-791fbc59cced.jpeg)

![2.jpg](https://qiita-image-store.s3.amazonaws.com/0/117743/94b97ae4-1ac4-e799-c763-3722fd4f209d.jpeg)

こんな親指クラスタもいろいろ選べるのでいいですね。
ただ中国語なので買うのは難度が…。

## with トラックボール

![ergodox_keyboard_red_trackball_tray-s.jpg](https://qiita-image-store.s3.amazonaws.com/0/117743/be4275b5-e60a-a49a-d263-18f4bf3decba.jpeg)

[Ergodox Keyboard with Trackball ⌨ ∞](http://xahlee.info/kbd/ergodox_keyboard_with_trackball.html)

豪快です。
もはやセパレートではないですが、どうなんでしょう。

## 親指側面化

![IMG_20140221_121219.jpg](https://qiita-image-store.s3.amazonaws.com/0/117743/ccf00a6b-d4a2-c1f0-ccec-6c6841d960aa.jpeg)

[ErgoDox thumb cluster mod](https://geekhack.org/index.php?topic=55043.0)

基盤をカットしてつなげ直す荒業が繰り広げられてます。
親指関節の動き的には横から握る形のほうが自然とのことなんですが、実際どんな打ち心地になるのか試してみたいところですね。

----

あと7日目の[@ypsilon-takaiさんの記事](http://ypsilonbox.blogspot.jp/2016/12/ergodox-ergodox.html)のように基盤から作れるようになると夢いっぱいだし、買ってるだけではまだまだ消費者なんだなと思うばかりでした。 :innocent: