この投稿は ErgoDox Advent Calendar 2016 の 10日目の記事です。
IME設定の話
変わり種ErgoDox紹介の前に、昨日の@yutaszk さんの記事でIMEの話があったのでそちらのことを書いてみます。
ErgoDoxで言語入力を切り替えるには日本語の場合だとKC_LANG1
/KC_LANG2
がかな
/英数
になるのですが、そのへんは日本のコミッターのおかげのようでした。
→Can't use KC_LANG1 & KC_LANG2 key · Issue #312 · jackhumbert/qmk_firmware
このやり取りを読むとどのOSでも使えるようになったとのことだったんですが、自分のWindowsではどうにもキーコードが出力されず、結局英字配列だとだめなのかなと思いました。
で、結局どうしたのかというと @yutaszk さんと同様に変換
/無変換
を割り当てるということをやってました。キーボードの仕組みがまだ良く分からずこれで正しいのか不安だったんですが、まあとりあえずこれでよしとしてます。
非トグル かつ ワンキー化
それから切り替えについては、状態を考慮しないといけないトグル式より2キー使うほうが自分も好みなんですが、ただErgoDoxであればもっとやれるんじゃないか?と思い始め、Tap Dance actionも設定しました。
これはタップ数に応じて挙動を変えることができるアクションで、今回は
- シングルタップだと
英数
- マルチタップだと
かな
にする設定にしています。これによって非トグル式でありながら、言語切替を同じ一つのキーにまとめるということをしています。
//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)
};
→ソース
また、本来のLANGキーも合わせて出力することでMacでは普通に英数
/かな
として使えるようにしています。
ダブルタップ設定は実際に運用してみて十分実用的なんですが、親指クラスタがまだ空いてるんでそっちのタップ押しのほうに後で設定しなおすかもしれません。
というわけで、ここからは気になったErgoDox紹介です。
ミニマル化 & 親指mod
中国のtaobaoで販売されているErgoDox。
周辺キーを削ったり、親指クラスタのレイアウトを変更したりとバリエーションが多いです。
ギリギリなこの形状、めっちゃ良くないですか?
自分の場合、ErgoDoxをいつも持ち歩いてるという事情もあるんですが、周辺部のスペースが無駄に広くてかさばるのが気になってます。特に5日目の記事で書いたように要らないキーもゴリゴリ削りたいので、ミニマル化はかなりそそられます。
周辺部が野暮ったい…。サイズ半分にしたい
また、ミニマル化するということはそれだけ親指でのレイヤー切り替えも必要になるので実用的な親指キーも増やしたいという希望もあります。
こんな親指クラスタもいろいろ選べるのでいいですね。
ただ中国語なので買うのは難度が…。
with トラックボール
Ergodox Keyboard with Trackball ⌨ ∞
豪快です。
もはやセパレートではないですが、どうなんでしょう。
親指側面化
基盤をカットしてつなげ直す荒業が繰り広げられてます。
親指関節の動き的には横から握る形のほうが自然とのことなんですが、実際どんな打ち心地になるのか試してみたいところですね。
あと7日目の@ypsilon-takaiさんの記事のように基盤から作れるようになると夢いっぱいだし、買ってるだけではまだまだ消費者なんだなと思うばかりでした。