- ① 多彩な自作キーボードを使う上でのキーマップの問題
- ② 分割型40%キーボード(など)のキーマップを列挙してみる
- ③ 自作キーボードの Raise / Lower / Adjust レイヤーの起源と推奨される使い方があるかの調査
- ④ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー0編)
- ⑤ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー1,2編)
- ⑥ 分割型40%キーボード(など)のキーマップを比較してみる (レイヤー3編)
- ⑦ 13個のキーマップから分割型40%キーボードの最大公約数的キーマップを設計する
- ⑧ 分割型40%キーボード用のsensibleキーマップを設計する
- ⑨ Sensibleキーマップを横展開する - kbigwheelのプログラミング・ソフトウェア技術系ブログ
というわけで、各自作キーボードの実際のキーボードを比較してみます。 qmk_firmwareのdefault.cを見て比較するのは大変なので、qmk configuratorで描画してもらった結果を使います。
まずはLayer 0から。
目次
キーマップ一覧
分割型40% | |
---|---|
ergodash/mini - QMK Configurator |
キーマップ - satt99/caravelle-build-guide: Build guide for Caravelle keyboard |
claw44/rev1 - QMK Configurator | silverbullet44 - QMK Configurator QMK Configurator用のデフォルトキーマップデータがおかしいためスキップ qmk_firmwareのCコードと比較すると間違っていることがわかります |
crkbd/rev1/common - QMK Configurator | uzu42 - QMK Configurator |
分割型60 ~ 80% | |
---|---|
fortitude60/rev1 - QMK Configurator | lily58/rev1 - QMK Configurator |
Ergodox Ez - QMK Configurator |
一体型 | |
---|---|
treadstone48/rev2 - QMK Configurator | bat43 - QMK Configurator |
reviung41 - QMK Configurator | nomu30/rev2 - QMK Configurator |
分析
分割型キーボードの中でも最大クラス(= 最大公約数的に使える)であるErgodoxのキー配置をベースにキーの部分ごとのキーマップを考えていきます。
アルファベット部分
ありがたいことにすべてのキーボードでアルファベット部分の配置は一致しています。 なのでここについては全キーボードで共通にしてよいです。
右手一段下の記号部分
ここはuzu42とnomu30以外は ; , . /
で統一されています。ちなみに Shift + ;
が :
であるためみなさんANSIキーボードベースのようです。
uzu42は小指ホームポジションが Enter
です。これは利用頻度のための最適化だと思われます。
nomu30はこの部分のキーが事実上ありません(SpaceとEnterキーがありますが後述の右手外側列扱いにします)。
数字キー行
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は利便性のために右上を Delete
、1lily58は左上を Escape
にしています。
Ergodox Ezは左上が =(+)
です。これはANSI規格上の -(_)
の更に右のキーです。
参考にPreonicの情報も追加してみました。これはfortitude60と同じ考えですが Delete
ではなく BackSpace
を右上においています。
どれを選択するか
101キーボードとの絶対的な近似性から ` (~)
- (_)
もしくは使用率と相対的な近似性から Escape
BackSpace(Delete)
が良いような気がします。
人差し指の内側の列
この部分は基本的に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な一体型キーボードは増える気がしていて、そうなると中央にキーやトラックボールを置くキーボードはこれから増えそうです。
小指の外側の列
この列は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
を置いています。
左上についても Tab
か Escape
でほぼ統一されています。Ergodx Ezはここも独自路線ですが前述の通り黎明期に決まったdefaultなので無視します。
ここに Tab
と Escape
のどちらを置くかは微妙なところですが、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
でしょうか。
最下段
ここは親指部分と区別が付きづらいですが、概ね親指以外の指で押すキーの範囲とします。
キーボード | 左手側 | 右手側 |
---|---|---|
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があります。
親指部分
キーボード | 左手側(左と上が優先) | 右手側(左と下が優先) |
---|---|---|
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%を超えます。
その次に普通のキーで出現率が高いのは BackSpace
や Delete
キーでしょうか。これも半分いかないぐらいのキーボードで採用されています。
一般的なメタキー系で言うと Ctrl
Alt
GUI
はそれぞれ30%前後の出現率です。Shift
だけはuzu42のみですが、これは小指左の列での採用ケースが多いためだと思われます。親指シフトタイプのキーボードというものも昔あったようですが現代ではあまり支持されていないようです5。
この部分のもう1つの主役がレイヤー切り替えキーです。Ergodox Ez以外のすべてのキーボードでこの部分にはレイヤー切り替えが設定されています。 特徴としては必ず左右に1つずつレイヤー切り替えキーがあることですね。ここら辺はもう定番のようです。
あとはfortitude60, lily58 では [ ({)
[ ({)
が配置されていたり、Ergodox Ezでは Home
End
PageDown
PageUp
が配置されていたり、あまりにキー数が少ないnomu30では3番目のレイヤー切り替えキーがあるぐらいですね。
意外なのが日本語入力系のキーがほぼ見られないことで、yfukuさんの設計した claw44 / bat43 以外は 半角/全角
変換
無変換
英数
かな
漢字
ハングル
のようなキーがありません。みなさんどうやって入力モードを切り替えているんでしょうか。
まとめられていないもの
思った以上に長くなりました。まとめは他のレイヤーも見てから行うことにして次へ続きます。