ようこそキーマップ沼へ

以下のErgodash miniの記事では書ききれなかったキーマップについて紹介します。

そうだ、キーマップをいじろう!

自作キーボードを始めた理由の一つがキーマップを自由にいじりたいという動機からでした。もともと英語キーボードが好きでしかも「A」の横がCtrlしか許せない派だったので色々と苦労していました。キー配置を自由にできたらと何度夢見たことか・・・

しかし、自作キーボードを手に入れたことで状況は一変しました。QMK Firmwareというものを使えばキーマップを自由にイジり放題だと言うのです。思えばCtrl以外にもいろいろと入れ替えたいキーがあるのでぜひ色々と試してみたいとQMK Firmwareを触りはじめました・・・
ツライ・・・

QMK Firmware辛い問題

まず、簡単にキーマップを書き換えるために何をすればいいか簡単に説明すると、前述のQMK Firmwareの主にkeymap.cを書き換えて、ビルドと転送を行います。これだけだと簡単に聞こえるかもしれませんが、修正しなければイケナイのはC言語ファイルなんですよね・・・ちょっと記述を間違えると謎のコンパイルエラーに出くわして頭を抱えたりします。あと、最初はQMK Firmware独自の概念に悩まされたりします。レイヤーとかレイヤーとかレイヤーとか・・・

例えばErgodash miniで光っているLEDを消したいとしましょう。どうすればいいのかというとQMK Firmwareには特殊キーが定義してあってそのキーを押すとシフトキーみたいにキー全体の定義を変更させる機能があります。これがレイヤーと呼ばれていてこのレイヤーは複数定義できるので単純なキー数の何倍もの定義が必要になったりします。Ergodash miniには初期設定でQwertyとRaiseとLowerとAdjustの4つが定義されていて、デフォルトのレイヤーはQwertyになります。話を元に戻すと、LEDを消すためににはAdjustレイヤーの「RGB ON」とコメント書かれているキーを押さないといけないのですが、このレイヤーを出現させるためには何とLowerキーとRaiseキーの同時押しが必要になります。完全に初見殺しですね。しかも、これはQMK Firmware標準機能というわけではなく一部のキーボートで採用されている方式です。keymap.cの後ろの方にさり気なくC言語の関数で実現されています。

もう何というか、何とかして欲しいですね・・・自作キーボードなんだから自分で何とかするのが筋なのは分かっていますが、ちょこっとキーを修正したい場合にいちいちCファイルを修正してビルドと転送を繰り返すのはかなり面倒です。Ergodash miniの場合は自分が見てきたkeymap.cの中では比較的見やすい方でしたが、レイヤーを自分好みにするために全面的に書き換えたのでかなり大変でした・・・一応QMK ConfiguratorというWebベースのツールもあるみたいですが、まだまだ機能が足りていないというかそもそもErgodashのような物理キーの変更はどうするのかとか課題がありそうです。自分はレイアウトの確認のみに利用しています。

僕が考えた最強のキーマップ

前置きが長くなってしまって申し訳ございません。以下が「僕が考えた最強のキーマップ」です(笑)。

以下がキーマップのポイントです

  1. レイヤーは4つ
  • Qwertyレイヤーは通常配列
  • Lowerレイヤーはカーソル移動
  • RaiseレイヤーはNum Padと記号
  • AdjustレイヤーはBacklight調整とファンクションキー
  1. スペース、エンター、バックスペース、シフトを親指で押す
  2. 左手親指でレイヤー切り替えて、右手でキー入力
  3. 日本語入力切り替えはMacスタイル(英数キーでIMEオフ/かなキーでIMEオン)

Adjustレイヤーは同時押しが嫌だったので専用キーを割り当てて、ここにファンクションキーも押し込んでいます。LowerとRaiseの使い方特殊で基本的に左手親指でレイヤー切り替えのキーを押して右手でキーを打つスタイルです。Lowerレイヤーの出し方も特殊でスペースキーの長押しかEnterキーの長押しで出すようにしています。Enterキーにも割り当てた理由は右手だけでカーソル移動ができるようにするためです。そして自作キーボード界隈では親指酷使スタイルです。このスタイルになれると小指の負担が軽減されてキータイプしやすくなったと感じています。

自分は他にもErgo42やIrisやPlanckキーボードも持っていますが、直行配列のキーボードは大体こんな感じのレイアウトで統一しています。以下にキーマップを公開しているので気になる人は参考にしてみてください。

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×