こんにちは。ここのえです。
プログラミング&デザインその他諸々の情報がメインのこのブログを見に来るような皆さんは、毎日数時間タイピングしていると思いますが……どんなキーボードを使っているでしょうか?Hyper で Hacking なキーボード?それとも Real な Force 使い?
何にせよデスクワークとなると、タイピングしている時間は一日の大半を占めるので、長い間触ることになるキーボードは相棒といっても過言ではないはずです。
かくいう私は生粋のLogicool信者なので G710+ → G913 キーボードと使ってきたのですが、この度 Ergo68 に乗り換えました。いわゆる自作キーボードというヤツです。

マイコンや左右接続用のTRRS端子がはんだ付け必須です。ただスイッチやLEDに関してははんだ付け済みなので、ほかの自作キーボードに比べるとかなり難易度は低いです。
キーボードを選定や組み立て・基本のレイアウトについて備忘録もかねて纏めてみました。自作キーボードを検討中の方の参考になれば幸いです。
選定
自作キーボードの国内での主な入手先としては、遊舎工房かBoothの個人販売がメインです。今回は遊舎工房を利用しました。
色々ある自作キーボードキットといっても様々なタイプがあるのですが、Ergo68を選定した理由はこんな感じです。
- 分割キーボード+ホットスワップ(スイッチを抜き差しで交換できる)
- 親指で押せるキーが複数ある
- カラムスタッガード (後述)
- 数字列があるがファンクションキー列がない
- ファームウェアが自分で書ける
分割キーボード+親指キーの利点
大前提として「せっかく作るなら分割キーボードにしよう」というのはずっと考えていました。
SwitchのJoy-Conを初めて使ったときに思ったのですが、左右で分割されてると自分の楽な姿勢で操作することができるので、負担がすくなくていいなあと思っていました。
また趣味のDTMとかをやっていると、机の真ん中にLaunchpadを置いたりするので、どうしても横長のキーボードが邪魔になってしまう場面が多かったです。分割の場合はキーボードの間に機材を置けるので、そのあたりを解決できるのもかなりポイントが高いです。
加えて分割にすることで、親指の位置にアホみたいなクソデカスペースバーの代わりに別のキーを配置することができるようになります。これが結構便利で、自分の場合は Backspace, Tabキーを割り当てています。もちろん英数・かなも。親指をスペースバー専用にするなんてもったいないったらありゃしないですからね。そこに指あるんだから。

カラムスタッガード
一般的なキーボードを使っているとまず遭遇しない「カラムスタッガード」というワードですが、これはキーボードのキーが縦方向にズレているようなキーボード配置のことを言います。

一般的なキーボードは横方向にズレているので、これは「ロウスタッガード」と呼ばれます。

そもそもこのロウスタッガードになっている理由ですが、タイプライターの時代に遡り、タイプライターのレバーが干渉しないようにズラした事に起因しています。
実は斜めにする意味って全くない……?
手の構造を考えると、斜めにするより縦にずらすカラムスタッガードの方が(理論上は)合理的です。あとなんか見た目がきれいですよね。揃ってるし。
ファームウェアが自分で書ける
これは私のわがままなのですが、基本的にファームウェアを自分で書きたかったのでErgo68にしたという経緯があります。市販品だとキー配列を自由自在に変えられるのですが、ファームウェアの部分まで手を入れられる製品はほとんどないんですよね……
自作キーボードで一番有名なフレームワークとしては QMK Firmware で、今回のErgo68もこれをベースに作られています。

このあたりのファームウェア関連は長くなりそうなので、また後日別記事にまとめます。分割特有の問題とかに引っかかってえらい目に遭いました……
組み立て
公式のビルドガイド通りに組み立てるだけです。かんたん。

唯一若干わかりづらい箇所があるとしたらPro Microの向きですが、LEDとかが貼られてる側にチップ側が見える向きで刺します。これを逆に差すとエライ目に遭います。電子工作は間違えると手戻りがめちゃめちゃ大変ですからね、プログラミングと違って……

ソケットにキースイッチをはめていきます。親指キーの位置だけキースイッチの向きが違うので要注意。

キーキャップを付けたら完成!
LEDをベカベカに光らせたいのと、キー印字が消えるのがイヤなのでABS系のクリアキーキャップにしました。ちなみにAmaz〇nで買ったのですが、配送トラブル(?)で数日届かずキースイッチつけたまんまで放置することに……
いや、遊舎工房の方が配送早いってそんなことある……?(これはまた別の話で……)

キーレイアウト
当然一番気になるのはキーレイアウトだと思います。
そりゃそう。全然キーボードのキー数違いますからね……
メインレイヤー (Layer 0)
基本的にこのメインレイヤーを使うようになっています。

もともと英字キーボード(ANSI配列)と日本語キーボード(JIS配列)の二刀流でやっていたので、今回はANSI配列の記号をベースに構築しています。主なこだわりポイントとしては以下の通りです。
親指キーの活用
親指のホームポジションを左右のスペースキーとして、奥に伸ばすことで Backspace, Tab をすぐに押せるようにしました。BSを多用することは言うまでもありませんが、Tabもプログラミングで補完を走らせるために頻繁使うので親指でカバーできるようにしています。
-, =を左手サイドに移行
地味に一番のこだわりポイントです。移動したTabと、うんちみたいなCaps Lockとかいうボケカスキーの代わりに - と = を配置しました。これの効果が非常にでかく、プログラミング時の代入の入力に加えて、 kebab-case や snake_case のタイピングがホームポジションからほとんど崩さずに実現できます。激アツです。
日本語の入力で伸ばし棒 ー が必要になる場面(特にカタカナ語を入力するタイミングとか)もタイプが圧倒的に早くなりました。うおーーーーーーーーーーーーーーーーーーーwwww
その他
その他にもEnterキーの位置とかBracketの配置とかで、いくつか思想強めポイントがあるのですが……争いごとを避けるためにここでは語らないようにします。気になったら教えるので個人的に連絡ください。
裏面レイアウト (Layer 1)
先ほどの表面で MO(1) と書かれているキーを押している間、この裏面レイアウトに変更できるようにしています。カラムスタッガードの本領発揮です。

十字キーの裏面にPageup/down, Home/Endを配置
Page Up, Page Down, Home, End の配置に説得力を持たせるため、表面の矢印キーの位置と対応する形でこれらのキーを配置しています。なんなら普通のキーボードより使いやすいです。
右手側に疑似テンキーを配置
Ergo68はカラムスタッガードで縦並びになっているので、テンキーと全く同じ感覚でホームポジションから手を動かさずに数字入力が行えます。ついでに本来の天気には存在しないTabキーを配置することで、スプレッドシートでの入力体験の向上も図っています。
分割キーボードは数字キーの列がない40%のキーボード (Cornix LPなど) が主流なのですが、それを避けてErgo68にした一番の理由はこれです。
その他
メディアキーの配置も行っています。やっぱり音量とかはキーボードでパッと調節できた方が便利です。Play/Pauseも頻繁に使いますし。
また右手側でホイールアップ・ダウンを付けています。テキストエディタとかでマウスを持つほどでもないけども、スクロールで前後のコードを確認したいときに重宝します。十字キーと違ってホイールだとカーソル位置が動かないので、戻ってくるときに楽です。
あとがき
ロウスタッガードからカラムスタッガードに変わると結構配置が変わるので、初日はとんでもないキータイプを起こしまくってました。「これ慣れられるのか……!?」って感じでしたが、だいたい2日ぐらいで大きなミスタイプも減りました。寿司打も平均6.5key/sぐらいまで行っているので、ロウスタッガードとそん色ないところまで来ています。(ロウスタッガードだと7.0key/sぐらいの速度で打ってます)。

特に難しいのが c b あたりのキーで、b を右手人差し指で押したりしていたため、今まで自分がアウトロータイピングをしていたことに気づかされました…… z や v は純粋に位置が違うのでちょっと苦戦しますが、慣れてしまえばそこまで影響は少ないです。寿司打より英字タイピングの練習サイトを使ったほうが良いかもしれません。
まだうまく機能していない点としては親指キーの操作で、スペースキーの位置がイマイチ親指のホームポジションになっておらず、スペースと間違えてBSを押してしまい悲惨なことになることも結構あります……。これに関しては慣れだと思います。毎日明らかに改善はされているので、2週間ぐらいあれば滑らかにキータイプできるようになるかな?とは思います。
なんとなく「ロウスタッガードは飽きてきたな……」とか、「俺の考えた最強のキー配置を使いたい」という場合、自作キーボードを試してみることをオススメします。満足度はかなり高いです。
ということで、前半の記事はここまでになります。後編はQMKコーディングお苦しみ編です。お楽しみに……
