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

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

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を設計していきます。

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

引き続き各キーボードのデフォルトキーマップを見ていきます。 レイヤー0は前回見ましたので今回はレイヤー1, 2を同時に見ていきます。

目次

  • 目次
  • キー配置の傾向まとめ
    • レイヤー構成
    • 矢印キー
    • 数字キー
    • ファンクションキー
    • モディファイヤキー
    • Escape Tab BackSpace Delete ` (~) (左上/右上系キー)
    • Home End PageUp PageDown
    • 右手小指外側記号キー + ` (~)
  • 各キーボードのキーマップ分析詳細
    • ergodash/mini - QMK Configurator
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • Caravelle BLE
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1 (Lower)
      • レイヤー2 (Raise)
    • claw44
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • Corne Cherry
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • uzu42
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • fortitude60
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • lily58
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • Ergodox Ez
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • treadstone48
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • bat43
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • reviung41
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
    • nomu30
      • レイヤー切り替え方式
      • レイヤー0
      • レイヤー1
      • レイヤー2
      • レイヤー3
  • NEXT ACTION

キー配置の傾向まとめ

今回はとんでもなく全体が長くなったため、まとめ部分を先頭に持ってきました。 各キーボードごとの詳細はまとめ以降の部分を参照ください。

レイヤー構成

ほとんどがLower - Raise - Adjust 3レイヤー構成です。 以下はその例外です。

  • claw44, bat43: 2レイヤー構成
    • 同じyfukuさん設計。おそらくAdjustレイヤーを不要と判断した省略
  • Ergodox Ezも2レイヤー構成
    • キー数が十分あるため and / or 設計時点で Lower - Raise - Adjust 構成概念がなかったため

矢印キー

  • vimスタイル矢印キーがほとんどを占めており、その他にWASDやそもそもキーボード右下に物理的な矢印キーを割り当てているものがあります
  • 矢印キーはほとんどがレイヤー1か2のどちらかのみに設定されていますが、その傾向はレイヤー1が5つ、レイヤー2が6つとかなり拮抗しています
    • yfukuさんのキーボード2つがレイヤー1なので、ややレイヤー2が有利?

数字キー

  • QWERTY行に数字キーの 1 ~ 0 を割り当てているものがほとんどです
    • 片方のレイヤーに 1 ~ 0 を割り当てたら、もう片方のレイヤーでは ! ~ ) (数字キーに対応する記号)を割り当てているケースもまた多いです
      • 例外はfortitude60, lily58, yfukuさんキーボード(claw44, bat43)のみで前者2つは物理キーがあること、後者はvimスタイル矢印キーとバッティングすることが理由の気がします
      • どちらのレイヤーに 1 ~ 0 を割り当てるかは レイヤー1が5つ、レイヤー2が6つとこれも拮抗しています
        • yfukuさんのキーボード2つがレイヤー1なので、ややレイヤー2が有利?
    • 物理的な数字行が存在するfortitude60やlily58でも同様の配置を行っているため、この配置はかなり普及しているようですね
      • Planckのキー配置も同様の方針のため、このキー配置の祖先はPlanckかもしれません
  • その他にはASDFG行に割り当てているもの(claw44, bat43)、ASDFGZXCVBへ割り当てているもの(ergodox mini)などがあります

ファンクションキー

このキーの配置は様々です。

  • 片手2行スタイル
    • 左手中段下段スタイル (ergodash mini, Caravelle BLE, fortitude60, lily58, Planck)
      • はみ出し2キーは
        • 最下段 (ergodash mini)
        • 左手内側追加キー (Caravelle BLE)
        • 右手側 H N (fortitude60, Planck)
        • 左手外側キー (lily58)
    • 左手上段下段スタイル (claw44)
      • はみ出し2キーは
        • 左手外側キー (claw44)
    • 左手上段中段スタイル (treadstone48)
      • はみ出し2キーは
        • 左手下段キー (treadstone48)
    • 右手中段下段スタイル (reviung41)
      • はみ出し2キーは
        • 右手外側キー (reviung41)
  • 両手1行スタイル
    • 上段(QWERTY行)スタイル (lily58, nomu30)
      • はみ出し2キーは
        • 左手右手外側キー (lily58)
        • 割り当てない (nomu30)
    • 最上段(数字キー行)スタイル (Ergodox Ez)
      • はみ出し2キーは
        • 右手外側キー (Ergodox Ez)
  • 割り当てなし (Corne Cherry, uzu42, bat43)

比率としては左手中段下段を使うスタイルと割り当てないスタイルが多いです。 前者はおそらくPlanck由来で、後者はそもそもファンクションキーを使わない志向なのだと思います。 全体を俯瞰してみると片手の2行へ割り振るスタイルと両手を通じた1行へ割り振るスタイルがあり、前者のほうが多いです。 ただ、後者には 1 ~ 0 の位置と F1 ~ F10 の位置を合わせられるという利点もあります。

また、ファンクションキー自体を配置するレイヤーですが、レイヤー1: 7つ レイヤー2: 3つということでレイヤー1のほうが多いようです。

モディファイヤキー

Ctrl Alt Shift GUI などのキーについてはuzu42, nomu30を除いて追加されていません。 これはモディファイヤキーをレイヤー間で追加すると混乱しやすいこと、レイヤー切り替えキーとモディファイヤキーの間で押す順番によって挙動が変わってしまうことなどが理由だと思われます。 また、既存のモディファイヤキーを別のモディファイヤキーへ変更することもまったくされていません。

Escape Tab BackSpace Delete ` (~) (左上/右上系キー)

レイヤー0へ Escape を配置していないキーマップでは左上を Escape にしたり、小指左の列がないuzu42で Tab を追加したり、 BackSpaceDelete の対称性からレイヤー0で片方にしていたのをレイヤー1,2では他方に入れ替えたりしています。 レイヤー0で比較的行き場を失いやすい ` (~) もどちらかのレイヤーで割り当てられている事が多いです。

Home End PageUp PageDown

これらのキーも使用頻度が高いため、比較的レイヤー1,2に配置されているケースがあります。

  • vimスタイル矢印キーの下に添えるスタイル (Caravelle BLE, uzu42(Home, Endのみ), reviung41)
  • 物理矢印キーに配置するスタイル (ergodash mini, treadstone48)
  • なし (claw44, Corne Cherry, fortitude60, lily58, Ergodox Ez(レイヤー0に存在), bat43, nomu30)

概ね矢印キーとの相関関係があり、 以下の対応をもたせることが多いです(Caravelle BLE, ergodash mini, treadstone48)。 これは矢印の上下と PageUp PageDown の間に直感的な相似性があるためでしょう。 またかなり昔からナビゲーションキーを置く空間が無いノートPCが Fn キーと同時に矢印キーを押したときの挙動を以下にしていたため、それに影響を受けた / 合わせていると捉えられるかもしれません。

矢印キー ナビゲーションキー
Home
PageDown
PageUp
End

右手小指外側記号キー + ` (~)

最もバラバラなのがこの記号キーの割当です。

  • 9 ( 0 ) の下に { } [ ] を置くスタイル (Caravelle BLE, uzu42, fortitude60, lily58)
    • 亜種: 左手側で { } ( ) [ ] を左右ペアに上下へ並べるスタイル (Ergodox Ez)
  • 右手中段下段ペアスタイル
    • 並びに規則性なし? (Caravelle BLE)
    • 並びは左上のキーから順番 (Corne Cherry)
  • 中段下段シングルスタイル (並びは左上のキーから順番)
    • 右手
      • 例外なし (lily58)
      • \ (|) が重複していたり # (~) という特殊キーがあったり (fortitude60)
    • 左手
      • 例外なし (reviung41)
    • 両手
      • [ ] /\ のみ左右ペアで左手へ配置 (nomu30)
  • 左右手 線対称スタイル ( [ ] { } ) (claw44, bat43)
  • 右手小指外側記号キー全4行を3行に押し込んで再現スタイル (treadstone48)
  • 一部規則性なし? (claw44, uzu42, Ergodox, bat43)
  • 割り当てなし (ergodash mini (レイヤー0ですべての記号キーがまかなえている))

しかし、一部規則性が見えないものを除けばすべてのキーマップは次の2点を考慮していることがわかります。

  1. 対応する記号キー([ ] ( ) { } < > / \)を考慮
  2. 101キーボードの左上に近いキーほど、キーマップでも左側に配置
続きを読む

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ベースだったことがもしかしたら関係があるかもしれません。