AX配列こそUS配列とJIS配列をつなぐ架け橋!!!!
前にmint60という自作分割キーボードを自作したことを書きました。
しかしmint60はUS配列であり、私がいつも使っていたJIS配列、すなわち日本語配列ではないんですよね。
そのためパソコンでUS配列を使うにはOS側でUSキーボードの設定に変えないといけません。
けれど、ノートパソコンのキー配列がJISなのにUS扱いになってしまう。
でもこの際もうmint60しか使わないからそれでもいいやと思って、OSでUS配列の設定に変えました。
しかしそうすると変換、無変換キーが使えないことがわかりました。
これは大変だ、今使っているノートパソコンはwindowsなんですけど、前にmacbookを買って使ったときにスペースキーの左右でアルファベットとひらがなを切り替える便利さに気づいてしまってそれ以来これなしでは入力できない体になっていました。
そのため変換、無変換キーは絶対に必要でした。
またカタカナ・ひらがなキーもカタカナに変換するF7と同じ機能をGoogle日本語入力で割り当てていたので残したいと思っていました。
ではどうやってUS配列と変換、無変換、カタカナキーを両立させればいいのでしょうか。
最初はmint60のキー設定をqmkでc言語を書いて頑張って対応させようとしていました。
調べるとosをjis配列のまま記号をus配列に対応させる方法に出会いました。
普通に入力している分にはそれで十分でした。
しかしあるとき、暇だしやることないしなにかないかなー。
音ゲーとか好きだけどyoutubeで見つけた曲とかジャンル問わず何でも対応できる音ゲーないかなー。
あ、ピアノ良さそうじゃん!ピアノとか鍵盤ハーモニカ以来やったことないからちょっとやってみよう。でもピアノを買うのは違うよな。どうせすぐ飽きるだろうし、すぐ挫折するだろうから数万もかけたくない。しかも置き場所に困るし、小さめのやつでもまあまあの値段でテーブルを結構占領してしまう。
そうだ、パソコンのキーボードでピアノを弾けばいいんだ。これならお金も場所も取らないしすぐに辞めても問題ない。本当にピアノにハマってどうしてもピアノが欲しくなったら買えばいいんだ。まあキー配列が違いすぎるから変な癖とかつきそうだけど。
こうしてmint60でピアノを引いてみようと思い立ったのでした。
そしてブラウザで弾けるピアノアプリを弾いてみる。なんか対応しない部分もあるから音域狭いけど超簡単なものが片手分だけ弾けた!今度は音域を広げて左手分もやってみよう。mint60は分割だから、自分でキーを設定したいな、自分でピアノアプリ作るか。
chatgptに聞いて、よし、この記号を打ったらこの音が鳴るように・・・
どうしても反応しない。あ、これjis設定でus配列の記号使ってるから単体のキーを押しただけでshiftも入力されるようになってるじゃん。そのせいでピアノが押しっぱなしになったりすぐに離された扱いになってピアノが押せない。
じゃあqmkを書き直して対応させよう。もともとはキーが押されたときにキーを入力するregister関数が実行され、そのすぐ後にキーを離すunregister関数が実行されるようになってるから、キーが離されたときにunregisterを実行するようにしよう。jis設定でus配列の記号を長押しできるようになるぞ。
これで一部のキーには対応できた。しかしピアノに使わないキーで例えば6はshiftを押しながら押すと^になるが、^はjis配列でshiftは要らない。そのためshiftをunregisterで一度解除しないといけない。そうすると長押しに対応できない・・・でもピアノに使わないならいいじゃん?あれ?なんか対応できなかったキーがあったような?あとshiftの押されている判定が残ってしまうバグがあったり・・・
ピアノアプリ側でshiftが押されるキーに対応しようと思ったけれどわかんないしめんどくさくなったり。。
やっぱりqmkで設定頑張るのは難しい!!何かもっと楽な法法ないの!?!?
そう思って探して出会った解決法がAX配列です!!
AX配列は昔のIBMのパソコンに採用されたUS配列に日本語要素を取り入れたキーボードらしく、現在は使われていないが、現在のwindowsに設定が残っているそうです。調べてみるとたしかにありました! windows11にこんな古いものを残しておくなんてさすがmicrosoftだ!このmicrosoftの配慮のお陰で今回私は助かりました。
https://bsakatu.net/doc/ax-layout-on-windows/
このサイトを見ながらAX配列にする部分とAX配列に取り入れるキーの種類を指定する部分の2箇所のレジストリを書き換えて再起動しました。
書き換え前
これでus配列で変換、無変換、カタカナキーを使えるようになりました!!!
その代わりノートパソコンで入力するとus配列のキーが入力されますが、まあ持ち運ぶときにmint60を持っていかない場合はjis配列に直せばいいでしょう。
頻繁に持ち運ぶようになったらすぐにレジストリを書き換えられるようなスクリプト?でも書けば大丈夫なはず!!
とりあえずこの設定で過ごしてみようと思います!
qmkでこうやったらjis設定でもus配列と同じキーを不自然なく単体キーでもshiftが押されず長押しにも対応できるよという方法があったらぜひ教えて下さい!
mint60で操作する分にはこのAX配列は最高でした。
けれどピアノをPCに接続したくなり、windowsよりmacのほうがmidi接続の遅延がないなどメリットが有ることがわかりました。
そのため現在はmacにmint60を接続して使用しています。
するとAX配列のままではノートPCのキーボードを使おうとするとAX配列のままなので記号の入力が不便です。
そこで下記のサイトの一番下にあるレジストリファイルで一発で切り替えられるようにしました。
https://bsakatu.net/doc/ax-layout-on-windows/
JISの方はそのままでいいんですが、AXの方は自分とカスタマイズが違うので残しておきます。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"LayerDriver JPN"="kbdax2.dll"
"OverrideKeyboardIdentifier"="AX_105KEY"
"OverrideKeyboardType"=dword:00000007
"OverrideKeyboardSubtype"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,\
00,00,00,00,\
04,00,00,00,\
1D,E0,70,00,\
5b,00,79,00,\
5a,00,7b,00,\
00,00,00,00
コメント
0 件のコメント :
コメントを投稿