【自作キーボード初心者】大西配列ユーザーが自作キーボードroBaを作った話

初めまして
今月社会人2年目を迎えた開発エンジニアをしているホリカワ(Hol1kgmg)です
来週開催予定の[天下一キーボードわいわい会 Vol.8](https://tenkey.connpass.com/event/349566/)に参加できるため、自分も何か情報発信をしたいと思い、こちらの記事を執筆いたしました。
# はじめに
皆さんは愛用しているキーボードの使用感に不満を感じたことはありますか？

私は普段使っているノートパソコンのキーボードに不満を感じており、**こちらの動画**がきっかけで自作キーボードへのめり込むようになりました。

<iframe height="315" src="https://www.youtube.com/embed/iKSnUOVDimM?si=DCRCTacv9Vw1gu43" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

この記事では、
**自作キーボードに対するハードルの低さ**
**カスタマイズ性の高い自作キーボードの魅力**
この2つについて伝えられたらと思います。
# 大西配列と自作キーボードにハマったきっかけ
まず、そもそもの大西配列について軽く紹介させていただくと先ほどのYoutubeの動画を投稿された大西拓磨さんが作った**指の負担を減らして効率よくタイピングをするためのキー配列**です。
[参考:ローマ字入力に最適なキー配列を考える(大西拓磨)](https://note.com/illlilllililill/n/n3b51f4aaf086)

当時、指の負担を減らすために何かできないかと考えてた自分にとってその思想はとても魅力的に感じました。
12月初旬ごろから大西配列と格闘し始め、業務でも問題なく使える状態になったのは約2ヶ月後ぐらいです。

    参考：e-typingのスコアA-ぐらいでWPM(毎分キー入力数)は260

大西配列に馴染めたことは良かったのですが、専用キーボードの使い辛さから抜け出せていなかったため、そこから自作キーボードの世界に足を踏み入れました。

← 大西配列用に用意したキーボード
<img width="200" alt="kyeboard_mac" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/d641a2bf-a947-4b73-b1f6-14c6b92f8769.jpeg"> <img width="265" alt="corne v4 cherry" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/a25290f2-ae11-4865-b544-bbefdd99546f.png">
→ 初めて購入した分割型の自作キーボードCorne V4 Cherry([購入ページ](https://shop.yushakobo.jp/products/8961?variant=48886768369895))

## Corne V4 Cherryの魅力
使い始めて間もないもののCorne V4 Cherry（以降Corne V4と省略）の魅力は無限に語れますが、誰も読んでくれないと思うので、3つだけ紹介します。
- `分割キーボード` × `縦ズレ配置で人間工学に基づいたキーボード設計`
- `必要最低限のキー数（40%サイズ）で、ブラインドタッチに最適`
- `親指キーの自由度とシンプルさの両立`

つまり、**指の負担軽減と入力速度を重視**する自分にとってこれ以上ないほど魅力的なキーボードがこのCorne V4です。

触り始めて4ヶ月も経っていませんが、『分割』×『40%サイズ』×『縦ズレ配置』この組み合わせのキーボードの虜になってしまいました。

# 自作キーボード制作の流れ
自作キーボードの世界に足を踏み入れて数ヶ月後、3月末に開催された**キーケットというキーボード専用のコミケのようなイベント**で、
- 分割型 縦ズレ40%サイズ
- Bluetooth接続
- トラックボールマウス
- スクロール用エンコーダー

この4つを組み合わせた夢のような自作キーボード『roBa』を購入し、初めて基盤へのはんだごてを含めたキーボードの自作に至りました。
簡単に言えば、先ほど激推ししたCorne V4のほぼ完全上位互換です。そのため、人気過ぎてなかなか手に入りません...
大西配列を触り始めてから数えると4ヶ月目の出来事で、我ながらのめり込むのが早過ぎると自覚してます

<img width="300" alt="roBa" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/40e1d6be-38df-4ed2-af57-5d5e42979142.png"><br>roBa完成イメージ（制作ガイド参照）

それはさておき、実際のキーボード作成には**ハードウェアの作成**はもちろん、どのキーを押すと何が入力されるかといった設定を行う**ソフトウェアの作成**が必要になります。

**注意！！**
あくまでこの記事は作成レポートのため、実際に作成する際はroBa制作者の[制作ガイド](https://github.com/kumamuk-git/roBa/blob/main/doc/v3/buildguide_v3.md)を元に作業を進めてください

## ハードウェア：はんだごて
基本的には制作ガイドに載っている通りに進めたので、省略します。

ただ、秋葉原にある[自作キーボード専門店 遊舎工房さん](https://yushakobo.jp/shopinfo/)の作業室では、1500円ではんだごて講習サービスを受けることができ、はんだごてをしたことがない状態でも基本を抑えてから作業をすることができました。
<img width="300" alt="making_img" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/a224a6c2-d022-4e74-bef9-c5543b282df1.jpeg">
思った以上に時間がかかってしまい、2日通って取り組んだ結果、**完成まで6時間ほど**かかりました。

そして完成したroBaキーボードはこちらです
<img width="400" alt="keymap1" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/ad494473-095c-4635-a68d-9dbec43322b5.jpeg">
完成させるために購入したものは最後にまとめているので、気になる方はそちらから確認できます

## ソフトウェア：キーマッピング
制作ガイドページを参考に[こちらのgithubリポジトリ](https://github.com/kumamuk-git/zmk-config-roBa)と[KeymapEditor](https://nickcoutsos.github.io/keymap-editor/)を使うため、githubの仕様に慣れていない人は少し手こずると思います。

そして完成したキーマップがこちら(レイヤー3つ)
<img width="300" alt="keymap1" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/42173595-07f1-4f10-a591-a9c3c50a7882.jpeg"> <img width="300" alt="keymap2" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/2486410f-d926-46dd-8d1b-309890f8fecc.jpeg">
<img width="300" alt="keymap3" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/3aaa5061-4651-4c4d-be6f-5c59912618a9.jpeg">

|自作キーボードをよく知らない人向けの解説 〜レイヤーとは〜|
|---|
|少ないキー数の自作キーボードでは、多くの文字入力に対応するために複数の入力レイアウトを切り替えられるようになっています。<br>そして、その各レイアウトのことをレイヤーといいます|

keymap editorというwebアプリを初めて触ったため、使用を全く理解していなかったのですが、ちょうど数日前公開された[解説記事](https://sensai-gadget.com/keymap-editor-usage/)に助けられました
投稿者のisukoさん本当にありがとうございます

### 設定したキーマップの解説
roBaに乗り換える前まで使っていたCorne V4に近い形状ということもあり、キーマップもそれに寄せて設定しました。
基本的な方針は3つ

1. roBaはCorne V4に比べてキー配列が縦1列短いため、それに合わせた配置
1. 配置が異なる親指キーの対応
1. 右手だけでマウス操作を実現

### レイヤー1：アルファベット
#### 特徴：大西配列と`Mod/Tap`・`Layer/Tap`を使った2通りのキーマップ

1枚目のroBaキーマップと2枚目のCorne V4キーマップ、わかりやすい違いは**基本方針1**でも挙げた縦の列が1つ少ないことです。
<img width="400" alt="keymap1" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/42173595-07f1-4f10-a591-a9c3c50a7882.jpeg">
<img width="400" alt="corne_keymap" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/66309992-3ec8-4af2-afb6-0cb6e69809a6.png">

その影響でCorne V4では設定できていた『cmdキーなどの修飾キー』や『MO(1)などのレイヤー切り替え』を設定する場所がありませんでした。
これを解決する設定がホールド(長押し)とタップ(短押し)で入力内容が変わる`Mod/Tap`と`Layer&Tap`です
これは1つのキーに「どちらもキー入力」または「長押し=レイヤー切り替え / 短押し=キー入力」を登録できるモードです

これを活用することで、両端の合計6つのキーに対して、文字入力や修飾キー入力、レイヤー切り替えなど複数の役割を与え、列1つ分少ない配列でもCorne V4とほぼ同じキー配列にすることができました。

**基本方針2**で挙げていた右手の親指キーも同じように、長押しでLANG4(かな入力)の切り替えができるようにしています。

### レイヤー2：数字・記号
#### 特徴：入力しやすい記号配置
特にこれといった特徴はありませんが、コーディングでよくお世話になる`()`、`[]`、`"(ダブルコーテーション)`と`'(シングルコーテーション)`は隣同士で列を揃えた配置にすることで入力しやすくしています。
<img width="400" alt="keymap2" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/2486410f-d926-46dd-8d1b-309890f8fecc.jpeg">
また、レイヤー切り替えのキーはレイヤー0の配置と一致させています。
### レイヤー3：矢印・Fnキー・マウス操作
#### 特徴：レイヤー切り替え・マウスクリックを右手だけで完結
**基本方針3**に則り、右手小指の付け根でレイヤー3切り替えを行い、人差し指と中指でマウスクリックを行うことができるようにしています。
そうすることで、従来のマウスとほぼ同じ使用感をroBaに落とし込むことができました。
<img width="400" alt="keymap3" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/3aaa5061-4651-4c4d-be6f-5c59912618a9.jpeg">

以上がキーマップの解説になります。

# roBaを1ヶ月使ってみて
ここからは実際にroBaを1ヶ月使ってみての感想を書きたいと思います。
## 良かった点
### 小指の負担激減
これはCorne V4にも言えることですが、shiftやEnter、BackSpace、Tabなど左右ともに使用頻度が高く小指を酷使するキーが多かったキーボードから解放され、さらにはホームポジションから手をほとんど動かすことがなくなりました。
### 記号入力が本当に楽
自身の使用頻度とグループごとに配置を設定したことで、キーボード入力のためにキーの位置を目視で確認する手間がなくなりました。
そのおかげでブラインドタッチの難易度が下がり、入力中のちょっとしたストレスを感じる機会も払拭されました。
### Karabinerが神アプリ
LANG4やLANG5など、PC側で入力内容と結果が紐付けされていないものに対して、それぞれ「かな入力キー」や「英字入力キー」などを割り振ることができます。
その結果、複雑なキー入力の組み合わせを別の入力内容に変換させるといったPC側のカスタマイズ性も得て、より自由度が上がりました。
ただ、MacOS限定のアプリなので、WindowsやLinuxユーザーは使えません...
### vimにも対応できた
一部のエンジニアに限定した話になりますが、vimにも対応できます。
具体的には、h,i,j,kキーの代わりに矢印キーを使うことができる点です。
## 不満な点
### マウスの使用感はそこそこ
あくまで、マウス操作もできるキーボード、ということもあり、マウスの性能はメーカーのものの方が遥かに高いです。
そのため、普段は`roBa + お気に入りのトラックボールマウス`を使って作業を行い、外での作業でroBaのみ使用。といった形がroBaに合っていると感じました。
### `Mod/Tap`と `Layer/Tap`にまだ慣れない
これは時間が解決してくれると思います。
自宅では今でもcorne V4を使っているので、その二つの使用感のギャップは感じていないのが救いです。
# 自作キーボードにハマって気付いたこと
### 他社の開発エンジニアにも自作キー界隈の人が結構いる
私が割とフットワークの軽い開発エンジニアということもあり、たびたび他所様が開催されている技術カンファレンスに参加しています。その際に変わったキーボードの使い手や独特なキー配列を駆使する猛者を見かけることも少なくないです。
そういった人たちに対して、会話のネタが増えてお得です。

## 特殊なキー配列を使うことへの疑念
大西配列に慣れてしまうと普段のQWERTY配列に戻れないのでは？という疑念を抱く方もいると思いますが、それについては**問題ありません**。

というのも自作キーボードの特殊キー配置に限定して使用することで、普通のキーボードと棲み分けを行うことができます。
実施にこの記事は、充電切れをした自作キーボードを使うことができず、**MacBook付属のQWERTY配列のキーボードを使って執筆しました。**

# 最後に
最後まで読んでいただいてありがとうございました。
少しでも自作キーボードや変わったキー配列に興味を持っていただける方が増えて界隈が盛り上がってくれると嬉しいです。

また、素敵なキーボードを作っていただいたkumaさん、ここ数ヶ月ずっと愛用している大西配列を生み出していただいた大西拓磨さんにもこの場を借りてお礼もうしあげます

# おまけ：roBaを作るために購入したものの詳細
自作キーボードを作成するために購入した部品をまとめておきます。
### roBa本体
私はキーケット2025で購入しましたが、roBa制作者kumaさんの[boothページ](https://booth.pm/ja/items/6010869)でもたまに入荷されるそうです。
### roBa周辺部品
githubのroBa作成ガイドに書かれていましたが、**マイコン**と呼ばれる部品と**小型バッテリー**、**トラックボール**は別途必要だったため、それぞれ下記のサイトで用意しました
[小型マイコン Seeed XIAO BLE nRF52840](https://akizukidenshi.com/catalog/g/g117341/)
[3.7V リチウムイオン電池 1200mAh](https://www.amazon.jp/dp/B0DQ1761TH?ref=ppx_pop_mob_ap_share)
[LAZIRO トラックボール 34mm 交換用 トラックボール](https://www.amazon.jp/dp/B0D1TFK5K7?ref=ppx_pop_mob_ap_share)
### キーボードケース
githubに3Dプリント用のデータが格納されており、そのデータを元に3Dプリントサービス『[JLC3DP](https://jlc3dp.com/jp/)』を利用しました
### キースイッチ
roBaは「通常のキースイッチ」と「低めのロープロファイル用キースイッチ」の両方を使います
[メカニカルキーボード用キースイッチ](https://shop.yushakobo.jp/products/8969?variant=48906332897511) 37個
[ロープロファイルキーボード用キースイッチ](https://shop.yushakobo.jp/products/9681?_fid=bbca7b3a8) 5個
<img width="200" alt="lkeyswitch" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/391cc351-c03c-4825-928f-684a881bacda.png"> <img width="200" alt="low_profile_keyswitch" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/2982fe2f-539e-40fe-b2b5-4b88e3d133c3.png">
### キーキャップ
形状に特にこだわりはなく、~~地味~~シンプルな見た目にしたかったため真っ白な無刻印キーキャップ[uxcell 108キーPBTキーキャップセット](https://www.amazon.jp/dp/B0CNWYCBPC?ref=ppx_pop_mob_ap_share)をAmazonで購入
<img width="300" alt="kyecaps" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660467/ec93b500-7226-4120-9610-8f3556d46513.png">
### その他
100均一のレジン液＆硬化UVライト
https://jp.daisonet.com/products/4549131948585
キーキャップに付ける突起を作るために使用しました（[参考動画](https://youtu.be/a8rS80ywQIY)）