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

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

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

というわけで、各自作キーボードの実際のキーボードを比較してみます。 qmk_firmwareのdefault.cを見て比較するのは大変なので、qmk configuratorで描画してもらった結果を使います。

まずはLayer 0から。

目次

キーマップ一覧

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

f:id:den8:20201003232958p:plain:w360
claw44/rev1 - QMK Configuratorf:id:den8:20201003233006p:plain:w360 silverbullet44 - QMK Configurator
QMK Configurator用のデフォルトキーマップデータがおかしいためスキップ
qmk_firmwareのCコードと比較すると間違っていることがわかります
crkbd/rev1/common - QMK Configuratorf:id:den8:20201003233014p:plain:w360 uzu42 - QMK Configuratorf:id:den8:20201003233019p:plain:w360
分割型60 ~ 80%
fortitude60/rev1 - QMK Configuratorf:id:den8:20201003233024p:plain:w360 lily58/rev1 - QMK Configuratorf:id:den8:20201003233029p:plain:w360
Ergodox Ez - QMK Configuratorf:id:den8:20201005010026p:plain:w360
一体型
treadstone48/rev2 - QMK Configuratorf:id:den8:20201003233033p:plain:w360 bat43 - QMK Configuratorf:id:den8:20201003233039p:plain:w360
reviung41 - QMK Configuratorf:id:den8:20201003233044p:plain:w360 nomu30/rev2 - QMK Configuratorf:id:den8:20201003233048p:plain:w360

分析

分割型キーボードの中でも最大クラス(= 最大公約数的に使える)であるErgodoxのキー配置をベースにキーの部分ごとのキーマップを考えていきます。

f:id:den8:20201004010723p:plain:w360

アルファベット部分

f:id:den8:20201004003514j:plain:w360

ありがたいことにすべてのキーボードでアルファベット部分の配置は一致しています。 なのでここについては全キーボードで共通にしてよいです。

右手一段下の記号部分

f:id:den8:20201004003515j:plain:w360

ここはuzu42とnomu30以外は ; , . / で統一されています。ちなみに Shift + ;: であるためみなさんANSIキーボードベースのようです。 uzu42は小指ホームポジションEnter です。これは利用頻度のための最適化だと思われます。 nomu30はこの部分のキーが事実上ありません(SpaceとEnterキーがありますが後述の右手外側列扱いにします)。

数字キー行

f:id:den8:20201004003516j:plain:w360

40%キーボード以下ではこの行があることはないですが、こちらも考えていきます。 この行があるのはfortitude60、lily58とErgodox Ezですが、1 ~ 0 のキーは共通です。JISではなくANSIベース( Shift - 2 を押して " ではなく @ が出る)のも一緒ですね。 ただ1 の左のキーと 0 の右のキーはちょっとずつ違います。

キーボード 1 の左のキー 0 の右のキー
fortitude60 ` (~) Delete
lily58 Esc - (_)
Ergodox Ez = (+) - (_)
Preonic ` (~) BackSpace
101キーボード(参考) ` (~) - (_)

3つのキーボードはすべて101キーボードがベースにあるようですがfortitude60は利便性のために右上を Delete1lily58は左上を Escape にしています。 Ergodox Ezは左上が =(+) です。これはANSI規格上の -(_) の更に右のキーです。 参考にPreonicの情報も追加してみました。これはfortitude60と同じ考えですが Delete ではなく BackSpace を右上においています。

どれを選択するか

101キーボードとの絶対的な近似性から ` (~) - (_) もしくは使用率と相対的な近似性から Escape BackSpace(Delete) が良いような気がします。

人差し指の内側の列

f:id:den8:20201004003517j:plain:w360

この部分は基本的に40%より大きな分割型キーボードにありますが、40%キーボードの一部も備えています。

キーボード 左手側 右手側
ergodash mini - (_) [ ({) = (+) ] (})
caravelle ble ( [ ({) ) ] (})
lily58 [ ({) ] (})
Ergodox Ez レイヤー1への移動 Ctrl + Shift + Alt + Gui レイヤー1への移動 Ctrl + Shift + Alt
bat43 BackSpace BackSpace (左と同じキー)

基本的に(){} [] などのブラケット関係が多いです。これらは101キーボードでは右手の更に右側にある記号キーの代替で、かつ左右に配置することにより直感的な対称性を持たすことができるよいアイデアでしょう。 ergodash miniの - (_)= (+)0 の右およびそのまた右のキーです。分割型で省略される右手の右側の記号キーの中で、数字行の記号キーを行をずらすことなく列だけ移動した形と言えます。101キーボードからの移行がしやすくこれも良い設計だと思います。 Ergodox Ezは独特です。これはErgodoxが比較的古い分割型キーボードでまだキーマップ設計が洗練される前に決められたdefaultキーマップであるためだと推測されます。 は同じレイヤー上で二重に配置されていますしレイヤー切り替えも同じキーが両方にあります。モディファイヤキーの同時押しを1つのキーで実現するのは一見便利に見えますが実際にそのキーマップを使っていた経験上ほとんど使いませんでした。

bat43は少し特殊で、どちらかというと設計上空いた基盤の中心部分にシンボリックなキーを配置した側面のほうが強いように見えます2。 とはいえ分割型のエルゴノミクス的な合理性が知られるにつれSymmetrical Staggeredな一体型キーボードは増える気がしていて、そうなると中央にキーやトラックボールを置くキーボードはこれから増えそうです。

小指の外側の列

f:id:den8:20201004010716j:plain:w360

この列は30%キーボード以外のほとんどのキーボードで採用されています。

キーボード 左上 左中 左下 右上 右中 右下
ergodash mini Tab Shift Ctrl \ (|) ' (") Shift
caravelle ble Tab Ctrl Shift BackSpace ' (") Shift
claw44 Escape Tab Shift - (_) ' (") Shift
corne Tab Ctrl Shift BackSpace ' (") Shift
fortitude60 Tab Escape Shift BackSpace ' (") Enter
lily58 Tab Ctrl Shift - (_) ' (") Shift
Ergodox Ez Delete BackSpace Shift \ (|) ' (") Shift
treadstone48 Escape Tab Shift BackSpace Enter ` (~)
bat43 Escape Tab Ctrl - (_) Shift Ctrl
reviung41 Tab Ctrl Shift BackSpace ' (") Enter
nomu30 n/a Ctrl Shift BackSpace Enter(ISO) Shift

まず、左下についてはほぼ Shift です。左下に Ctrl を置いているergodash miniも左中に shift を置いています。 左上についても TabEscape でほぼ統一されています。Ergodx Ezはここも独自路線ですが前述の通り黎明期に決まったdefaultなので無視します。 ここに TabEscape のどちらを置くかは微妙なところですが、101キーボードとの互換性を優先するなら Tab を置いて Escape を他所に置くのがよいかもしれません。 左中については簡単ではなく、 Ctrl 6個 Tab 3個 その他3個と割れています。観察すると左上に Escape キーを置いて Tab キーを置いていないキーマップは必ずここに Tab を置いています3。それらに当たる claw44, treadstone48, bat43は Ctrl キーを親指側または最下段に逃がすという選択を行っています。

まとめると左下は Shift キーでほぼ確定、左中と左上は Tab, Escape, Ctrl のうち2つを置いて余った1キーは親指や最下段最左へ逃しています。

右下はほぼ shift で30%やfortitude60などで Enter が使われている程度です。 右中もほぼ ' (") で他はこちらでも一部 enter を配置しているキーマップがあります。 やはりEnterは使用頻度も高いためなるべく馴染んだ位置関係の場所に置きたいという考えがありそうですね。 右上は比較的綺麗に割れていて、 BackSpace 6個, \ (\|) 4個, - (_) 3個です。\ (\|) キーは [] キーを飛ばした右端にあるキーで \ (\|) キーは 0 の右、P の右上にあるキーです。 BackSpace は言わずもがな数字行最右にあるキーで、この3つは優劣つけがたい感じです。\ (\|) がErgodox系, - (_)の3つのうち2つが同じ製作者であることを考えれば概ね広く使われているのはやはり BackSpace でしょうか。

最下段

f:id:den8:20201004003511j:plain:w360

ここは親指部分と区別が付きづらいですが、概ね親指以外の指で押すキーの範囲とします。

キーボード 左手側 右手側
ergodash mini Ctrl GUI Alt Alt(` (~))
caravelle-ble L(Adjust) GUI Alt Delete
uzu42 Shift Space Alt GUI Alt (BackSpace) Ctrl GUI n/a
fortitude60 GUI Alt Alt GUI
lily58 Alt GUI BackSpace GUI
Ergodox Ez LT1(` (~)) ' (") Alt(Shift) [ ({) ] (}) TT1
treadstone48 Ctrl Alt GUI Alt(Menu)
reviung41 Alt GUI

まず、Ergodox Ezを除いてレイヤー切り替えはほぼありません4。caravele-bleのAdjustレイヤーへの切り替えはめったに行わないアクションです。

左手側で見ると GUI キーの配置率はとても高いです。また Alt キーの配置率もそれに準ずる出現率ですね。 Ctrl キーも一定ありますが、その他は共通点はほぼ見いだせません。

右手側を見るとこちらも Alt GUI キーの出現率は高いです。また特徴的なのは矢印キーをここへ配置しているErgo系とtreadstone48があることです。 その他 BackSpace or Delete を配置しているキーボードも3つあります。これは101キーボードでも右上が BackSpace(Delete) であることを考えれば直感的に使いやすいでしょう。そのほかのキーとしては Menu Ctrl のように同じく104キーボードで右手最下段にあるキーを配置しているものと、[ ({) ] (}) のような右手小指外側の記号キーをここへ押し込んでいるErgodox Ezがあります。

親指部分

f:id:den8:20201004003513j:plain:w360

キーボード 左手側(左と上が優先) 右手側(左と下が優先)
ergodash mini MO1 Space Delete BackSpace Enter MO2
caravelle ble L(Lower) Space Enter L(Raise)
claw44 Alt(Delete) GUI(英数) LT1(Space) Ctrl(BackSpace) Ctrl(BackSpace) LT2(Enter) GUI(かな) Alt(Delete)
corne GUI MO1 Space Enter MO2 Alt
uzu42 MO1 Ctrl(Escape) Shift(Space) MO2
fortitude60 MO3 Space [ ({) Ctrl Enter ] (}) Space MO4
lily58 MO1 [ ({) Space Enter ] (}) MO2
Ergodox Ez Space Alt(Menu) BackSpace GUI Home End PageDown PageUp Alt Tab Ctrl(Escape) Enter
treadstone48 MO1 BackSpace Space MO2
bat43 GUI 漢字 LT1(Space) LT2(Enter) ハングル Alt
reviung41 MO1 Space Space MO2
nomu30 (最下段メタキー) Alt GUI LT2 LT3 LT1

最後の山場です。 ここで圧倒的な存在感を見せているのが Space キーで nomu30以外のすべてのキーで1キー以上割り当てられています。 それに次ぐ出現率を見せているのが Enter キーで、これはすべて右手側であるものの採用率は75%を超えます。 その次に普通のキーで出現率が高いのは BackSpaceDelete キーでしょうか。これも半分いかないぐらいのキーボードで採用されています。 一般的なメタキー系で言うと Ctrl Alt GUI はそれぞれ30%前後の出現率です。Shiftだけはuzu42のみですが、これは小指左の列での採用ケースが多いためだと思われます。親指シフトタイプのキーボードというものも昔あったようですが現代ではあまり支持されていないようです5

この部分のもう1つの主役がレイヤー切り替えキーです。Ergodox Ez以外のすべてのキーボードでこの部分にはレイヤー切り替えが設定されています。 特徴としては必ず左右に1つずつレイヤー切り替えキーがあることですね。ここら辺はもう定番のようです。

あとはfortitude60, lily58 では [ ({) [ ({) が配置されていたり、Ergodox Ezでは Home End PageDown PageUp が配置されていたり、あまりにキー数が少ないnomu30では3番目のレイヤー切り替えキーがあるぐらいですね。

意外なのが日本語入力系のキーがほぼ見られないことで、yfukuさんの設計した claw44 / bat43 以外は 半角/全角 変換 無変換 英数 かな 漢字 ハングル のようなキーがありません。みなさんどうやって入力モードを切り替えているんでしょうか。

まとめられていないもの

思った以上に長くなりました。まとめは他のレイヤーも見てから行うことにして次へ続きます。


  1. BackSpace ではなく Delete であるのはMacでの利用が念頭にあるのだと思われます

  2. 配置されたキーが BackSpace であるのはそれだけ使用が多いということを示唆しているでしょう

  3. ここでもErgodox Ezは例外

  4. 僕はErgodox Ezを使っていた期間が長かったため意外に感じました

  5. 親指シフトキーボードはJISベースだったことがもしかしたら関係があるかもしれません。