メインコンテンツへスキップ
見出し画像

github初心者がminimal-keysのファームを書き換えて「逆さ運用」を実現するまでの2日間

    自作キーボードだからこそできた「思いつき」の実現

    minimal-keysを使い始めてから、「ほぼ理想のキーボードだけど、1点だけ気になる…」という部分がありました。
    それが「手前側にあるトラックボール」と、その上の列にある「、」「。」あたりのキーとの距離感です。

    標準の向きで使っていると、手前列〜その上の列を押そうとしたときに、どうしても指がボールに触れてしまうことがありました。
    致命的とまではいかないものの、毎日触るデバイスとしては、じわっとした窮屈さを感じるポイントでした。

    きっかけは「写真を逆さまのまま撮ってしまった」こと

    発想の転換が訪れたのは、ごく些細なきっかけでした。
    minimal-keysの写真を撮ろうとしていて、うっかり逆さまに置いたまま撮影してしまい、それを見返しているときに「これ、逆さまのまま使ってもいいのでは?」と気づいたのです。

    同じようにトラックボールを上側に配置したコンセプトとしては、自作キーボードのSeaglassがあるのは知っていました。
    ただ、Seaglassはまだ製作中ということもあり、製作者さんがモニター募集的に限定頒布している段階で、自分で入手するのはなかなか難しい状況です。​

    そこで、「それなら、手元のminimal-keysを逆さまにしてしまえばいいのでは?」という、半分冗談のような発想で試してみることにしました。
    物理的にひっくり返してみると、トラックボールがちょうど人差し指あたりの位置に来て、思った以上にしっくりきたのが大きな発見でした。

    逆さminimal-keysの第一印象

    逆さ配置にして実際に手を置いてみると、

    • トラックボールが人差し指〜中指のあたりに来る

    • ボール操作時の手首の角度も、標準状態と比べてほとんど違和感がない

    • 元々フラットで、かつオーソリニア配列ということもあり、上下を入れ替えても指の動き自体は素直に追従できる

    という印象でした。

    「これは、配列さえどうにかなれば普通に使えるのでは?」という手応えがあった一方で、当然ながら課題もはっきりしてきます。
    キー配列もポインタの動きも、上下がまるっと反転してしまうからです。

    見えてきた課題:キー配列とポインタの向き

    逆さまにすると、そのままでは次の2点が問題になります。

    • キー配列が上下逆になるので、物理的な位置と入力されるキーが一致しない

    • トラックボールのポインタ方向も逆転してしまい、上下左右の操作が直感とずれる

    前者については、ZMK Studioでキーマップを変更すれば対応できることが分かっていたので、こちらはいったん後回しにしました。​
    より問題だったのは後者で、「ポインタの上下左右を反転させるにはどうしたらいいか?」という部分です。

    調べていくうちに、「これは単なるキーマップ変更では済まず、ファームウェア側で設定を変える必要がありそうだ」という結論になりました。
    Windows向けには、トラックボールの軸を反転させるフリーソフトのようなものもあるようなのですが、今回の環境はMacなのでその手は使えません。

    「じゃあ、ファームウェアを書き換えるしかないか」と、初めてのファームウェア書き換えチャレンジが始まります。

    「githubって何よ?」から始まった初めてのファーム書き換え

    今回いちばんのハードルだったのは、実はトラックボールの設定変更そのものではなく、「github」という聞いたことはあるけれど触ったことのない世界に足を踏み入れることでした。
    名前だけはエンジニア界隈のバズワードとして知っていたものの、「コード置き場?」「なんか黒い画面でゴニョゴニョするやつ?」くらいのふわっとした理解しかありませんでした。

    minimal-keysの製作者さんが、親切にもファームウェアをgithub上で公開してくれていたおかげで、「必要なデータがどこにあるか」はすぐに分かりました。​
    問題は「これを自分の環境に持ってきて、書き換えて、またアップロードしてビルドするには何をしたらいいのか?」という部分で、ここから先は完全に未経験ゾーンです。

    そこでまずやったのは、生成AIに「github初心者なんだけど、minimal-keysのZMKを触るには何をすればいい?」と正直に聞いてしまうことでした。
    返ってきた回答をかみ砕きながら、

    • GitHubのアカウントを作成する

    • minimal-keys用のリポジトリを自分のアカウントにforkする

    • 自分のPCきclone(コピー)して、中身のファイルを編集できるようにする

    という一連の流れを、一つずつ確認しながら進めていきました。

    最初は「リポジトリって何?」「forkとcloneの違いが分からない」と用語との戦いからでしたが、
    「要するに、ネット上のプロジェクトフォルダを自分のところにコピーして、そこをいじる作業なんだな」と腹落ちしてからは、
    「とりあえず言われた通りにやってみる→動かなかったらまた聞く」を繰り返すことで、なんとか“ファームを書き換えられる準備が整った状態”までは持っていくことができました。

    この「githubって何よ?」の壁を一回越えたことで、ZMKまわりのカスタマイズに対する心理的ハードルはだいぶ下がった気がします。
    今後別のキーボードをいじるときにも、「あのときminimal-keysでやった手順をベースにすればなんとかなるだろう」と思えるようになったのは、大きな収穫でした。

    書き換えるべきファイルを探すところから

    どの設定をどう変えればいいかは、生成AIに相談することでおおよその方向性はすぐに見えてきました。
    とはいえ、github初心者の自分にとっては、「そもそもその設定がどのファイルのどこに書かれているのか」を探すところからのスタートでした。

    リポジトリの中身をざっと眺めてみると、ディレクトリやファイルがかなりの数に分かれていて、最初は正直どこから手をつけていいのか分かりません。
    そこで、

    • 生成AIから教えてもらった「それっぽいファイル名」や「探すべきキーワード」をメモしておく

    • GitHubぎWeb画面とローカルのエディタの両方で、検索機能をフル活用しながら候補をしぼっていく

    という、わりと地道なやり方で探していくことにしました。

    具体的には、「トラックボール」「ポインタ」「マウス」などの単語や、設定値の名前を頼りに、
    関連しそうな設定ファイルやDevicetreeまわりのファイルをひたすら開いては中身を確認していく、という作業の繰り返しです。

    最終的には、「ここが軸方向の設定をしていそうだ」という箇所を特定できたので、
    生成AIに聞きながら、上下左右の符号を反転させる形でコードを書き換えました。
    github初心者&非エンジニア視点で見ると、ここは完全に“迷路探索”でしたが、それでも2日あればなんとかゴールにたどり着けたのは大きな経験になりました。

    ビルドエラーとの戦いと、Discordに救われた話

    設定を書き換えて「よし、あとはビルドするだけ!」と思ったところで、次の壁がやってきます。
    ビルドコマンドを叩くとエラーが出てしまい、どこで何がダメなのかが分からない、というありがちなパターンです。

    エラーメッセージには英語でずらっとログが出てくるものの、github初心者かつ非エンジニアの自分には、最初はほとんど暗号にしか見えません。
    ここでも相棒のPerplexity(生成AI)にエラーログを貼り付けて、「このエラーってどのあたりが怪しそう?」と聞きながら、一つずつ原因候補をつぶしていきました。

    それでも解決しきれなかった部分については、minimal-keysのDiscordサーバーが大きな助けになりました。
    同じタイミングでビルドエラーに悩んでいた方が、「ここをこう直したらビルドが通った」という情報を投稿してくれていて、それを参考に自分の設定も修正したところ、こちらの環境でも無事にビルドが最後まで通るようになりました。

    ビルドが成功したら、生成されたファームウェアを書き出してminimal-keysに書き込み、いよいよ動作チェックです。
    トラックボールを動かしてみると、狙い通り左右方向がきちんと反転して動いてくれていて、「github初心者でも、2日あればここまではたどり着けるんだな」と、かなりの達成感がありました。

    今回は相棒のPerplexityにかなり助けてもらいつつの作業でしたが、「もしプログラミング特化型の生成AIを使ったら、もっと効率よくエラー解析やコード修正ができるのかな?」という興味も出てきました。
    github初心者&非エンジニアでも、生成AIとコミュニティ(Discord)があれば、ファームウェアのビルド〜書き込みまで2日でなんとかなる、という体験はかなり心強かったです。

    次のステップ:キーマップの書き換え

    トラックボールの向きがどうにかなったところで、ようやく本命の「キー配列の整理」に着手しました。
    ここはZMK Studioを使って、ひとまず逆さ配置に対応する形で、物理位置と入力キーが一致するように入れ替えています。​

    珞

    画像
    英字列で揃えるとずれちゃうので、この辺りはL側のキーマップも変更して揃える予定

    状の状態はこんな感じです。

    画像
    とりあえず変更したR側
    青キーキャプの位置にそれぞれ左クリック・右クリックを設定しました
    画像
    とりあえずレイヤー0のR側だけを主に編集
    実際にはRはこれが上下逆さまになります
    • レイヤー0(ベースレイヤー)については、上下反転に対応する形で一通り配置を見直した

    • 書き換えたのはまず右手側だけで、左手側は初期設定のまま、マウスクリックに割り当てられているところに「英数/かな」キーを足した程度

    • レイヤー1以降はまだ手をつけられていないので、時間を見つけながら徐々に修正していく予定

    それでも、逆さ配置+トラックボール軸反転の組み合わせで、想像していた以上に快適に使えるようになりました。
    右手だけでトラックボール操作が完結するようになったのは、実際の運用でかなり便利に感じています。

    やってみて分かったことと、これから試したいこと

    今回、minimal-keysを逆さまにして使えるようにするまでの試行錯誤を通して感じたのは、

    • ファームウェアの書き換えは正直大変だけれど、ゼロから全部を理解して作るわけではない

    • 製作者さんが公開してくれているリポジトリや、生成AI・コミュニティ(Discord)を頼りながら、一歩ずつ進めていけば「なんとかなる」

    ということでした。

    そしてもうひとつ大きかったのは、「なんとなく思いついたことでも、自作キーボードなら本当に形にできるんだな」と実感できたことです。
    市販キーボードだと諦めてしまいそうな発想でも、「ファームを書き換えればいけるかも」と考えられるようになったのは、自作キーボード沼に足を踏み入れたからこその収穫だと感じています。

    今回の経験で、ZMKとgithubまわりの「最初の壁」はひとつ越えられた感触があります。
    慣れてきたら、次はConductorでも同じような逆さ運用を試してみたいと考えています。

    キーレイアウト的には、Conductorのほうが上下を入れ替えても配置に困りにくそうなので、
    「逆さ運用キーボード第2弾」として遊んでみるのも面白そうです。



     
     
    自作キーボード沼に片足を突っ込んだ在宅ワーカー。Mac中心の作業環境で、分割キーボードやトラックボールなど、仕事道具まわりの気づきと試行錯誤をゆるく記録しています。 Amazonアソシエイトに参加。 商品リンクは基本的にアフィリエイトリンクを使用しています。

    あなたへのおすすめ