なかやさとるさんによる、AutoHotKey版薙刀式を試してみた。
https://github.com/tor-nky/KeyLayout/tree/master/Naginata/Win
すごい。とくにコンパイルしたら、DvorakJより圧倒的に速くなる。(当たり前か)
QMK版も速いけど、甲乙つけがたい速さ。
自作キーボードが使えない文脈では大活躍しそうな勢い。
コンパイル後は1MB程度なので、USBに入れて持ち運べるぞ。
DvorakJが使えなくてAHKが使える文脈というのはなさそうだが、
速度面で異次元なので、完全上位互換だなこれ。
キーリピートもあったら便利、くらいに考えていたが、わりと気持ちよい。
IMEオフでも編集モードが使えるのが地味によい。。。
しかもDvorakJにあったたまにある同時押しバグ(キーアップが効かず、
キーダウンのままになってしまうやつ)は今の所一度もなかった。
わりと速い打鍵でもまったく問題ない。
DvorakJではそろそろ印字に打鍵が追い付かなくなりつつあったが、
これは速くてまだ印字に追いつかないということはなさそうだ。
すごい。
以下導入できない部分があった。
僕の環境のせいだろうか?
全角記号の部分。
AHKのバージョンのせいかもしれないが、
Run Scriptが通らないところがあった。
KanaTable.ahk内での、ことごとく全角記号部。
固有名詞のほとんどで文字化けてエラーメッセージ。
”で閉じていない旨のエラーなので、
全角記号が文字化けして"が認識されていないと思われる。
文字コードの知識がないので、
このソースが何で書かれていて何なら通るのか、
そしてそもそも今俺が見ているこれは何コードで表示されているのか、調べられない。
エディタはMeryを使っているが、デフォルトのUTF-8(BOM無し)のまま。
他に何があるのか見てみたら、
UTF-8(BOM付き)、UTF-16LEとBEのそれぞれBOM無しと付き、
日本語はJIS、EUC、シフトJISとあり、俺をいじめているとしか思えない。
これを今全部調べて理解する時間はない。。。
同様に編集モードの、
たとえば全角パイプなど全角記号はことごとく通らない。
?![]()は、半角にしたら通った。
通ったとしても、たとえば……は窶ヲ窶ヲに化ける。
(穴冠に楼の旧字体のつくり部の見たこともない漢字と、
半角カナのヲが二回繰り返し。意味はないので文字化けだろう。
ちなみにそれをコピペしてググればわかるかも、
とおもったら、同様に文字化けしているページがひっかかり、
このループはなんだと考えてしまう)
とりあえず通らなかったやつは全部""にして、
とまずは文字部分をテストをすることにしたが。
何をどうしたらいいのか分ってる人たすけて。
(追記)UTF-8(BOM付)の形式で保存すると、
問題なくRun Scriptもコンパイルも通りました。
ユニコードいうても規格がバラバラなのね…
あと、.DS_StoreはMacからWinにコピーするときのMacのシステムファイルらしく、
消しても問題ないそうです。
(追記)以前MacにAHKがあると勘違いして書いたかもしれないが、
今確認したらないそうです。残念。
おなじコードを放り込むだけで使えたらいいなと思ったのだが、しょうがない。
ファイルはすべて、UTF-8(BOM付)で保存してください。
一応、DvorakJ版の固有名詞ショートカットのサンプルを乗っけていて確認したのですが……
3個以上のキーを限りなく同時に押すと、最大2文字しか入力されないバグが今日見つかりましたが、キーボード性能が高いQMK自作キーボードやHHKBで遭遇できたら、すごいと思います。
直せるかどうか。
11年前発売のノートパソコンで充分速かったので満足して公開しましたが、変換テーブル総当たりを改良すれば、もっと高速化は可能です。
Lacailleは同時連続シフトも実装してたはずなので、その辺を流用するのかしら。
コードを読んで試すとは、出来る人は出来るものですなあ。
昔テーブルを変えてカタナ式実装できないかなと試したら、
BSやカーソルなどを動かせずに放置したままでした。
Karabiner-Elementsだけでなく、Lacailleという選択肢も増えると、
最近のMacのアップデートの波に負けないかも…?
UTF-8(BOM付)でやってみたところ、問題なく動きました!
記事に追記しておきます。
AHKのバージョンが古いのかなと思い、どこを見れば良いのか分からず、
同梱のヘルプみたいなのを立ち上げたら、1.1.25.01とバージョン表記。
これが本体のバージョンと一致してるとすると、
これくらい古い版でも動いたよ報告ですかね。
なるほど、両者の違いはそこまで把握してなかったです。
ごりゅごさんのKarabiner-Elementsの実装はタイマー方式なのかしら。
だとすると文字部分はいけても、編集モードまではキツイかも。
QMK薙刀式(おおもとは親指シフトも)のロジック自体は他の配列でも使えると思うので、誰か改造して変態配列つくらないかな…(笑