Keyball44 を組み立てた
はじめに
年末年始にやりたいことの一つにキーボールの組立てがあった。組み立てたキーボードは Keyball44。自作キーボードをしたことがある、検討している人にとっては有名なキーボードだと思う。
普段遣いのキーボードとして Keyball66 を持っているが、キー数が多い利便性と打鍵感に寄せた作りとしているので見た目重視で Keyball を一つくらい組みたいと思っていた。また、キー数の少ないキーボードを使う機会を徐々に増やしていったところ、キー数は 40 と少しあればは十分ということがわかってきた。複数のレイヤーを使いこなすことを覚えれば Keyball39 でも十分な可能性はあるが、左手が 5 列のキーボードはこれまで使ったことがないのでまずは Keyball66 と同じ列数の Keyball44 を使ってみることにした。
今回は打鍵感よりもコンセプト重視で一旦は作ってみる。コンセプトは明確で白で統一することを目指す。
2025/01/04 時点ではケース、トラックボールが届いていないためすべてが揃ったら記事の更新予定。
構成
今回の構成は以下。前述の通り色はすべて白で統一した。
パーツ | 製品名 | 価格 |
---|---|---|
本体 | Keyball44 | 24,800 円 |
キースイッチ | HC Studio HMX Xinhai Linear Switch 37g | 3,861 円 (99 円 × 39 pcs) |
キースイッチ | Lofree Ghost switch / linear (90pcs) | 8,800 円 (90 psc) |
キーキャップ | F10 (Flat Keys) | 9,438 円 (242 円 x 39 pcs) |
キーキャップ | Chocfox CFX - Keycaps For Choc Switch 1U keycap white / 10pcs | 550 円 |
トラックボール | keyball 25mm用トラックボールケース【カラーオプションあり】 - 3Dプリンター工房 - BOOTH | 1,500 |
ケース | keyball 25mm用トラックボールケース【カラーオプションあり】 - 3Dプリンター工房 - BOOTH | 1,750 |
ケース | Keyball44 Case - Training&KBD - BOOTH | 5,500 円 |
ケース | Keyball OLED カバー - Training&KBD - BOOTH | 2,200 円 |
合計 58,399 円也。
高すぎでは…。
ケースを買わずにキーキャップを無難な価格のものにすれば 35,000 円くらいまで抑えられるはず。もしくは 3D プリンタが家にあれば…。
写真
構成に載せた物がすべて届いたら写真載せます。
トラブル
キーボードを組むのは何個目かわからないが、何回やっても毎回トラブルに見舞われる。今回は主に 3 つのトラブルに会った。
はんだ付けが甘い・付け忘れがあった
自作キーボードを組むときくらいしかはんだ付けはしないものの、何個か既に組んでいるのに加えて Keyball シリーズは 2 回目であったがはんだ付けでトラブルがあった。これは主に 2 つ目のトラブルに依るところが大きいと思ってはいるが、一通り組み立てた後にはんだ付けがちゃんとできておらずキースイッチを押しても反応しないキーが 3 つあった。 ビルドガイドではトラックボール部分以外のはんだ付けを一通りした後にテスト用のファームウェアを焼いて動作確認する手順がある。もちろん手順に従って、キーを一つずつ試してすべてのキーが正しく入力されるか確認した (できていなかったということだが…)。キー入力の確認はキーボードテストを使ってピンセットで一つずつ導通確認してすべてのキーが一度でも入力されたかを見ることで行った。
普段であれば PC に繋いでキー入力する前にデジタルマルチメーター (テスター) を使って導通確認するのだが、後述の通り電池が切れてしまっていた。そのため、実際に PC に繋いで文字が入力されるかだけのチェックを行ったのだが正しく行えてなかったのが敗因。
デジタルマルチメーター (テスター) の電池切れ
自作キーボードを組み立てるときに必須の道具ではないものの、どこのはんだ付けが上手くいっていない・忘れてしまっているかを見つけるか手軽に確認することができるので DT83B を使って普段は導通確認をしていた。しかし、前回使用時に電源をオフにしていなかったようで電池が切れてしまっていたため、今回組むときに使うことができなかった。電池を注文して届いてから組み立てるということもできたが、年末年始の休みの間に一通り組んで使えるようにはしておきたかったため強行したが良い方には目が出なかった。
DT83B は電池が単 5 形で普段使わないサイズなので持ち合わせがなかったので Amazon にて注文した。次キーボードを組むときはテストが使えるだろう。
ボールベアリングキースイッチの注意点
最後にキースイッチだ。当初は Roller Linear Swtiches を付けようと思っていたのがこれが上手くいかなかった。 Roller Linear Switches は最近出始めたボールベアリングが機構に組み込まれているタイプのキースイッチだ。同じ機構を持つキースイッチとして WS Pearl Switch がある。
ボールベアリングが使われていない場合にも発生することがあるが、キースイッチは外側から圧力がかかるとステムがハウジングから圧迫されて干渉することでステムの戻りが悪くなる場合がある。これは、ボールベアリングでなくともステムの形状が BOX であったり円になっているタイムのキースイッチに対してキーキャップの十字部分のサイズあっていない場合も発生する。今回はトッププレートの精度の問題なのか一部のキーが押した後になかなか戻ってこない現象が発生してしまったため、ボールベアリングキースイッチは使わないことにした。
同じキースイッチを Tofu60 にはめても問題はなかったのでケース側の問題であることは明らかだ。これについては仕方ないだろう。ボールベアリングキースイッチにはこういう問題が発生することがあるというのを知れたのは良かった。
キーマップ
さて、最後にキーマップを共有する。 Keyball を買ってこれからキーマップを考えようとしている人、Keyball を使い始めたがキーマップがしっくりきていない人の参考になれば幸いだ。
私は Keyball を使うとき自動マウスレイヤーを使わない。設定をチューニングすれば回避できるのだろうが、ボールに手が触れてしまったときにレイヤーが勝手に切り替わってしまうのは寧ろ煩わしく、また、ボールを触るような操作をした後にワンテンポ待たないと元のレイヤーに戻らないのも性に合わなかった。そのため、左クリックや右クリックをするときにはキーを押してレイヤーを切り替えている。どこにそのためのキーを配置するのかが肝になると思うが順を追って各レイヤーにどのような考えてキーを配置しているか説明する。
ベースにある考えとして普通の QWERTY 配列から大きくキー配置を崩さないようにしている。使っているレイヤーの数は 3。 3 にしている理由は、それより多いレイヤーは持て余してしまうのが理由だ。徐々にマッピングするキーを増やしたり、キー数自体を減らすことができているため将来的にはレイヤーをもう一つくらいは増やせるかもしれない。しかし、現状では 3 レイヤーで十分にキーを割り当てられている。
特徴
- QWERTY 配列から大きく崩さない一般的な配列
- 親指に次のキーを割り当て
- Ctrl
- Backspace
- Cmd
- Enter
- Space
- 自動マウスレイヤーを使わない
- 右手トラックボール
- ファンクションキーは割り当てない
さて、さっそく見ていこう。
Layer 0
Layer 0
は基本となるキー配置だ。ほとんどのキーは QWERTY 配列と同じになるようにしている。
Remap を使わずソースコードを編集してキーマップを設定しているため画像で共有できないのが悲しい。
1[0] = LAYOUT_universal(2KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS ,3KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,4KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_LALT ,5KC_NO , MO(1) , KC_BSPC , KC_LCTL , KC_LGUI, KC_ENT , KC_SPC , KC_NO , _______ , MO(2)6),
特徴としては次の通り。
- 一番左側の列は ESC、TAB、Shift と一般的な配列と同じ並びを踏襲
- CAPS LOCK は使わないため割り当てない
- 左手の親指には右側から Cmd、Ctrl、Backspace を割り当て
- 左手の親指 3 キーの左側に
Layer 1
へ切り替えるためのキーを設定 - 右手の親指には左から Enter、Space を割り当て
- トラックボールの右側のキーに
Layer 2
へ切り替えるためのキーを設定 - 右シフトの位置に Alt キーを配置
このレイヤーに現れていない数字、`、[、]、=、\ は後述の Layer 1
に割り当てている。
親指
親指は人によって個性が出るところだと思うが、私はこの配置の落ち着いている。 Emacs を使うことが多いため Ctrl を親指に割り当てることでEmacs小指問題に対応している。
(親指にキーを割り当てられる分割キーボードを使わない場合も Caps Lock (左シフトの上) に Ctrl を割り当てているので小指への負荷はそんなに大きくないが…)
左親指の 3 キー、右親指の 2 キーについては常にこの配置を使うようにしているが、それ以外の親指周辺のキーはキーボードによって配置を変えている。例えば Corne V4 Cherry や Corne Cherry V3 のような右手の親指に 3 キー割り当てられるキーボードでは、左手に割り当てている MO(1) を右手の 3 つ目 (Keyball のボールがある位置) に割り当てている。また、Keyball66 では MO(1) の位置に Alt を割り当てて右シフトの位置には通常通りシフトを割り当てている。左手だけにシフトがある状態に慣れてきているので、これについては Keyball66 のキー配置を変更してもいいのではないかと思っている。
Escape
Keyball44 では ESC を左上に配置するようにした。 Corne Cherry V3 でも同じ位置に置いている。実家のような安心感。
しかし、普段使っている Keyball66 では ESC を左下に置いて手のひらで押すようにしている。標準的な JIS 配列で Ctrl を手のひらで押す人がいると思うが、それと同じような要領で ESC を押している。 Vim を使うときは Ctrl-[ を ESC の代わりに使う派なので ESC の出番は多くはないのでこの配置で事足りている。
左親指 5 番目のキー
左手の親指で押すであろう右から 5 番目のキー (MO(1) の左隣) は封印している。この位置は Keyball44 に限らずどのキーボードでも活用できていない。親指をここまで内側に曲げたり、薬指で押そうとするのはどうも慣れることができずにいある。また、このキーを使わずとも必要なすべてのキーを割り当てることができてしまっているため使うモチベーションがないのだ。
Layer 1
Layer 2
は Layer 1
を補うためのレイヤーだ。
44 キーでは数字と一部記号を一つのレイヤーに収めることができない。そこで溢れたキーを Layer 1
に置いている。
Layer 1
は Layer 0
の左手の親指に配置している MO(1) にあるキーを押している間だけ有効になる。
1[1] = LAYOUT_universal(2KC_GRAVE , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQUAL ,3_______ , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_BSLS ,4_______ , _______ , KC_NO , KC_NO , KC_NO , KC_LBRC , KC_RBRC , KC_NO , KC_NO , KC_NO , KC_NO , _______ ,5_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______6),
Shift を押さずに記号を入力できるように数字の下や左右の空いているスペースに Shift を押したときに入力できる記号を配置している人が多いように思う。 QWERTY 配列から大きくはずれる配列は好きではないので数字は通常の配列と同じ並びで一つ下の行の配置している。 [、] はそれぞれ b、n の位置に設定している。この位置にこれらの記号を設定するのは Keyball44 のようなキー数のキーボードでは比較的一般的だと思う。
`、=、\ についても QWERTY 配列に近い位置に配置している。これにより [、] 以外はキーの位置を覚えるための負荷を減らしている。
Layer 3
Layer 3
はマウス操作、カーソルキー、ウィンドウ操作を割り当てている。
Layer 3
は Layer 0
のトラックボールの右側にあるキーを押している間だけ有効になる。そのキーを小指の付け根あたりで押しながらトラックボールを操作することでレイヤーを切り替える。これによりトラックボールを操作するときに自然にレイヤーを切り替えられるようにしている。
ウィンドウの設定は macOS の Spectacle のキーバインドに合わせている。 Spectacle は今では開発されていないため Rectangle で Spectacle のキーバーインドを設定している。
1[2] = LAYOUT_universal(2_______ , KC_NO , LCTL(KC_UP) , LAG(KC_F) , LCTL(KC_DOWN) , KC_NO , KC_NO , KC_BTN1 , KC_UP , KC_BTN2 , KC_NO , SCRL_MO ,3_______ , LCTL(KC_LEFT) , LAG(KC_LEFT) , KC_NO , LAG(KC_RGHT) , LCTL(KC_RGHT) , KC_NO , KC_LEFT , KC_DOWN , KC_RGHT , KC_NO , KC_NO ,4_______ , KC_NO , KC_NO , LAG(KC_C) , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , _______ ,5_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______6),
左手でウィンドウ操作、右手でマウスとカーソルを操作するようにしている。
左手の操作
左手のキーバインドは完全に macOS 専用だ。ウィンドウを最大化、左寄せ、右寄せをそれぞれ e、s、f に WASD に見立てて設定している。また c を押すことでウィンドウを中央に寄せることができる。これはウルトラワイドディスプレイでウィンドウを 3 つ並べたいときに重宝する。
macOS にはワークスペースがあるが、その左右の切り替えを a、g に割り当てている。元々のキーバインドが Ctrl-左、Ctrl-右 なので独立したキーに割り当てなくとも苦労せずに使うことはできるが、 3 のキーの同時押しが必要となるため利用頻度を考慮するともっと楽に操作できるようにしたいため、直観的に押せるであろう位置として a、g を使っている。
w、r にはそれぞれ Mission Control、アプリ Expose を割り当ててウィンドウの切り替えをするときに使っている。
これらのキーを使ってウィンドウ、ワークスペースを操作している。空いているキーがあるのでまだ割り当てていないウィンドウ操作や Raycast を設定するのもいいかもしれない。 Emacs のキーバインドでもそうだが一度にキーバインドを増やしても覚えられず結局使わないということになりがちだ。ここで説明したキーバインドは手に馴染んできているので設定を増やしてもいい頃合いか…。
右手の操作
右手の操作は簡単だ。 u、o にそれぞれ左クリック、右クリックを割り当てている。 - にはスクロールモードを設定している。 - を押しながらトラックボールを操作すると縦スクロールし、その状態で Shift もホールドすると横スクロールするようになる。マウス操作は以上。スクロール操作が少し特殊だが、クリックボタンは右手でボールを操作するときの自然な位置に置いているため誰でも違和感なく操作できるのではないだろうか。
カーソルキーは i、j、k、l にそれぞれ上、左、下、右を割り当ている。人によっては Vim キーバインドにしてもいいだろう。
今後について
Keyball44 は Keyballish を購入するために買ったのを忘れていた。 Keyballish も買いたいが想定外の支出が発生してしまったので株で儲けられるようなことがないと来年末くらいまでは無理だろうな…。
そんな訳で頃合いを見てもう少しライトに行えそうな無線化に手を出してみようと思う。