MiniDoxの修行記録(キーマップ+キースイッチ+キーキャップ編)
この記事はアドカレ2018の自作キーボード#3の3日目の記事です。
アドカレ2018の自作キーボード#3 の2日目の記事は、大岡俊彦さんの
でした。(配列沼!!!)
もう12月、アドカレの時期ですね! 毎年、この時期はアドカレの記事を読むのに忙しくて、年末までに記事を書けなさそうなので、アドカレが始まる前に滑り込みでザッと書いちゃいます。
※書き終わらなかったので、アドカレ2018の自作キーボード#3に突っ込みました。
さて、私のブログ、前回の記事↓は MiniDox が Endgame という話でした。
ただ、このMiniDox を使い倒していくには、いくつか超えるべき壁があります。(壁がいくつあるのかは自分でも分からない…)
今回は、以下の3つの壁について書きたいと思います。
- 第一の壁: キーマップ
- 第二の壁: キースイッチ
- 第三の壁: キーキャップ
第一の壁: キーマップ
自作キーボードをやる人の多くは、各メーカーが出している既成品のキー配置やキーマップが気に食わなくて、手を出しているのかと思っています。 自作キーボードでなくても、キーマップを変えること自体はソフトウェアでできたりしますが、キーボード自体にキーマップが書き込めると、どのPCに接続してもすぐに使えるので素敵です。
上図のkeyboard-layout-editor.comのリンク → Keyboard Layout Editor
ここ3ヶ月ほど使ってきて、今はこの状態になってます。まとめてみると複雑そうに見えますが、使っている分には複雑、という感覚がありません。要は修行あるのみです。
自作キーボードの多く、特に、キー数が少ないキーボードほど、キーマップにレイヤーというものを設定していることが多いです。
レイヤーはキー全体のマップを一時的に変化させるために設定されていて、それでキー数が少ないという欠点*1を補うわけです。
私のMiniDoxの場合、上図の下の方、親指でタイプする位置にある RAISE
、LOWER
と書かれている2つのキーがレイヤーを切り替えるキーです。
この2つのキーを使って、
RAISE
キー もLOWER
キー を押さない デフォルトレイヤー*2RAISE
キー を押した状態の RAISEレイヤーLOWER
キー を押した状態の LOWERレイヤーRAISE
キー とLOWER
キー をともに押した状態の ADJUSTレイヤー
という4つのレイヤーを使い分けることができます。 実質30×4 + 6=126くらいの数のキーにマップできます!*3 ほぼ無限大ですね。
※これとは違って、タイプしてレイヤーをトグルする方法などもqmk_firmware*4の中にあります。→ QMK Firmware
例えば、上図の Q
のキーの挙動は、
- このキーのみを押した場合 →
q
が入力される RAISE
キーを押した状態でこのキーを押したとき →1
が入力されるLOWER
キーを押した状態で、このキーを押したとき →!
が入力されるRAISE
キーとLOWER
キーを押した状態で、このキーを押したとき →F1
(ファンクション1キー)が入力される。- (もちろん、
shift
が押された状態で、このキーを押したとき →Q
が入力されます。)
という具合で、他のキーも同様です。
このようにレイヤーを駆使していくわけですが、やはり物理的にキー数を減らしたことによる副作用が全くない、というわけではないです。 特に、複数のModifierキーを同時に押すような入力は困難になります。 だからと言って、その入力をModifierを削ったもので代用しようとすると、入力がバッティング(タイミング的ではなくキーの組み合わせ的な)します。 少し話が逸れますが、Emacsでは、キーバインディングがかぶってしまって、あれこれ考えますよね。あれに似た感じです。 ということで、Modiferを削らずに入力するには、キーにその組み合わせをマップしてしまいます。
例として、上図のFキーの SCSTFL
というマップです。
qmk_firmwareのキーマップを記述するファイル keymap.c
内で、
#define KC_SCSTFL LGUI(KC_PERC)
という記述をしています。これはC言語のdefineで、この場合はKC_SCSTFL
という表記にLGUI(KC_PERC)
というのを割り当てています。
このKC_SCSTFL
からKC_
*5を除いたのがSCSTFL
です。
このマップをされたキーを押すと、cmd + %
が入力されます。
これは、Mac(Mojave)でスクリーンショットコントロールを起動するショートカットshift + cmd + 5 (cmd + %)
です。
このように、よく使うショートカットにはマップを割り当てれば、Modifier同時押しの弱点は克服できます。
あと、私がよく使うマップでは、下の画像のあたりのキーのLOWER
レイヤーに割り当てられているWN****
のマップである、ウィンドウ系のショートカットのマップです。
ウィンドウのコントロールに Spectacle を使っていて、そのショートカットを割り当てています。
それから、地味に便利なのが、
上図のキーの RAISE
のSFTSPC
です。SandS
の影響で、shift + space
が入力できなくなっているのを補っています。
IMEが有効化されているときに、IMEを切り替えることなく半角スペース
が入力できます。
他には、親指周りのキーは、キーを押している時間の長さで入力が変わるTap/Hold
でSPACE/SHIFT
、TAB/OPTION
、ESC/COMMAND
、ENTER/CONTROL
でキーマップ数を稼いでいます。
Tap
とHold
の時間の長さや挙動等はqmk_firmwareで色々と調整可能です。→
QMK Firmware
また、このあたりの問題は、キーをタップする回数によって入力を変えられる tap dance という方法でも解決できるかと思います。 → QMK Firmware
好みのキーマップをとことん究められます!
第二の壁: キースイッチ
さて、次の壁はキースイッチ。このあたりは好みが別れますが、RealForceに慣らされてしまった私は、キーを押す力が衰えているので、押下圧をとにかく軽くしたいのです。 さらに、押している間にキースイッチ側からのリアクションはあまりいらないので、リニアなキーを好みます。
- 押下圧が軽い
- リニア
前使っていたErgoDoxがCherry赤軸で45gf、重すぎます。Gateron白軸で35gf。軽い、よいです。これにしましょう!
「でも、待って…。もっと軽くできる方法があるの。」(天の声)
ということで、Gateron白軸のキースイッチを分解してスプリングを変えます。
私は、spritdesignsで30S(20cN)*6を購入しました。
これで、20cN(20gf)のキースイッチの完成です。慣れないうちは、ホームポジションを探るように指を乗せただけで入力されてしまいます。 しかし、慣れ(修行)です。慣れれば、霊気でも入力ができるようになると思います。(思います!)
その他には、
- 軸(stem)の色が世界一かわいいリニア軸 Tiffany Blue TealiosR11 Tiffany Blue Tealios | 遊舎工房のスプリングを50P(35cN) *7 に交換。
- Krytox 103(https://www.spritdesigns.com/product-page/krytox)を軸に塗る(lube)。*8
- 軸とハウジングを別のスイッチと交換。キースイッチ部にLEDがついているキーボードには透明ハウジングのキースイッチがいいですよね。
- 静音化リングで底打ちから指を守る(慣れるまでは底打ちしやすいので)https://amzn.to/2PdjFu3
好みのキースイッチを作れます!
第三の壁: キーキャップ
最後はキーキャップ。ここでも軽さを求めます。 数値上ではなく、タイプした感覚的に押下圧が軽いように感じるキーキャップがあります。
キーキャップの形状(プロファイル)の前提知識は、以下の2つのページが参考になります。
- What keycap Profile do you prefer the most?
- [IC] MIX profile "Big Bang" Ortholinear Keycap Set available on KBDfans
OEM、DSA、XDA、MDAを使ってみて、軽く打鍵できると感じるのは、XDA、そしてXDAとOEMのいいところ取りをしたようなMDA(MIX)と呼ばれるプロファイルです。 よくあるOEMとの違いは、キーキャップ上面の面積が一回り大きくなっていることです。 これによりタイプしたときにキースイッチに力が加わりやすく感じるのでしょうか。 個人的には、OEMより1、2割軽く押せている感覚があります。おそらく、キースイッチにも依るとは思いますが。
この世にはあなたがまだ知らないキーキャップがたくさんあります!
最後に
ということで、使いこなすには修行が必要ですね。修行後の今は、ストレスフリーなタイピングができてスーパーミラクルハッピー*9です。これで2019年も戦っていけます!ただ、精進は続けていきます(特に、キーマップは生き物)。
今後は、
- MDA BIG BONE KEYCAPS SET – KBDfans(MDAプロファイルキーキャップ)を発注済み。CHERRY MX GOLD-PLATED SPRINGS (100PCS) – KBDfans(Cherryの35gfスプリング)も一緒に来る。
- 軸と言えば、Cherry軸なので、静音赤軸を調達したい。もちろん、スプリングは30Sに入れ替えます。
- colosseum44という3Dキーボードの製品化待ちです。個人的にはどうにかして、外1列を落としてMiniDoxに近づけたいです。 【ヒトバシラー専用】colosseum44【買うな】 - DMM.make クリエイターズマーケット
- Centromere Mini BLEも製品化(GB)待ちです。BLEということで技適はおそらくないので、使えないんだけどね。(技適、いつになったら変わるの…) Centromere Mini BLE - rechargeable, bluetooth, and ergonomic : MechanicalKeyboards
- translucentのMDAキーキャップが欲しいです。
キーマップについては、本家リポジトリのforkを、github上に置いているのでご参考にしてください。
↓MiniDox github.com
↓crkbdの外一列落としのMiniDox github.com
あと、お約束の
この記事は今のEndgameであるMiniDoxことMiniDox+Tiffany Blue Tealios lubed, converted to 50P + translucent DSAで書きました。
※仕事では、MiniDox + Gateron White lubed, converted to 30S + Big Bang を使ってます。
Endgameはいくつあってもよい!
アドカレ2018 自作キーボード#3の4日目は…
せきごん@BLE Micro Pro予約受付中 (@_gonnoc) | Twitter
さんです!
ここまで読んでいただきありがとうございましたー。
*1:運指が楽という点では利点でもある
*2:多くのQWERTY配列ベースのキーボードでは QWERTYレイヤー と呼ばれています
*3:親指でタイプする6つのキーはレイヤー切り替え等で使うため、レイヤーごとにはあまり割り当てないので
*4:自作キーボードにキーマップを書き込むソフト GitHub - qmk/qmk_firmware: keyboard controller firmware for Atmel AVR and ARM USB families
*5:key characterとかの略でしょうか…そういう共通の表記
*6:単位表記は製品ページに準じてます。計算すれば分かりますが、 20cN≒20gf。変換による誤差は1gf以下くらい
*7:ついでに、Progressiveの一番軽い、50P(35cN)も購入してました。https://www.spritdesigns.com/product-page/progressive 製品ページのグラフが正しければ、押下開始後の押下圧は通常のスプリングよりもある程度軽いのでは、という期待からです。
*8:私の感覚では押下圧が少し重くなる感覚があります。軽い軸だからなのかもですが。ただ、打鍵感はよくなります。