キーボードを変えたら、エディタもシェルも変わった
↓の記事を書いてから1年経って、今夏いっぱい続いた自作キーボード欲も落ち着いたので、ポエムを書きます。
キーリマップの観点から見たErgodox EZ - uitspitss blog
今現在のキーボードたち、同じ配列のキーボードが4台に増えました。(画像はそれぞれの片手分)
HHKB、REALFORCE
キーボードは元々好きでしたが、KinesisのAdvantage2とかには手を出さずに、 お金のない学生時代には HHKBのLite2日本語配列 、 社会人になってからは REALFORCE 91UBK-S でそこそこ満足なキーボードライフでした。
ErgoDox EZ
メールのフォルダを見返したら、2017年の7月頃に ErgoDox EZ を使い始めていた感じでしたので、 ここでキーボードが ErgoDox EZ に変わりました。
このときに大きく変わったのは
- US配列
- レイヤー
- column staggered(指の長さの違いに合うように縦方向にキーが食い違っている)
US配列
HHKBでもREALFORCEでもJIS配列を好んで使ってました。 というのも、US配列の長いスペースバーが無駄だと思っていたからです。 これは Emacs を使う人あるあるだと勝手に思っているんですが、 Emacsではキーバインド(ショートカット)が CtrlキーとMetaキー(Opt or Cmd)と英数字キーの組み合わせになるので、 CtrlキーとMetaキーは特にタイプする頻度が高くなります。 なので、その2つのキーを親指で押せるよう、スペースバーの両隣にある 変換 と 無変換 をCtrlとMetaにマップしていました。 言わば、「親指をもっと活用したい」問題です。
ただ、ErgoDox EZは親指で押せるキーの数が12〜16個(指の長さなどで変わる)なので、 US配列で不満だった「親指をもっと活用したい」問題がハード的に解決されました。
レイヤー
ErgoDox EZのデフォルトキーマップでもレイヤーが使われていて、 何かのレイヤーにNumpad(電卓)と同じ配列になるマップがされており、 そのときは「ああ、レイヤーは便利だな」と思いました。 ただ、プログラミングで数字をタイプする機会は多いので、 英字キー上の数字列のキーで事足りて、そのマップを使う機会はなかったです。 ほかにも記号類をNumpad風にまとめているマップ等々あったのですが、 ファンクションキーを押すのにレイヤーを変えるくらいで、 初レイヤー体験は「あまり使う機会がなかった」という印象でした。
column staggered
後の項目で出てくるので、こちらでは省略です。
VScode
ここで唐突にも、キーボードではなくエディタが出てくるんですが、 Emacs から VScode にエディタを変更しました。 この以前にもEmacsからAtomやSublimeなどに変更しようかと試みましたが、 どれもEmacsキーバインドを実現するプラグイン類が完全にはキーバインドを再現できていなくて、移行はできませんでした。 ただ、Emacsのカスタマイズに時間が取られているのが苦痛には感じていたので、5月のGWに思い切ってエディタをVScodeに変えました。 それでも、キーバインド問題はすんなり解決されるわけではなく、 私はEmacsを使い始めた7、8年前からMetaキーをCmdキーに当てる変更をして使っていたので(本流はOptキーをMetaキーに当てるらしい)、 それがコピペ等々でのメジャーなショートカット、Cmd+V(EmacsでMeta+Vはpageupと同等)などと競合してしまっていました。 そして、私は諦めました。エディタをとことん自分流にカスタマイズすることを。
Emacs Friendly Keymap - Visual Studio Marketplace
を入れつつも、MetaキーはOptキーにしました。これはErgoDox EZの親指キーの多さの恩恵でした。
fish
GWに乗り換えたのはエディタだけではなく、シェルも乗り換えました。 大学時代からzshを使ってきて、途中、prezto(zshのスイーツみたいなもの)を入れたりしつつも使ってきましたが、 エディタを変更したことで、「開発環境変化何も怖くない」という変なハイテンションでfishに乗り換えました。
あらかじめ、fishのプラグインを検索できるfishermanで、 zshで使っていた機能と同等で必要になりそうなプラグインは下調べしてから乗り換えたので、乗り換え後もそこまで困りませんでした。 1つ挙げるとすれば、preztoのgit, docker関連コマンドのエイリアスがすごく使いやすかったので、それくらいでしょうか。 でも、エイリアスを覚える使い方よりは補完で絞り込むような使い方をするべきということなのかもしれません。
Minidox
このVScodeへの移行のあたりで、自作キーボードの界隈の話を見ていて、 ちょっとフットプリントが大きいErgoDox EZから乗り換えられそうなキーボードを探していました。 そこで、Ergo42 というortholinear(キーが格子状に並んだ)キーボードを見つけて、 ErgoDox EZで慣れた片手で横7列のキーが並んだ配列のままで使えるので、 ErgoDox EZとの併用ができると思って、キットを購入して作りました。
ErgoDox EZに慣れている状態だと、初めてのortholinearはタイプするときにやはり違和感がありました。 そして、親指キーの位置がどうしてもストレスがありつつのタイプになる印象がありました。 ただ、ortholinearで凄まじいタイプスピードの人もいたりするので、これは本当に個人の好みの問題かなと思います。
ということで、ortholinearは止めて、Ergo42でキーマップを変えたりして試行錯誤をしながら、以下のような条件に合うキーボードを探しました。
- column staggered
- 片手で最低3個以上の親指キーがストレスなくタイプできる
- 必要最小限のキーだけ
- レイヤーを活用できる
- チルト(テンティング)できる
それで、見つけたのが Minidox でした。
qmk_firmware/keyboards/minidox at master · qmk/qmk_firmware · GitHub
qmkは自作キーボードでスタンダードになっているファームウェアですが、
そのリポジトリの readme.md
ですでにチルトしてある画像が載っている!ということで、
PCB等を注文してビルドしました。そのあたりは、以下の記事に書きました。
minidoxをビルドした備忘録(材料調達等) - uitspitss blog
column staggered
やはり自分にはこちらが合っていました。 column staggeredは少しの違いですが、まさにエルゴノミクスだと思います。
親指キー
どなたかの記事で見かけたのですが、小指に近い方にある親指キーは少し窮屈に感じるという感想を見かけて、 やはり、私が使い始めたときも若干そのような印象がありました。 今は、キーボード自体の小指側を手前側に引き出して、ストレスなくタイプできるようになりました。
必要最小限のキー
これはErgo42でキーマップの試行錯誤をしているときに、小指で押すmodifierキー(ctrlキー等)は、 「親指キーのところにマップしていて重複するので、不要なのでは?」と思い、思い切って切り捨てました。 結果としては、慣れるまでは少し辛かったです。無いキーを小指でタイプしようとして、空を切ることが何度もありました。 慣れてからは、小指の酷使度も下がり、小指くんも待遇改善されて喜んでおります。
レイヤー
Minidoxも通常は他のミニマルなキーボードと同じように、QWERTY(ローマ字が主なレイヤー)、RAISE, LOWER, ADJUSTの4レイヤー構成です。 渡しの場合は親指キーの6キー以外には、レイヤーごとのマップができるようにしてあるので、30キー×4レイヤーで120キー分ということなります。 現時点では、全体の80%~90%に何かしらのマップが当たっている感じです。 ここは想定通りかなと思います。Ergo42でのキーマップ素振りが効きました。
チルト(テンティング)
これは、Minidoxのケースのリポジトリがあって、そのデータを遊舎工房することで、実現できました。
Cases/Minidox at master · dotdash32/Cases · GitHub
このMinidoxのビルドの後、Crkbdの外側1列落としでMinidoxが作れるようになっていた事に気づきました。 その際に、このMinidoxケースのボルト法を流用して、Crkbd改造のMinidoxケースを遊舎工房しました。
チルト方法はボルト法以外にも、チルトしている台を自作したりする方法もあるみたいなので、チルトは追々なんとでもなるのかなと思いました。
ということで、私の貯金が傷付いた以外は、乗り換え大成功でした!
Minidoxで修行
もうすでに、家では3台をメインで使っていたり、仕事場には1台持ち込みして使ったりもしていますが、 2019年はMinidoxで戦っていくために、キーマップをちょいちょい変更しながら、効率があげられるように修行しています。
最近、「キーボードを変えて効率上がりましたか?」と聞かれて、「前と同じくらい」と答えました(ちょっと悔しい…)。 確かに効率が上がったかは今の所微妙ですが、指が攣りそうになることはなくなりました。 前使っていたのがリアフォだったんですが、それでも結構無理がかかる運指をしていたのかなと、その時ふと思いました。 これからの修行で効率も上げられるように頑張ります。
キーマップを含めてのMinidoxの使用編は、また年内に書きたいと思います。 現在、ウィンドウの位置変更のショートカットをマップしてテスト使用中なのと、 tmux絡みで冗長なキーマップが出そうでそれをしたくないなぁと思っているところです。