色々なやり方がある。
なので、そもそもそれを俯瞰する記事がないなーと思ったので、
大づかみに記述したい。
具体的な細かいことは、
たとえばKeyballに親指シフトを組み込む例がある。
https://note.com/brave_nerine6819/n/nc9e906b410e9?sub_rt=share_pb
でもこれだと、
もっと大きなことを解説してないなーと思ったので、
これ以前の話をする。
1. US配列/JIS配列
2. IMEのオンオフとレイヤー
3. ショートカットの扱い
4. 各キーボードへのアレンジ
1. US配列/JIS配列
QMKはUS配列前提で動いている。
だから自作キーボードはUS配列のキーキャップを使うし、
キーコードもUS前提だ。
JISはマイナーな日本の独自機構にすぎない。
だから、カナ配列を使えないわけではない。
OSで、USかJISかを切り替えられる。
というか、
JISモードでは、USのキーコードを送ったら、
一部のキーコード(数字のシフト部分と、記号キーのいくつか)が、
JISに読み替えられるだけの話だ。
逆に、
USモードでは、JISキーにあるキーコードを使えない。
(全角半角、変換、無変換、ひらがなカタカナ、
そして「ろ」キーだ。JISキーボードの方がUSキーボードより多く、
それらのキーはインターナショナルキーコードとして定義されている)
なので、
基本的に「OSはJISモードにしておいて、
キーコードはUSのものを使い、
JISでうまく振る舞うようにコーディングする」
という変則的なコーディングをする必要がある。
これをまず飲み込まないと、
カナ配列をうまくQMKで実現することは難しい。
OSがUSと扱ってるときに、
カナ配列を無理やり使うことも可能だ。
記号系がUSになって、コードも印字も一致するから、
まあ気持ちは良い。
その代わり、
JISにあるキーコードが一切使えなくなる。
僕は「再変換」ただ一つを利用したいがため、
USではなくJISを使っている。
(選択範囲で変換キーを押すと、
変換中確定前に戻してくれるため、
変換ミスを直す時にとても便利な機能だ)
これを使わないなら、
USモードでカナ配列を実装するといいだろう。
2. IMEのオンオフとレイヤー
基本的には、
IMEオフのときは通常の英語配列、
たとえばqwertyを使い(ここはたとえばDvorakでもよい)
IMEオンのときにカナ配列になる、
という構造を取る。
なので、IMEオンオフが、
カナ配列の入口と出口になるわけだ。
IMEオンかつqwertyローマ字を使う、
IMEオンかつ○○配列を使う、
IMEオフしてqwerty英語に戻る、
などの仕組みを作ろう。
自分で仕様を決めたまえ。
その上で、
たとえばマクロキーA, B, C……などをつくり、
それぞれのマクロキーにその設定を当てれば良い。
たとえば、
マクロキーA: IMEオン、○○配列レイヤーへ移行
マクロキーB: IMEオン、qwertyレイヤーへ移行
マクロキーC: IMEオフ、qwertyレイヤーへ移行
などのように組み上げるとよい。
僕はBはイラネと思ってるけど、
万が一何かがいるとき用かな。
それを親指近辺のオイシイ所に置くと便利だね。
3. ショートカットの扱い
○○配列になっているときに、
ctrl+Sを押してもセーブできない。
Sの位置にあるカナ、薙刀式なら「け」だから、
ctrl+KEが入力された扱いになってしまう。
これは使いにくい。
なので、
「ctrl, win, altを押しているときだけ、
qwertyレイヤーに戻り、
離したら現在のレイヤーに戻る」
を組む必要がある。
現在のレイヤーという変数が必要だね。
一から組むよりも、誰かがやってくれてるのが多いだろうから、
それを参考にされたい。
4. 各キーボードへのアレンジ
親指に何キーあるのか、
小指外に何キーあるのか、
数字段はあるのかないのか、
などは各キーボードによって異なり、
それによってkeymap.cの構造が異なる。
なので、
物理のどのキーにどの論理役割を当てるかは、
移植者によって考えが異なることがある。
こっちの方が使いやすいのに、
と思うならコードをいじる必要があるし、
そもそも他のキーボードのコードを、
こっちのキーボード用に変形する必要がある。
keyballと自分のキーボードの差を見ながら、
上に引用した記事を読まないと、
訳がわからなくなることうけあいだ。
「○○配列を自作キーボード**に移植しました!」
という記事はたまに見るけど、
**以外では使えず、
一般性がないことに筆者は気づいていない。
なので、もっと一般的な組み込みの時に、
気をつけるべきことについて列挙したのである。
さて。
これらの4つの柱を、
どのようにするかを決めてからでないと、
カナ系新配列を自分ところのQMKに移植しても、
使いにくい、使えない、ってことが全然あると思う。
親指シフトを自作キーボードで、
という記事はたまに見かけるのだが、
こうした親指シフト以前の、
QMKで配列をどうqwertyないし英語配列と共存するか、
という話が出てこないので、
まずそこからでしょ、
と僕は思う。
これらの4つの基盤がそろったうえで、
○○配列をのっければ、
どんなカナ系配列でも乗っけられる。
(メモリが足りれば。とくに薙刀式はメモリ泣かせで有名)
これはローマ字系配列でも同じだ。
参考にされたい。
基本的には、
IMEオンしたときにレイヤー変更、
IMEオフした時にデフォルトレイヤーに戻る、
という挙動になると思う。
IMEオンオフのコードはKC_LANGのキーコードに入っているが、
これOSがJISモードじゃないと受け付けないんじゃなかったっけ。
(このへん忘れたので調べてね)
ちなみにUSモードでのデフォルトのIMEオンオフは、
alt+グレイブ記号(Vの左右反対のやつ)だ。
これにしたWinowsのアメリカの設計者は死ね。
植民地の民は苦しんで当たり前という差別意識そのものだ。
というわけで、
かしこい我々は、
QMKで良きカナ配列を使い、
思想と書き物の自由の海へ出よう。
2025年07月13日
この記事へのコメント
コメントを書く
この記事へのトラックバック

