keyball61というキーボードを買った

keyball61というキーボードを買った

プログラマの9割はキーボードから手を離さずにマウスを操作できないものかと考えたことがあるかと思います。僕も過去には視線追跡でなんとかならないかとか、ペンタブでやったら楽なんじゃないかとか試行錯誤してきましたが、今回はキーボードとトラックボールを一体化した分離キーボードとして注目していた keyball61 を買いました。

自作キーボード界隈はもちろんはんだづけなど自作スキルが求められますが、こちらには設計・販売の方による組立サービスも提供されており、僕は迷わずお願いしました。右利き用、左利き用、LEDの取り付けなど色々対応していただけます。

Ergodoxと数キーしか変わりませんが、ひとまわり小さくなり、コンパクトなサイズです。左右どちらでもPCと接続することができたり、僕はしませんでしたが、親指の部分だけをロープロファイルにすることができたりと、細かい心配りのあるキーボードです。リストレストがないとやはりボール部分が気になりますが、リストレストがあれば手の小さな僕でも手に隠れてほとんど気になりません。

類似品としてはUltimate Hacking Keyboardがありますが、トラックボールなどのポインティングデバイスの操作に難がありそうな小さいものであったこと、QMKに対応しておらず、カスタマイズ性が低そうなことがありました。

QMK

QMKは汎用のキーボードファームウェアです。多くのキーボードに対応しており、自作キーボード分野においてはデファクトスタンダードなものと思います。Ergodoxで導入して以来、すっかりこれがなくてはいけないようになってしまいました。省スペースなキーボードを使う人においては複数の機能をひとつのキーで実現することが当然必要になりますが、QMKではあらゆる配置を変えることはもちろん、複数の機能をおさめるためのレイヤ機能、タップダンスという連打の回数などによって出力キーを変えたり、キーボードに保存可能なマクロ、コンボキーなど、もうなんでもできるに近いものがあります。

今後購入するキーボードは分離キーボードであることとQMKへの対応は必須であると考えています。

REMAP

そのQMKを用いてカスタマイズする具体的な方法はいくつかありますが、keyball61はREMAPというウェブサービスからカスタマイズすることが可能です。

remap-keys.app

keyballで初体験しましたが、スムーズすぎて自作キーボード界隈の進化に驚きました。細かい設定ができなかったり、キーマップをエクスポートしておきたいというような要望はありますが、ほとんどの人の希望をこれだけで満たせると思います。

ただ僕の常用しているQMKの設定はREMAPからは設定不能、というよりREMAPが依存しているVIAが対応していない設定が必要であったため、従来のQMKをビルドする環境が必要になりました。

ErgodoxとOryx

configure.zsa.io

Ergodox EZはサポートが充実しているため、QMKの汎用ツールを使うことも可能ですが、専用のツールがいくつかあります。そのため販売もとによる専用のツールでファームウェアGUIで設定可能、ファームウェアflashGUIで可能です。基本的にErgodox使用時はこちらのツールに依存していましたが、QMKのビルド環境を自分で用意したこともありました。今回改めて環境を用意したところ、はるかに便利になっていると感じました。今はWindowsでも何も困ることなく環境を用意できます。

ビルド環境はQMK公式のビルド環境であるQMK WSLがあり、

qmk.github.io

ビルドしたファームウェアflashするのにも公式のQMK Toolboxですぐです。

github.com

以前はなんだかんだと困った記憶があったのですが、とてもスムーズで驚きました。あとはドキュメントを参照しながらこつこつ 'keymap.cconfig.h を編集するだけです。

Tap Dance

REMAPでできなくて必要だった設定はいくつかありますが、QMKの特徴的な機能のひとつにTap Danceがあります。

docs.qmk.fm

キーの連打やホールドで出力するキーを変えることができるという省スペースキーボードの使いこなしに大きく関わる機能です。連打などで変えることができるだけであって実際は任意の関数をはさめるのでなんでもできます。 僕 Ctrl-[hoge] をワンキーでやるためや各種かっこの出力に使っています。

最後にキーマップを貼っておきますが、チートシート出力に使わせてもらったREMAPが対応していないキーは全て任意キーコードとして表示されてしまうためちょっとわかりにくいです。この問題も自前でビルドすれば任意の方法で保存できるので、Githubで管理できるのも自前ビルド環境の良いところですね。

github.com