自作キーボード、CorneCherryをかむキーボードにするファームウエアを改造しました。キーボードインプットハッカソン2023の成果です。(こちらは2023年配列です。左手子音、右手母音に戻しました)
改造前はこちらです。CorneCherry用かむ2023
CorneCherryは、42キーありますが、その内の左右5キーずつだけ使います。
複数のキーを同時に押す事で、10キーながら1023種類の文字を指定する事が出来ます。
キーマップの指定の仕方が通常と異なっています。人差し指が重み16、中指が重み8、薬指が重み4、小指が重み2、親指が重み1となっており、例えば「あ」の場合は、まず中指(8)と薬指(4)を押すので、重み12となり、0から始めるので13番目のブロック(32個のグループ)となり、続けて人差し指(16)を押すので、重み16となり、こちらも0から始めるので17番目(1つのブロックが16個ずつの2行となっているので、2行目の最初)となります。ここにKC_Aを指定してあげれば「あ」を打つ事が出来ます。1つの指定で、3種類のキーを指定する事が出来、例えば「ゅ」等は{KC_L,KC_Y,KC_U}と指定しています。このようにレイヤーを跨がらずに指定出来るようになりました。
圧縮フォルダ
ここまでがキーボードインプットハッカソン2023で作成出来た部分です。
キーマップの指定の仕方を、何も押さないが0、人差し指のみを押すが1、中指を押すが2、薬指を押すが3、小指を押すが4、親指を押すが5、人差し指と中指を押すが6、中指と薬指を押すが7、薬指と小指を押すが8、小指と親指を押すが9、親指と人差し指を押すが10、人差し指と薬指を押すが11、中指と小指を押すが12、薬指と親指を押すが13、小指と人差し指を押すが14、親指と中指を押すが15、人差し指だけ押さないが16、中指だけ押さないが17、薬指だけ押さないが18、小指だけ押さないが19、親指だけ押さないが20、人差し指と中指を押さないが21、中指と薬指を押さないが22、薬指と小指を押さないが23、小指と親指を押さないが24、親指と人差し指を押さないが25、人差し指と薬指を押さないが26、中指と小指を押さないが27、薬指と親指を押さないが28、小指と人差し指を押さないが29、親指と中指を押さないが30、全てのキーを押すが31となり、まず左手で、何ブロック目かが決まり、次に右手で何番目かが決まります。
圧縮フォルダ
これはキーボードインプットハッカソン2023の後に完成した部分です。
更に、使うキーの指定をtmk_coreのkeyboard.cを変更しないといけないのではなく、config.hで指定する事を実現しました。keyboardsフォルダのcrkbdの中のkeymaps中にあるkamuフォルダを目的のキーボードのkeymapsフォルダにコピーし、使われているconfig.hの
#define MATRIX_ROWS 8
#define MATRIX_COLS 6
といった記述の下に
#define MATRIX_ROWS2 32
#define MATRIX_COLS2 32
#define KAMU_R0 0
#define KAMU_C0 4
#define KAMU_R1 0
#define KAMU_C1 3
#define KAMU_R2 0
#define KAMU_C2 2
#define KAMU_R3 1
#define KAMU_C3 1
#define KAMU_R4 3
#define KAMU_C4 5
#define KAMU_R5 4
#define KAMU_C5 4
#define KAMU_R6 4
#define KAMU_C6 3
#define KAMU_R7 4
#define KAMU_C7 2
#define KAMU_R8 5
#define KAMU_C8 1
#define KAMU_R9 7
#define KAMU_C9 5
といった記述を追加する事で、実現します。
ここで、
#define KAMU_R0 0
#define KAMU_C0 4
は、左手人差し指が0番目(0始まりなので1番目)のROW、4番目(0始まりなので5番目)のCOLを使う事を指定しています。
#define KAMU_R1 0
#define KAMU_C1 3
は、左手中指が0番目(0始まりなので1番目)のROW、3番目(0始まりなので4番目)のCOLを使う事を指定しています。
続けて、左手薬指、左手小指、左手親指、右手人差し指、右手中指と続いていきます。
これでようやく、キーボードインプットハッカソンで目標にしていた開発が終わりました。
圧縮フォルダ
GitHub
make crkbd:kamu
でメイク出来ます。
左手入力
小薬中人親
○○○●○ は行
○○●○○ ま行
○●○○○ や行
●○○○○ ら行
○○○○● わ行
○○●●○ ぱ行
○●●○○ あ行
●●○○○ か行
●○○○● さ行
○○○●● た行
○●○●○ ば行
●○●○○ な行
○●○○● が行
●○○●○ ざ行
○○●○● だ行
右手入力
親人中薬小
○●○○○ あ段
○○●○○ え段
○○○●○ い段
○○○○● お段
●○○○○ う段
○●●○○ ぁ ゃ ゎ
○○●●○ ぇ ー
○○○●● ぃ ょ
●○○○● ぉ ょ
●●○○○ ぅ ゅ っ
●○●○○ う゛
○●○●○ ゃ
●○○●○ ゅ
○●○●○ ○ゃ
○○○●● ○ょ
●○○●○ ○ゅ
小薬中人親 親人中薬小
○○○○○ ●●○○○ タブ
○●●○○ バックスペース
○●○●○ 変換(スペース)
○○●●○ 確定
○○○●● エスケープ
○●●●○ ●○○○○ ↑
○●○○○ ←
○○●○○ 変換(スペース)
○○○●○ →
○○○○● ↓
●●○○○ シフト+↑
○●●○○ シフト+←
○○●●○ シフト+→
○○○●● シフト+↓
●○○○● 変換、無変換切り替え
○●●●○ かな入力モード
●●○●○ ○●○○○ a
○○●○○ e
○○○●○ i
○○○○● o
●○○○○ u
○●●○○ f
○○●●○ x
○○○●● q
●○○○● l
●●○○○ c
○●○●○ v
○○●○● '
●○○●○ ,
○●○○● j
●○●○○ .
●●●○○ ○●○○○ h
○○●○○ m
○○○●○ y
○○○○● r
●○○○○ w
○●●○○ p
○○●●○
○○○●● k
●○○○● s
●●○○○ t
○●○●○ b
○○●○● n
●○○●○ g
○●○○● z
●○●○○ d
○●○●● ○●○○○ A
○○●○○ E
○○○●○ I
○○○○● O
●○○○○ U
○●●○○ F
○○●●○ X
○○○●● Q
●○○○● L
●●○○○ C
○●○●○ V
○○●○● '
●○○●○ ,
○●○○● J
●○●○○ .
○○●●● ○●○○○ H
○○●○○ M
○○○●○ Y
○○○○● R
●○○○○ W
○●●○○ P
○○●●○
○○○●● K
●○○○● S
●●○○○ T
○●○●○ B
○○●○● N
●○○●○ G
○●○○● Z
●○●○○ D
●●○○● ○●○○○ 1
○○●○○ 2
○○○●○ 3
○○○○● 4
●○○○○ 5
○●●○○ 6
○○●●○ 7
○○○●● 8
●○○○● 9
●●○○○ 0
○●○●○ *
○○●○● /
●○○●○ +
○●○○● -
●○●○○ 00
●○●○● ○●○○○ F1
○○●○○ F2
○○○●○ F3
○○○○● F4
●○○○○ F5
○●●○○ F6
○○●●○ F7
○○○●● F8
●○○○● F9
●●○○○ F10
○●○●○ F11
○○●○● F12
●○○●● ○●○○○ !
○○●○○ "
○○○●○ #
○○○○● $
●○○○○ %
○●●○○ &
○○●●○ '
○○○●● )
●○○○● ~
●●○○○ (
○●●○● ○●○○○ @
○○●○○ ^
○○○●○ _
○○○○● |
●○○○○ :
○●●○○ [
○○●●○ ]
○○○●● }
●○○○● ;
●●○○○ {
●○●●○ ○●○○○ \
○○●○○ `
○○○●○ ?
○○○○● >
●○○○○ <
○●●○○ カット
○○●●○ コピー
○○○●● ペースト
●○○○● アンドゥ
●●○○○ リドゥ
|