【自作キーボード】理想のキーボードのキーマップを考え抜いた話【REMAP】

自作キーボード

初めに。

Corneライクの自作キーボードを使ってテキストエディタのVimを使うこと考えて過ごしている、安馬と申します。
最近はKicadやBlender,Asprite,clipstudioなどに手を出し始めていて、キーボードのみで作業する機会が減りつつあり、マウスやペンタブと相性の良いキーボードを求めてMultipleGloveというキーボードを作りました。

multipleglove_thumbnail.jpg
layer_white.png
【自作キーボードキット】MultipleGlove – 安馬 – BOOTH

片手で操作するということ。

作ったはいいのですが、どうにも使いこなすことが出来ませんでした。
メインのキーボードでは、両手を使うことが前提であり、レイヤー操作に悩むことがなかったのですが、
左手のみで操作するにはどうにも不便で、考え方を変えようと思い以下のことを重視することにしました。

  • OSLキーを活用すること。
  • トグルスイッチでレイヤーを切り替える。

この考えで自分なりに納得できるようになったので紹介させて頂きます。

OSLキーを活用する。

12キーでは全く足りないが、4キー以上覚えなければいい。

layer0.png
メインのキーボードだと、ゲームなどで使うWASD、Vimで使うHJKL、どれも言われればパッと押さえることができると思います。
左手デバイスだと普段と形が違う上に、特殊なキーマップになりがちなので、せっかくキーマップやショートカットを設定しても迷うことが多く、あまり快適ではありませんでした。
なので、WASD相当のキーに絞り、他のキーをほとんど使わないようにすることでこの問題を解決します。

OSLキーを使って、大量のWASDレイヤーを作る。

WASDの4キーだけでは到底足りませんが、OSLキーとaltキーを用いてさらに拡張します。
OSLキーは、OSL( レイヤー番号 )キーを押している間、および押した次の入力を指定したレイヤーでの入力として扱う機能です。

(マッピング例)
layer1.png
layer2.png

例えばお絵かきソフトにおいて、このようなショートカットを設定します。

W                : ペンツール
W Ctrl           : スプレー
W      Shift     : ぼかし
W Ctrl Shift     : 消しゴム
W            Alt : [ もっと面倒な処理 ]
W Ctrl       Alt : [ もっと面倒な処理 ]
W      Shift Alt : [ もっと面倒な処理 ]
W Ctrl Shift Alt : [ もっと面倒な処理 ]

一回目のOSLキーで属性を決め、詳細を2回目で決定するイメージで、
W二回押し( OSL( 9 ) -> W ) -> ブラシ
W -> A ( OSL( 9 ) -> W Ctrl ) -> スプレー

といった配置にできます。

これでより、脳死で作業が出来るようになりました。
ALTキーを親指で押す or マウスやペンで入力状態にすれば一つのキーで最大8キー。
たった4つのキー + alt で32キー分をカバーすることができます。

さらに、最初に入力するキーをこのような分類にすることで入力関係を整理しました。

  • W : ペン・ブラシ・スプレーなど
  • A : 範囲選択系
  • S : 編集関係
  • D : スポイト・パレット変更系

*実際はVimの範囲選択はvキーなのでメインキーボードでも使えるように A -> V といった設定をしています。
*OSLのレイヤー先に一つのキーをすべての装飾キーに対応することで、どのキーをどのレイヤーで使ったかで悩まないようにしています。

対戦ゲームなどで、ボタンを押している間に装備一覧( 4種類 )を表示 -> 矢印キーで装備 などのUIを備えているものがあり、とてもマッピングの参考になりました。

MultipleGloveで押しやすいキーはWASDだけじゃない。

そもそもロータリーエンコーダを気持ちよく使うために設計したので、WASDキーと同じくらい快適にアクセスすることが出来ます。

普段の動作

水平ロータリーエンコーダ  : マウスホイール / Zoom
小さいノブ               : ブラシの大きさ
小さいノブ + Ctrl        : Undo / Redo
大きいノブ               : キャンバスの向き

これらのキーをOSLキー( 押しっぱなし )と組み合わせることで、ホームポジションから十分な数のキーを
あまり考えずに使えるようになりました。

トグルスイッチでレイヤーを切り替える。

multiple_toggle.jpg
MultipleGloveではこのようなトグルスイッチを載せています。
回路としてはただのスイッチと同じで、このキーの入力状態でレイヤーを処理するようになっています。
作業するツールに対して完全に切り替えたうえで操作できるので考える量をさらに減らせました。

  • [0] : メインレイヤー。マウスキーなどを設定する。
  • [1] : 作業レイヤー
  • [8] : 作業レイヤー
  • [9] : OSLレイヤー
  • [15] : OSLレイヤー

作業レイヤーではそれぞれのソフト・ツール・ゲームに特化した配置を行います。
これでデフォルトの設定をあまり壊さずに済み、メインのキーボードで作業する時でも混乱しにくくなりました。

現状のキーマップの問題。

今がOSLキーを入力した状態なのかわからなくなる時がそこそこあり、
とりあえず左下のキーを手のひらでたたいて戻したりしてます。

MultipleGloveの課題。

main_keyboard.jpg
multiple_tra.jpg

  1. アフターパーツとして親指キーの追加
  2. 34mmのトラックボールの搭載

の二つをもくろんでいます。
左手で使えるマクロパッドとして開発したので、メインキーボードとテンキーのような関係になってしまっていますが、ペンタブとこのキーボードのみで戦えるようにするにはやっぱり親指で扱えるキーがもっと欲しいと思いました。
また、Twitterの皆さんがトラックボールを搭載したキーボードを面白そうに開発されているので、僕も挑戦してみたいと思ってます。

最後に

自作キーボードってめっちゃ楽しい!どこを改造するか考えるだけで時間が全然足りない!!
素人の僕でもいろんな人が残してくれた情報のおかげでここまで作れるようになって、すごい充実感です。
読んでくださってありがとうございました!!

この記事は キーボードアドベントカレンダー #2 2024/12/20の記事です。
キーボード #2 Advent Calendar 2024 – Adventar