kbigwheelのプログラミング・ソフトウェア技術系ブログ

プログラミング・ソフトウェア技術系のことを書きます

自作キーボード沼マップ作りました

先日、珍しく同僚とお酒を飲んでいるときに自作キーボードの世界にもいろいろな沼があるんだよという話になりました。 実際一言で自作キーボード沼と言っても様々な分野があり、沼にハマっていると言ってもお隣さんとは全く別のことをしているということが結構あります。そこで全体を見渡してどのような沼があるのか一度書き出してみました。

twitter上でも結構反応をもらえて嬉しかったです。 一方ですぐにいろいろ書き足りないところが見えてきてたくさん追記しています。 たぶんこれからもたくさん出てくると思うので随時書き足していきたいと思います。

日本語入力切り替えストレスの少ないキーマップを定義した

週末このハイカロリーなブログを書いていたので今回は軽めで。

オフィスで活きる自作キーボードのメリットと自作せずにそれを実現する方法 - Speee DEVELOPER BLOG

日本語入力時のストレス

日本語入力時のストレスってなんでしょう?賢くない変換?文節の切れる点が間違っている?それもストレスだと思いますが僕は日本語入力有効な状態で記号キーや数字キーを押して全角で入ってしまった瞬間だと思っています。 特に僕は普段vimを使っているのですが、コマンドラインモードに入ろうとして全角の が入る瞬間は最も憂鬱な瞬間です。日本語大好きな僕でも流石にこんなことが数年も続くと日本語嫌いになりそうです。

僕らエンジニアは英語入力と日本語入力をよく切り替えます。というのは主として入力するプログラミング言語が英語だからです。一方コメントやドキュメントは会社にもよりますが日本語で書くことが多いです。

しかし、よく考えると全角つまり日本語入力モードONの状態で数字や記号を入力することはめったにありません。例外は ぐらいのものです。ならそもそも日本語入力がONであろうが数字キーや記号キーを押したときは無条件で日本語入力をOFFにして入力したらいいのでは?そう思って作ってみたのが今回のキーマップです。

数字・記号絶対半角で入力するマンキーマップ

完成品はこちらです(BLE Micro Pro用のコードなので汎用のqmk firmwareにはちょっとそのままでは動かないかもしれません)。 qmk_firmware/keymap.c at d3408a2cf1d6d39d6891d555b1a999e6191ae198 · bigwheel/qmk_firmware

正確に書くとprocess_record_userでキーコードの処理を改変しているだけなのでキーマップ、いわゆる論理配列はどんなものでも対応できます。

const uint16_t leave_ime_on_keys[] = {
  // https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes_basic#letters-and-numbers
  KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
  KC_ESCAPE,
  // KC_MINUS,
  KC_EQUAL,
  ...
  KC_QUESTION
};

const uint16_t leave_ime_on_keys_with_shift[] = {
  // https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes_basic#letters-and-numbers
  KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
  KC_ESCAPE,
  ...
  KC_QUESTION
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

  ...

    bool leave_ime_on = false;
    for (int i = 0; i < length_of_leave_ime_on_keys; i++)
      if (leave_ime_on_keys[i] == keycode) {
        leave_ime_on = true;
        break;
      }

    if (get_mods() & MOD_MASK_SHIFT)
      for (int i = 0; i < length_of_leave_ime_on_keys_with_shift; i++)
        if (leave_ime_on_keys_with_shift[i] == keycode) {
          leave_ime_on = true;
          break;
        }

    if (leave_ime_on && record->event.pressed) {
      uint8_t real_mods_memory = get_mods();
      clear_mods();
      off_ime();
      set_mods(real_mods_memory);
    }

  return PROCESS_USUAL_BEHAVIOR;
}

イデアは死ぬほどシンプルで、記号キーが押された場合はその前に必ず無変換キー(PCモードの場合)または英数キー(Macモードの場合)を先行して入力するだけです。いわば、数字・記号キーすべてを2ストロークのマクロ化して、本来のキー入力の前に日本語入力OFFキーを入力するようにした感じです。

追加でしている工夫としては、これだけだと全角の記号などが一切入力できなくなりこれだと困るケースもあるためカスタムキーコードとして KC_DISPEL というものを定義しています。これを押している間は上記の日本語入力無条件OFF挙動がキャンセルされます。

まとめ

このキーマップで一週間程度使い続けているのですがかなりいい感じです。 特にコーディング中、日本語入力ONのまま記号やアルファベットを入力しようとしてしまいBackSpace, 日本語入力ONキー, 本来入れたかったキーを押すの流れが完全になくなりました。 このまましばらく様子を見て、問題なさそうであれば持っているキーボード全てへ展開する予定です。

GMK WHITE-ON-BLACK vs Cherry PBT White on Black 比較レビュー

自作キーボードのキーキャップの世界において、White on Black (黒のキーキャップに白の文字)のシンプルな配色はWoBという略語ができるほどの定番です。 そんなWhite on Blackなキーキャップが先週たまたま2つ届き、しかも両者が対象的な性質を持つものだったため面白いと思い比較してみることにしました!

tl;dr

DropさんのGMKとNovelKeysさんのCherry PBT、値段が同じだったら優劣つけがたいですがCherry PBTのほうが値段は半分以下で即時発送、配送も早いと圧倒的なのでとりあえずCherry PBTがおすすめです。

対象製品

1. GMK

Drop GMK White-on-Black Custom Keycap Set | Price & Reviews | Drop

f:id:den8:20201116220415j:plain

2. Cherry PBT

Cherry PBT White on Black – NovelKeys LLC

f:id:den8:20201116220412p:plain

仕様

GMK Cherry PBT
値段 $110 $50
発送時期 数ヶ月に1回 注文後数日
配送期間(東京まで) DHLで9日 FedExで5日
材質 ABS PBT
印字方式 ブルショット ブルショット
キー数 140 147
プロファイル Cherry Cherry
備考 ISOエンターキーおよび
アクセントのBoWキー3つ付き

パッケージ

GMK

f:id:den8:20201116121653j:plainf:id:den8:20201116121837j:plainf:id:den8:20201116121853j:plainf:id:den8:20201116122309j:plain

Cherry PBT

f:id:den8:20201116121921j:plainf:id:den8:20201116122113j:plainf:id:den8:20201116122239j:plainf:id:den8:20201116122358j:plain

キーキャップ比較

並べる

上段がGMK, 下段がCherry PBTです。

f:id:den8:20201116122548j:plainf:id:den8:20201116122631j:plainf:id:den8:20201116122743j:plainf:id:den8:20201116122748j:plain

拡大

f:id:den8:20201116122927j:plainf:id:den8:20201116122949j:plain
GMK

f:id:den8:20201116122940j:plainf:id:den8:20201116122959j:plain
Cherry PBT

f:id:den8:20201116123049j:plainf:id:den8:20201116123053j:plain
上がGMK, 下がCherry PBT

比重チェック

f:id:den8:20201116123702j:plain:w512

基礎からわかる!自キ入門講座 第3回「キーキャップの素材とプロファイル」ではABSは浮き、PBTは沈むことが多いとありましたが今回は両方共沈みました。

重量チェック

f:id:den8:20201116185643j:plainf:id:den8:20201116190043j:plain
左がGMK, 右がCherry PBT

上はそれぞれ30個のキーをはかりに乗せて重量を計った結果です。

GMK Cherry PBT
30個の重さ(g) 28 31
1個当りの重さ(g) 0.93 1.03

打鍵感のチェック

両方のキーキャップをNomu30 – recompile keysにつけて10分ずつ腕試しレベルチェック - インターネットでタイピング練習 イータイピング | e-typing ローマ字タイピングをやってみました。

速度

f:id:den8:20201116223826p:plain
GMKのスコア例
f:id:den8:20201116223853p:plain
Cherry PBTのスコア例

上がそれぞれで3回目のスコアです。nomu30自体を打鍵するのが組み立て後初めてなこと & Cherry PBTから計測し始めたことからGMKのほうが若干スコアが上ですが、実感としてはほとんど差がありませんでした。

質感

事前の予想ではPBTのほうが質感が良いと言われているためCherry PBTのほうがよいかなと思っていたのですが、実際に触ってみるとわずかにGMKのほうが良いように感じました。 GMKには安定感のようなものを感じます。キーキャップの厚さによるものかもしれませんし、あるいは軸受け部分当りの造形精度などが関係しているかもしれません。 手触りとしては確かにABSのGMKは若干滑るような感触はあるものの、事前に想定していたほど悪くは感じませんでした。少なくとも購入直後の状態ではなめらかで触り心地が良いと感じています。

印字(Legend)

拡大写真を見てもわかりますがどちらも丁寧に仕上がっており特に表面へバリが出ているようなこともありません。 GMKの方がアルファベットの印字が大きめですがここは好みかなと思います。

まとめ

ABSのGMK製WoBとPBTのNovelKeys製WoBを比較してみました。 個人的にはもっといろんな点で差が出るかなと思っていたのですが、想定していた以上に品質に違いはなく両者良くできたキーキャップだと思います。

しかし、そうなると大きな違いは倍以上違う値段と大きく異なる発送時期となり、両方で大きく劣るGMK製はちょっと見劣りしてしまいます。 注文から一週間以内に手に入るという点、フルセットのキーキャップにも関わらず$50と安い点で見るとNovelKeysさんのWoBは特に数ヶ月も到着を待てない自作キーボード初心者さんに向いている製品と言えます。 逆に自作キーボード中級者以上でGMKの品質を信頼したり気に入っていたりする人で数ヶ月の発送を待てる人であればGMK WoBは一つ持っていていいキーセットかもしれません。

Universal Keymapシリーズ⑨ Sensibleキーマップを横展開する

目次

Sensibleキーマップを他のキーボードにも適用

bigwheel/sensible-keymap

キーマップ
Corne Cherry treadstone48
f:id:den8:20201031234249p:plain:w360 f:id:den8:20201031234302p:plain:w360
claw44 bat43
f:id:den8:20201031234246p:plain:w360 f:id:den8:20201031234306p:plain:w360
nomu30 Ergodox Ez
f:id:den8:20201031234258p:plain:w360 f:id:den8:20201031234254p:plain:w360

Universal Keymapシリーズ⑧ 分割型40%キーボード用のsensibleキーマップを設計する

今回は 前回作成した最大公約数的キーマップ① 多彩な自作キーボードを使う上でのキーマップの問題 で上げた要件を組み込んで万人が受け入れられるsensibleキーマップを設計していきます。

目次

できたもの

レイヤー 最大公約数的キーマップ sensibleキーマップ
BASE f:id:den8:20201011163616p:plain:w360 BASE PC
f:id:den8:20201018182155p:plain:w360
BASE Mac
f:id:den8:20201018182151p:plain:w360
LOWER f:id:den8:20201011163612p:plain:w360 f:id:den8:20201018182146p:plain:w360
RAISE f:id:den8:20201011163608p:plain:w360 f:id:den8:20201018182142p:plain:w360
ADJUST f:id:den8:20201011163604p:plain:w360 f:id:den8:20201018182842p:plain:w360

qmk configurator用JSON定義ファイル: crkbd_rev1_common_layout_split_3x6_3_sensible.json · GitHub

変更点

1. 日本語入力系キーの追加

① 多彩な自作キーボードを使う上でのキーマップの問題で述べた通り、MO に変えて LT を使うことで 無変換 変換 英数 かな キーを配置しています。この2キーの余裕というのは他の言語用としても調べる限り十分ですので日本語以外のキーボードにも対応できます。

2. BASEレイヤーをBASE PCとBASE Macの2種類用意

Mac用のキーボードはPC(Windows/Linux)用のキーボードとは一部のキーの配置が異なります。 Swap GUI/Altキーはそれに対応するためのキーで、これにより配置の違いの一つである Alt キーと GUI キーの違いに対応できます。 英字(ANSI)キーボードであればこれだけで対応できるのですが、日本語キーボードの場合この違いに加えて 変換 無変換かな 英数 キーの違いがあります。そのためこのSwapキーだけでは対応できません。 これら3キーを切り替えるのに一番簡単な方法は複数のデフォルトレイヤーを用意してDFで切り替えることです。そのため2種類のデフォルトレイヤー(BASEにあるレイヤー0, レイヤー1)を用意してADJUSTレイヤーの DF(0)DF(1) で切り替えられるようにしました。

3. LOWER / RAISE / ADJUSTレイヤーの親指周辺を透過(KC_TRANS)化

上記の変更により親指周辺の GUI Alt のキーのどちらが右か/左かはデフォルトレイヤーによるようになりました。 しかし、以前のキーマップですとBASEレイヤー以外でも左手側に GUI 右手側に Alt と固定されています。 このままだとデフォルトレイヤーをBASE Macに切り替えたあとで更にレイヤーを切り替えると GUIAlt がまたswapしてしまうので混乱します。そこでBASEレイヤー以外の親指付近は透過(KC_TRANS)にすることでBASEレイヤーの GUI Alt 配置を尊重するようにしました。

4. 使用頻度は極めて低いが使用する可能性がありそうなキーをADJUSTレイヤーに追加

PrintScreen Scroll Lock Pause 半角/全角 カタカナひらがな Insert Menu などのキーです。 これらのキーは通常の利用ですとまったく使用しないか使用頻度が極めて低いキーたちですが、まったく使わないというわけではなく例えば PrintScreenInsert などは一部のショートカットキーなどに割り当てられることもあります。 これらがいざ必要となったとき、別のキーボードを用意したりバーチャルキーボード機能を呼び出すことも手間ですし、幸いqmk firmwareを使用すればレイヤーの数だけキーを割り当てられるので比較的空いていたADJUSTレイヤーの右手へ追加しました。 性質上もっとも使用頻度が低く配置もどうでもよいキー群ですのでニーズによって位置をずらしたり更に別のレイヤーへ割り当てても良いと思います。 (ちなみにNumLockキーは流石に使わないだろうと思って割り当てていませんが、これらと一緒に並べても良いと思います)。

(オプション) ユーザビリティの改善

以上で基本的に完了ですが、追加で以下の改善があります。

  1. set_single_persistent_default_layer(layer)を使用してUSB給電が切れてもデフォルトレイヤーの変更が保存されるようにする
  2. LT(X) キーの挙動改善(QMK Firmware で Raise/Lower と変換/無変換を同じキーに割り当てる - Okapies' Archive)

NEXT ACTION

以上により、当初目標としていたsensibleキーマップのCorne Cherry用設計例ができました。 しかし、sensibleキーマップの主目的は様々なキーボードに最小の変更で対応できることです。 1つのキーボードのみではその効果はあまりありません。

そこで、次はCorne Cherry以外のキーボードでSensibleキーマップを設計してみようと思います。

Universal Keymapシリーズ⑦ 13個のキーマップから分割型40%キーボードの最大公約数的キーマップを設計する

というわけで、やっとキーマップの設計にたどり着きました。ここまで長かったですねー。

目次

設計対象

今回設計する対象としてCorne Cherryを選びました。

Corne Cherryを選択した理由は以下です。

  • おそらく国内では最も普及している40%分割型キーボードのため
  • 物理的なキー配置に癖がなく、他の40%分割型キーボードにもキーマップを応用しやすい

具体的なキー配置考

レイヤー0

④ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー0編)より、40%分割型キーボード向けの標準的なキーマップには以下の特徴があります。

  • アルファベット部分は通常通り
  • 右手 ; , . / も通常通り
  • 左手小指外側3キーは上から Tab Ctrl Shift
  • 右手小指外側3キーは上から BackSpace ' (") Shift
  • 親指部分は左から GUI MO(1) Space Enter MO(2) Alt

レイヤー1 / 2

⑤ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー1,2編)より、40%分割型キーボード向けの標準的なキーマップには以下の特徴があります。

  • vimスタイル矢印キーは鉄板
  • 数字キーをQWERTY行、数字キーに対応する記号キーを他方のレイヤーのQWERTY行 へ配置するのも定番
  • vimスタイル矢印キーと数字キーはレイヤー2へ配置する派が僅差で多い
  • ファンクションキーはなしまたはレイヤー1の左手中段下段へ割り当てているものが多い
    • はみ出し2キーはキーボードによるものの、Planckに習い H N に逃がすか左手外側を変えるのが良さそう
  • モディファイヤキーは変更・追加しない
  • Escape Tab BackSpace Delete ` (~) はレイヤー0で足りないものを補完する
  • Home End PageUp PageDown はなしまたは使用する場合は矢印キーと相関性をもたせる
  • その他記号キーを配置する場合は次の2点を考慮する
    1. 対応する記号キー([ ] ( ) { } < > / \)を近くに置く
    2. 101キーボードの左上に近いキーほど、キーマップでも左側に配置する

レイヤー3

⑥ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー3編)より、40%分割型キーボード向けの標準的なキーマップには以下の特徴があります。

  • RESETキーの配置は鉄板 (Qが多い)
  • RGB系キーを使う場合は 2行左手中段下段
  • バックライト系キー、オーディオキー、Rev Alt/GUI Swap Alt/GUITO(X) キーはあまり割り振られていない

結果

以上を踏まえてCorne Cherry向けに作成したキーマップが以下です。

レイヤー デフォルト 今回作成したキーマップ
0 f:id:den8:20201011163632p:plain:w360 f:id:den8:20201011163616p:plain:w360
レイヤー1
f:id:den8:20201011163628p:plain:w360
レイヤー2
f:id:den8:20201011163608p:plain:w360
レイヤー2
f:id:den8:20201011163624p:plain:w360
レイヤー1
f:id:den8:20201011163612p:plain:w360
3 f:id:den8:20201011163620p:plain:w360 f:id:den8:20201011163604p:plain:w360

今回作成したキーマップのqmk configurator用JSON定義ファイル: crkbd_rev1_common_layout_split_3x6_3_mine.json

デフォルトキーマップと今回作成したキーマップの相違点

まず前提としてデフォルトキーマップではレイヤー1にあった矢印キーや数字キーが今回作成したキーマップではレイヤー2に移っています。 以下それを踏まえての比較です。

  • レイヤー0
    • 完全に一緒
  • レイヤー1(2)
    • 左手中段下段および右手下段外側にファンクションキーを設定
    • 矢印キーの下に Home PageDown PageUp End を設定
    • BackSpace キーを Delete キーに入れ替え
  • レイヤー2(1)
    • 記号の並びで ` (~) を最右から最左へ移動
    • Shift を押したときの記号を下段および上段へ集約 (デフォルトキーマップは素押しとShift同時押しのキー配置が上下バラバラです)
    • BackSpace キーを Delete キーに入れ替え
  • レイヤー3
    • RESET キーおよびRGB系キーをすべて右へ一列移動

概ねうまく配置できたと思いますが、2点ほど疑問な点があります。

疑問点1. F11F12 の配置

F11F12 が他のファンクションキーから大きく離れています。しかし、vimスタイル矢印キーのため移動させることが難しく Home の直下固定なため H N M などの位置が使えませんでした。 他方 Left CtrlLeft Shift を使う手も考えましたが CtrlShift は矢印キーやファンクションキーともコンビネーションで使用する可能性があり、またそれらを使用すると数字キーの 1 ~ 5F1 ~ F5 がずれてしまうという点もあって断念しました。 また、多くの分割型キーボードでは G H B N の間に追加のキーが存在したり ZXCVB 行の更に下の行があったりで多くの場合 F11 F12 を左手に配置できることもあり Corneのためだけに Ctrl Shift をファンクションキーで上書きするのは問題が多いと判断したことも一因です。

疑問点2. レイヤー1と2について

レイヤー2を有効にするキーが右手親指で、レイヤー2の矢印キーもまた右手にあるため矢印で移動するときに右手で2キーを押すことになります。 この手の2キー押しを両手に分けるべきかそれとも片方の手に寄せるべきかがよくわかっていません。素直に考えると両手に分かれていたほうが良い気がします。 ⑤ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー1,2編)で分析した結果矢印キーをレイヤー2に配置しているキーマップが多かったためそれに習いましたが、矢印キーはレイヤー1に配置したほうが良いかもしれません。

NEXT ACTION

これで一つのキーマップができましたが、このキーマップは

で調べたキーボードのキーマップの最大公約数に過ぎません。 ① 多彩な自作キーボードを使う上でのキーマップの問題で求めているキーマップへ到達するにはもう少し修正する必要があります。

そこで、次は上記の条件を満たすCorne Cherry用のキーマップを作成します。

Universal Keymapシリーズ⑥ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー3編)

引き続き各キーボードのデフォルトキーマップを見ていきます。 ついに最後のレイヤー3です!

目次

キーマップ一覧

分割型40%
ergodash/mini - QMK Configurator
f:id:den8:20201007052432p:plain:w360
キーマップ - satt99/caravelle-build-guide:
Build guide for Caravelle keyboard

qmk_firmware/keymap.c at nrf52 · sekigon-gonnoc/qmk_firmware
claw44/rev1 - QMK Configurator レイヤー3なし silverbullet44 - QMK Configurator
QMK Configurator用のデフォルトキーマップデータがおかしいためスキップ
qmk_firmwareのCコードと比較すると間違っていることがわかります
crkbd/rev1/common - QMK Configuratorf:id:den8:20201007052453p:plain:w360 uzu42 - QMK Configuratorf:id:den8:20201007052507p:plain:w360
分割型60 ~ 80%
fortitude60/rev1 - QMK Configuratorf:id:den8:20201007052520p:plain:w360 lily58/rev1 - QMK Configuratorレイヤー3には一切キーが配置されていない
Ergodox Ez - QMK Configurator レイヤー3なし
一体型
treadstone48/rev2 - QMK Configuratorf:id:den8:20201007052552p:plain:w360 bat43 - QMK Configuratorレイヤー3なし
reviung41 - QMK Configuratorf:id:den8:20201007052616p:plain:w360 nomu30/rev2 - QMK Configurator事実上レイヤー3(Adjustレイヤー)なし

分析

このレイヤーでは物理キー上の配置ではなく、マッピングする論理キーの種別の観点から見ていきます。

多くのキーマップが採用しているキー

Reset キー

多くのキーボードでこの Adjust レイヤーに配置しているのが Reset キーです。 ResetキーとはErgodox EZ を使ってみよう - Qiitaなどにかかれていますがファームウェアを書き換えるときに押すキーでキー配置をよく書き換える自作キーボードでは非常に便利なキーです。 配置は Q が3つと多く、左上キー・DB がそれぞれ1つずつです。 調べてみると Planck も QRESET を割り当てているため、それに影響されている可能性が高いです。

RGB / Hue / Sat / Bright 系キー

おそらくいわゆるUnderglow (アンダーグロウ)のカラー操作のためのキーです。 このRGBの光らせ方・周期は現時点で9種類あり、それぞれへ1タップで移行できる RGB Mode Bのようなキーがあるのですが今回見たキーマップではそれらは一切配置されていません。 代わりに RGB Mode + で順番に遷移していく手段のみを配置しています。 RGB Mode - で逆順にも遷移できますがこれを配置しているのはreviung41だけでした。 また、 Hue +/- Sat +/- Bright +/- はすべてセットで配置されていますが Effect +/- はどのキーマップでも配置されていません。 この理由は不明です(Effect +/- は比較的最近提供されたキーなんでしょうか?)。

RGB Toggle RGB Mode + Hue +/- Sat +/- Bright +/- キーの配置は見るところ4種類のスタイルがあります。

1行スタイル
RGB Toggle RGB Mode + Hue - Hue + Sat - Sat + Bright - Bright +
  • 上段 (ergodash mini, fortitude60)
1行スタイル(Planck)
RGB Toggle RGB Mode + Hue + Hue - Sat + Sat - Bright + Bright -
  • 上段 (Planck)
2行スタイル
RGB Toggle Hue + Sat + Bright +
RGB Mode + Hue - Sat - Bright -
  • 左手中段下段 (Corne Cherry, treadstone48)
  • 右手中段下段 (uzu42)
変則2行スタイル
Bright + Sat + Hue + RGB Mode + RGB Toggle
Bright - Sat - Hue - RGB Mode -
  • 左手上段中段 (reviung41)

最初はPlanck発祥の1行スタイルが多かったようですが、徐々に2行スタイルが増えているように見えます。おそらくこれは+と-の対応がよりわかりやすくなること、配置がコンパクトにできることなどのメリットがあるためだと推測されます。

一部のキーマップが採用しているキー

バックライト系キー

BL から始まるキーで、キーボードのバックライトを制御するキーです。 今回見たキーマップの中ではergodash miniとfortitude60でのみ配置されています。 BL + BL - を左右に配置するなどの工夫がされていますね。

F1 ~ F12

このレイヤーにファンクションキーを配置しているキーボードが uzu42 と fortitude60 です。 両方ともキーボードの最上段に横並びで配置しています。 fortitude60はレイヤー1にもファンクションキーを配置しているためこちらは2箇所目になります。 それに対してuzu42はファンクションキーがこのレイヤー3にしかありません。ファンクションキー自体人によって使用頻度が違うためレイヤー3が良いかは人によりますが、 Alt - F4 のようなコンビネーションで押す場合 Alt Lower Raise R と4つもキーを押す必要があります。 ちょっと窮屈かもしれません。

マウス操作系キー

これはtreadstone48のみにあります。マウス操作はまた通常のキーとは異なるのでレイヤー3に配置するのは妥当でしょう。

PrintScreen Insert Home End PageUp PageDown

uzu42で PrintScreen Insert, treadstone48 で Home End PageUp PageDown が配置されています。 uzu42はレイヤー0 ~ 2で配置できなかった比較的使用頻度の高い特殊キーを配置していると考えられます。 treadstone48のそれら4キーはレイヤー1にも配置しているので必ずしもこちらを使う必要性はありません。

Rev Alt/GUI Swap Alt/GUI

これは GUI キーと Alt キーの意味を継続的に入れ替えるための特殊なキーです。 Macでは GUI キーと Alt キーの位置が PCキーボードとは逆のため、これで調整します。 fortitude60ではキーボード中心に左右対称で配置され、treadstone48では ER に隣り合って配置されています。

AU_ON AU_OFF

これはキーボードから音を鳴らすときに使うキーで( qmk_firmware/feature_audio.md at master · qmk/qmk_firmware )fortitude60のみにあります。

TO(0) TO(1) TO(2)

これはレイヤー0のキーを半恒久的に切り替えるキーで今回見た中ではfortitude60のみに存在します。 これはPlanckやPreonicなどにも存在してQwerty配列からDvorak配列やColemak配列へ切り替えるために使用されます。ただ、現在では TO ではなく DF を使うことが一般的です(おそらく TO を使うと LowerレイヤーやRaiseレイヤーなども同時に使えなくなるため)。

NEXT ACTION

これですべてのレイヤーの分析が終わりました。次は Corne Cherry を対象に大多数の人が使いやすいSensible Keymapを設計していきます。