2019年05月08日

【薙刀式】気づいたらQMK薙刀式更新されてる…っ!

すごい。僕じゃ絶対無理なことだ。

gitに公開ってことは公開情報と考えて良いのかしら。
https://github.com/eswai/qmk_firmware/tree/master/keyboards/crkbd/keymaps/naginata


配列(arrayのほうの)ではなくビット演算で組み合わせを定義してるようだ。
多くの同時押し配列をこれで定義できる可能性を含む、
ということだよね。
コルネなら小指外キーもあるから、
ニコラ、飛鳥、蜂蜜小梅あたりはいけそう。
新下駄は物理数字段のある、lily58ならいけそう。

偉業ではないのかなこれ。


今スマホからで行数が見えないので、行数が特定できないが、

// 同時押しされているキーから仮名に変換して出力する。
memcpy_P(&kana, &ng_kana[i], sizeof(kana));
send_string(kana);

がキモの部分だと思われる。

あと最後のブロックの、
キーダウンとキーアップ(pressとrelease)の処理部が、
打鍵感を決定すると思われる。


双方向シフトに対応してるかどうかとか、
連続シフトがどうかとか、
シフト押しながらの同時押しは無理だろうなとか
(キーダウン3文字でバッファを発火させてるので)、
チェックしてみないとあとは分からないので、
読み込んでみます。

(バッファの上限を5としてる理由が解せぬ。
処理が追いつかない時の保険なのかと思ったが、
ニコラの時からそうなんだよね…)


うまくいけば、
DvorakJより柔軟に対応した、
僕の思い描いていた薙刀式になる可能性がある、かも。

これでメモリが足りてるわけだから、
LEDの部分を削れば編集モードも乗るかも…っ!
posted by おおおかとしひこ at 09:40| Comment(7) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
早くも捕捉いただき恐縮です。
コードはもちろん公開情報です。
シフト押しながらの同時押し、というのは例えばどのような押し方になるでしょうか。
シフトキーは事前に押しておく必要がありますが、連続シフトが有効です。シフトキーは文字数にカウントしていません。
濁音、半濁音など文字の同時押しは時間に関係なく、同時に押し下げたかどうか。以下の記事の双方向シフト?になっていると思います。

http://oookaworks.seesaa.net/article/465268936.html

バッファが5なのは深い理由はありません。余裕を見て確保しておいた、実際は使わない、という感じです。
編集モード、トライしたいですね。
Posted by eswai at 2019年05月08日 14:01
コンパイルできただけで、miniaxeがないので動作確認していませんが、miniaxe用の薙刀式キーマップです。
https://github.com/eswai/qmk_firmware/tree/master/keyboards/miniaxe/keymaps/naginata
Posted by eswai at 2019年05月08日 14:16
eswaiさんいろいろありがとうございます。

ああ、そうか。ng_chrcountにはシフトは含まれていないからどっちでもいいのか。理解できました。
小書きは「シフト+半濁音同時押し」という変則定義にしたもので。
(最初はシフト不要にしていたんだけど、頻出する「こう」をロールオーバーOKにしたかったんです)

NICOLAはシフトキーを先に押しても後に押してもよい、
双方向シフトだった所までは理解できましたが、
今回のビットは慣れてない領域で。

編集モードはOSによってコマンドの異同があります。
(「再変換」はWinだと変換キー、Macだとかなキーダブルクリックなど)
いくつかはカタナ式キーボードでも実装しましたが、
OS切り替えキー(コマンド?)が必要になります。
使うOSを限定して割り切り、ファームを二種類焼く手もあるけど
(IME切り替えなどはそのようになってますね)、
もっとエレガントな解があればいいのですが。

あと全角記号の出力(○、…などの文字単打でないもの)は、僕にはできませんでした。
文字コードはOS上でどう扱われているのか、
のレベルを理解する必要があると思うので、そこまで手が届いていない感じです。


バッファが5なのは、打鍵のほうが速くて処理が追いついてない現象があり、とりあえず何文字かためとく現実的な処理ができる?
などと予測していましたが、使わないんですね。

学生以来プログラミングなどしてこなかったので、
専門家の仕事の速さには感服です。。。
Posted by おおおかとしひこ at 2019年05月08日 16:42
大岡さんがお探しのものかは判りませんが、
WindowsやQMKでのUnicodeの入力について書かれた記事を見付けました。
https://qiita.com/kitakitash/items/ead550a19533f00bcb7d

あと大岡さんとeswaiさんのおかげで、今すごくワクワクドキドキしています。
二十数年前にパソコンを使い始めて一カ月で、
ローマ字入力に頭に来て親指シフトに乗り換え、
不合理で美しくないQWETYの斜め配列を疎みつつも使うしかなかった過去に、
ようやく終止符を打てそうです。

この場を借りてお二人に深い感謝を捧げます。
Posted by ヨシアキ at 2019年05月08日 19:45
ヨシアキさんコメントありがとうございます。

その記事は既に見つけていて、
別ソフトのインストールがあまり美しくないなあ、
と思って思考停止していたところでした。
理想は、WinでもMacでも繋げば記号が出る、
ということをやろうとしてるのですが、
何をどう調べていいのやら、で諦めた感じ。

僕は事あるごとにqwertyを目の敵にしているので(笑、
薙刀式はとりあえずの回答と考えています。
僕の理想は「メガネケースに入るキーボード」ぐらいなので、
20%でカナ配列が作れないかと、
実は無想しているところだったり。

eswaiさんに感謝しつつ、
薙刀式がお役に立てると幸いです。
Posted by おおおかとしひこ at 2019年05月08日 21:43
私も職業プログラマではないので、本職の人が見たらもっと効率的にできるところがあると思います。
ようやく私も薙刀式に入門する環境が整ったので、マニュアルを見ながら練習してみます。拗音同時押しは本当に気持ちいいですね。qmkの方も改良していきたいとおもいます。
Posted by eswai at 2019年05月09日 04:22
>eswaiさん

本職でなくてあれだけ書けるとは凄いとしか…。
薙刀式で質問があれば是非どうぞ。
改良もお待ちしております。
Posted by おおおかとしひこ at 2019年05月09日 11:47
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。