自家用QMK薙刀式をもっと手軽にリマップしたい方へ。
先日、大岡先生が薙刀式v_13(仮)のキーマップを発表されていましたね。
私も早速試してみようと、QMKのプログラムを弄っていたのですが、
濁点や拗音が絡むキーの修正ってめんどくさいですよね。一つのキーが動いただけで、3つも4つも修正箇所が出てくるのは正直だるいです。
薙刀式はせっかく清濁拗音同置という素晴らしい特性を持っているのに、
いちいち一個ずつ直していくのはもったいないと感じ、どうにかならないかと考えてこんなものを作りました。
naginata_rimapez
どういうものか簡単に説明すると、#define
であらかじめ五十音にキーコードを適用しておき、濁点や拗音でそれを使いまわすことで
清音のみの変更でリマップができるという仕組みです。
この作品は大岡俊彦様が考案された「薙刀式カナ入力」をeswai様がQMK_firmware上で実装した通称「QMK_薙刀式」をベースにしています。
GNU General Public Licenseに基づき、改変や公開は自由に行うことができますが、掲載している多くのデータは、製作者様に著作権があるものです。その点を予めご了承ください。
お使いのnaginata_v12.cファイルにnaginata_remapezのこの部分
を組み込み移植内容が変わりました。//remapez
とコメントで囲ってある部分(大きなかたまりと、836行目の一文)を移植して、config.h
に
#define remapez
と書けば導入できます。
簡単ですね。
#ifdef
#else
で定義してあるので、config.h
のdefineをコメントアウトすればいつでも戻せます。
//#define remapez
また、すべてプリプロセッサによる改造なので、容量の増加は全くありません。
カツカツの方もご安心ください。
ただしひとつだけ惜しかったのが、濁点や外来語に使うキーを右手から左手側(もしくはその逆)に移動する場合、濁点、半濁点キーの左右も手動で入れ替えなければならないところです。
例えば、「く」と「っ」を入れ替え、H位置からG位置に移動したいとします。
「く」は「ぐ」になったり、「くぁ」で左手の半濁点キーを使たりしますね。
よってこの時変更するのは以下の5か所です。
2020/09/20 濁音、半濁音の左右にも完全対応しました。全てのリマップは清音の変更のみで行えます。
例えば、「て」と「る」が入れ替えたいならば、
#define KOGAKI B_Q #define KANA_KI B_W #define KANA_TE B_E → #define KANA_RU B_E #define KANA_SHI B_R //T left ~~中略~~ //Y RIGHT //U BS #define KANA_RU B_I → #define KANA_TE B_I #define KANA_SU B_O #define KANA_HE B_P
「ひ」と「っ」を入れ替えたいなら、
#define KANA_TO B_D #define KANA_KA B_F //G 撥音 → #define KANA_HI B_G #define KANA_HO B_Z ~~中略~~ //G 撥音 #define KANA_HO B_Z //シフトの方も変更すること。 #define KANA_HI B_X //シフトの方も変更すること。 → コメントアウト #define KANA_HA B_C #define KANA_KO B_V ~~中略~~ // {.key = (KOGAKI|KANA_WA)& ~B_SHFT , .kana = "xwa" }, // ゎ {.key = KOGAKI|KANA_WA| B_SHFT , .kana = "xwa" }, // ゎ {.key = B_G → B_X , .kana = "xtu"}, // っ // 清音拗音 濁音拗音 半濁拗音 ~~中略~~ #define UNDEFINED_SHIFT_Z {.key = B_Z|B_SHFT , .kana = "ho"} //C を #define UNDEFINED_SHIFT_X {.key = B_X|B_SHFT , .kana = /*"hi"*/ → "xtu"} #define KANA_WO (B_SHFT|B_C) //V 読点
これでOKです。
今回は極端に変更が多い例を出しましたが、ほとんどの入れ替えにおいてリマップの手間は大幅に短縮されていると思います。
配布したファイルはv_13版の配列にしてあるので、試しにv_12に戻したり、自家用の配列に直したりしてみてください。
zip版も置いておきますね。
Q&Aコーナー
Q remapezってなに?
A リマップが簡単 → remap easy → remap ez です
Q 他の配列にも使える?
QMK薙刀式が持っていた他の配列へ応用可能な柔軟性を殺し、薙刀式の特性をフル活用して特化させた改造なので、難しいです。
やれないことはないですが、cの知識と根気が求められます。
Q 一部の濁点などを例外として異置にしたい(例 「づ」を「る+濁点」とか「し+シフト+濁点」で打ちたい)んだけど。
A 適当なところに定義を追加するか、衝突しているkanaを直接書き換えてください。
追加の例 {.key = DAK(KANA_RU) , .kana = "du" }, // づ {.key = DAK(KANA_RU)|B_SHFT , .kana = "du" }, // づ(冗長) 書き換えの例 {.key = KANA_ZI|B_SHFT , .kana = /*"zi"*/"du" }, // シフト押しながらの「し」で「づ」を入力 2020/09/20 定義を変更しました。 {.key = DAK(KANA_SHI)|B_SHFT , .kana = /*"zi"*/"du" }, // シフト押しながらの「し」で「づ」を入力
Q 中指シフトにしたいんだけど
A 濁点と同じ要領でLRを定義して、キーごとにB_SHFT
をNAKA_SHFT
とでも書き換えていってください。
Q 完全清濁異置にしたいんだけど。
A 通常のQMK薙刀式でよくね?
というわけでよい薙刀式ライフを。
頻繁に配列を入れ替える配列沼の住人の方はぜひご活用ください。
さようなら。
P.S. qmk薙刀式自体の解説記事も少しづつ執筆中です。
大変恐縮ですが今しばらくお待ちくださいませ。