Previous Post | Top | Next Post |
TOC
キーマップ改善の経緯
キーマップ改善の基本方針としてのタップとホールドの有効利用は、QMK (4) – キーマップ改善から変わっていません。
以前から遊んでいたAVR系でQMKを使うcgc56という一体型キーボードと、 今回ARM系でQMKを使うSTM32F411CE (4)で作ったcgs58・cgs50という分割キーボードと、 できれば将来interceptionを使いLaptop PCの内蔵キーボードの全てで、キーマッピングの基本部分を共用できるようにすることにも配慮しました。
特にcgc56を使ってきた経験を生かし、細かな調整を加えました。設計指針の要点をもう一度まとめると以下です。
- 標準キーボードとキーの位置をできるだけ変えないことで、使用時のメンタルストレス無くする。(QWERTYの中心利用。ブロック毎に動かす感じ。)
- フィジカルストレスが少なくなるように、指の動きを少なくする。「基本的に使う部分」を(3rows x 6columns + 2thums ) x 2sides とし、1U以上の動き無くす。
- HOME-ROW MODを採用する。(HOMEポジションがわかりやすいキー配置)
- 日本語と英語・コーディングの両方の用途に配慮する。(ANSIなのに「無変換」「変換」キーをつける変則構成。)
キーマップ pico
「基本的に使う部分」を、左6x3_2
キーと右6x3_2
キーに限定し、それらのキーの使用は以下のようなpico系配列に落ち着いて来ました。
│Tab│ Q │ W │ E │ R │ T │***│***│ Y │ U │ I │ O │ P │Bsp│
│Esc│lsA│lcS│laD│lgF│raG│***│***│raH│lgJ│laK│lcL│ls;│Ent│
│Mut│ Z │ X │lgC│ V2│ B │***│***│ N │ M │ , │ . │ / │Psc│
│***│***│***│***│Muh│Sp1│***│***│Sp1│Hen│***│***│***│***│
これだと、全ての指のポジション移動量を1U以下に押さえられます。
キー配列はANSIベースです。
ちょっと変則的ですが、日本語キーボードの変換・無変換キーをSPACEの横におきます。これでソフトは動きます。
所持するキーボードがキーが多めなので上記配列で使わないキーは適当に割り振ります。(あまり使わない気もしますが)
HOME-ROW-MODで出番の減った両端のシフトキーを、タップで使わないのももったいないので、メディアキーなどに割り振ります。ただHOLDはシフトのままにしておきます。viの「ZZ」等はこの方が良いので。
キーマップの状況とキーボードの状態
-
cgc56のソースコード keymap=
pico
- cgc56 with DSA profile keycaps (pico):
- USBコネクタ部をマグネット接続としたのが良かった。
-
cgs58のソースコード keymap=
pico
- cgs58 with OEM profile keycaps (pico):
- 少々大きすぎた。両端を叩き斬って、下のcgs50に改造した。
-
cgs50のソースコード keymap=
pico
- cgs50 with OEM profile keycaps (pico):
- A4ケースに収まるようになった。
マウスキー
デフォールトの設定だと細かな動きができず「使えない」と殆ど思い込んでいたが、動くステップを最低にして調整したら意外と使えることに気づきました。
それに合わせて、キーマップいじりました。
今後への考察
40キーで十二分に使えるキーボードが作れそうな目処が立ったので、ダイオードレスのスプリットキーボードが作れるかピンを数えて見ました。
Blackpill (TOP VIEW)
PIN PIN
USB-C
+---+-----+---+
K01 ------- B12 |* | | *|5V -----
K02 ------- B13 |* | | *|GND -----
K03 ------- B14 |* | | *|3V3
K04 ------- B15 |* +-----+ *|B10 ----- K23
K05 ------- A8 |* B N *|B2 ------ *** BOOT1
[USB] ------- A9 |* O R *|B1 ------ K22
[USB] ------- A10 |* O S *|B0 ------ K21
[USB] ------- A11 |* T T *|A7 ------ K20
[USB] ------- A12 |* 0 *|A6 ------ K19
K06 ------- A15 |* *|A5 ------ K18
K07 ------- B3 |* *|A4 ------ K17
K08 ------- B4 |* *|A3 ------ K16 (RX2)
K09 ------- B5 |* *|A2 ------ K15 (TX2)
TX==\ /=TX1 ------- B6 |* *|A1 ------ K14
RX==/ \=RX1 ------- B7 |* *|A0 ------ *** USR
K10 ------- B8 |* K *|R ------ *** NRST (/RST, ~RST)
K11 ------- B9 |* E *|C15 ----- K13
**==5V==** ------- 5V |* Y *|C14 ----- K12
**==GND=** ------- GND |* *|C13 ------*** BLUE LED (NEOPIXEL?)
3V3 |* @ @ @ @ *|VB
+-------------+
^ ^ ^ ^
| | | |
3V3 ---------------+ | | |
SWDIO -----------PA13--+ | |
SWSCK -----------PA14----+ |
GND ---------------------+
C13をネオピクセル系のLEDドライブにも使えそうなので十分ピンがあります。 OLEDに使いやすいピンを確認しとく必要はありそうです。
Previous Post | Top | Next Post |