⌨️

roBaで自分用に作ったキーマップの解説

に公開
  • この記事は、roBaキーボードのキーマップと、ロータリーエンコーダやオートマウスレイヤーのソフトウェア面でカスタマイズした内容をまとめたものです。
  • 私はKeyball44にて40%くらいのキー数に慣らされていましたが、roBaはKeyball44と比べても手の小指側にある列が一つ少なく、反対に人差し指側の列が多く、移行コストはなかなかありました。キーの配置としてはKeyball39に近いです。
  • この記事で紹介するキーマップは、Keyball44で構築したものをベースにしています。
  • roBaの愉快な組み立て記事はこちら を参照ください。
  • キーマップ全体はこちらのリポジトリを日々更新しています

レイヤー構成

  • レイヤー0: Mac用デフォルト
  • レイヤー1: Windows用デフォルト
  • レイヤー2: マウスとカーソル移動とMission Control
  • レイヤー3: 数字・記号とテキスト選択
  • レイヤー4: Bluetooth

Keyball44ではType-Cケーブルを右手側に繋ぐか左手側に繋ぐかでMac/Winを切り替えていましたが、ZMKではLayer Toggleを使うべしとあったので、これに従いました。

レイヤー0(Mac用デフォルト)

右手親指ゾーン

  • Keyball44では右手小指の位置にバックスペースを配置していましたが、roBaではその位置にキーがなかったので親指バックスペースに矯正しました。
  • バックスペースは長押したときに文字を連続して削除させたいので、長押しで挙動が変わってしまうMod-tapやLayer-tapは使用していません。
  • Keyball44の頃から引き続き、エンターは右手親指に配置しています。こちらは長押しでLayer切り替えにしています。数字レイヤーへ移動します。

記号キー

  • Keyball44にあった右手小指の記号ゾーンが減ったので、引越しを強いられました。
  • Pの下に-を配置し、;と/は右手キーの左側になんか増えている領域に移動しました。
  • 伸ばし棒がホームポジションに配置されたことで、日本語入力する速度が上がったように感じています。この配置はかなりおすすめです。

スクリーンショット

  • Macdでスクリーンショット撮る用のGUI+Shift+5です。誤爆しづらいよう、押しづらい右手右下キーに配置しています。

ロータリーエンコーダ

  • デフォルトではPage Up/Downのキーコードを送信するようになっていましたが、Page Up/Downではテキストカーソルの位置が変わってしまうため、マウススクロールを割り当てました。
  • zmkのmouse-emulation機能を使って設定しています

左手親指ゾーン

  • 悩みが尽きないゾーンです
  • Keyball44から引き続き、Layer切り替えキーとGUIキーを配置しています。しかしこのキー、いまだに打ち間違えます。打ち間違えてもダメージは少ないのですが...
  • Keyball44では左手小指ゾーンにいたTabですが、キー数が足りなくなったことで追いやられたのでここにおきました。
    • Tabをどこに配置するかは大変悩みました。入力頻度の少ないQキーをTabに割り当てるという派も多いようですが、私はQWERTYのアルファベット配置は崩したくなかったため、左手親指ゾーンに配置しました。
    • Tabはプログラミングにおいてインデントを調整するのによく使うのはもちろん、VSCodeでCopilotの提案を受け入れるキーとしても利用頻度が高い重要なキーです。この配置でいいのかまだ悩んでいます。
  • 英数↔︎かなの苦労
    • OS側がキーボードをUS配列として認識しているため、半角・全角キーに対応するキーコードを送信しても、英数・かなの切り替えはできません。
    • Macであれば、OS側の設定で、Caps Lockキーを英数・かなの切り替えキーにすることができます。当初は単押しでCapsLock、長押しでLayer切り替えという割り当てをしていたのですが、このキーが英数かなの切り替えの挙動をしたり、大文字入力の挙動をしたり、なぜか安定しなかったので諦めました。
    • デフォルトレイヤーでは英数、数字レイヤーではかなキーという割り当てにしました。

aにMod-TapでControlキーを割り当て

  • 実行プロセスを終了させるためにControl+Cを使いますが、ControlキーはCキーの真下にあって押しづらいので、aキーにMod-TapでControlキーを割り当てました。

ロータリーエンコーダの下に無のキー

  • このキー、Bを押すときに押し間違えることが多いので、無のキーにしました。

レイヤー1(Windows用デフォルト)

レイヤー0(Mac用デフォルト)との違いは以下です

  • GUIキーとControlキーの位置が入れ替わっています
  • スクリーンショットキーで入力されるキーコードが異なります
  • ロータリーエンコーダの回転方向に対応するスクロール方向が逆になります

レイヤー2(マウスとカーソル移動とMission Control)

  • カーソル移動とマウスクリックを右手で、Mission Controlを左手で行うためのレイヤーです
  • Keyball44で作り込んだキーマップをほとんどそのまま移植しました
  • ESCキーはKeyball44ではデフォルトレイヤーの左上に配置していましたが、roBaではその位置にキーがなかったので、レイヤー2へ配置しました
  • Chromeで開発者ツールを開くためF12キーを使うので、このレイヤーに配置しています。他のFunctionキーはほとんど使う習慣がないため配置していません

レイヤー3(数字・記号とテキスト選択)

  • 主に左手側で、数字と記号を入力します
  • 数字はテンキー配置です。私はかつて関数電卓の検定を取ったので、テンキー配置が馴染みます。
  • 記号キーはLayerキー+Shift+数字キーで入力します。
  • クォートやバッククォート、バックスラッシュは左手小指あたりにいます。プログラミングでは高頻度で使うキーなので、割り当てを忘れると詰みます。
  • カッコは左手人差し指で開きカッコ、右手人差し指で閉じカッコを入力できるようにしています
  • ロータリーエンコーダの下にあるキーで、デフォルトレイヤーのトグルが行えるようにしています。こういったキーは誤入力するとストレスなので、あえて普通は入力しない配置にしています。
  • 右手側は、エディタでのテキスト選択のためShift+矢印キーを割り当てています

レイヤー4(Bluetooth)

  • Bluetoothの頭文字「B」キー長押しでこのレイヤーに移動するようにしました
  • Bluetoothの切り替えとデフォルトレイヤーのトグルを一度に行うマクロ&mac_setup&win_setupを用意したのですが、今のところうまく動いていません

オートマウスレイヤー

  • オートマウスレイヤーでレイヤー2に遷移します
  • トラックボールへの振動でオートマウスレイヤーを誤爆しやすい問題や、マウスレイヤーに意図した通り遷移してくれない・デフォルトレイヤーに意図した通り戻ってくれない問題がありました
  • kotさんの記事ZMKのオートマウスレイヤーを極めるを参考に、オートマウスレイヤーの遷移の設定を行い、諸問題が解決しました。ありがとうございます
  • 概念としてはKeyballへのnegokazさんのpull request マウスキーを押すまで Auto Mouse Layer に留まり誤爆を減らす に記載の状態遷移図がわかりやすいです。オートマウスレイヤーに苦しんでいる方はぜひご覧ください。

終わりに

  • Keyball44からroBaへの移行は、キー数の減少とレイアウトの変更により当初は苦労しましたが、どうにか快適に使用できるようになりました。Happy!
  • 特に伸ばし棒(-)をホームポジションに配置したことで、日本語入力の効率が大幅に向上しました。
  • 今後もちょっとずつ改善して、最強のキーボードにしていきたいと思います。
  • この記事はroBaを使って書かれました。
  • なんか今、左手側のキー入力が遅延する問題に遭遇しているんですけど何これ誰か多usけて

Discussion