紅皿のサポートブログ

キーボード配列エミュレーションソフトウェア「紅皿」の不具合や要望はこちらに

紅皿 ver.0.1.6.01 のリリース

紅皿 ver.0.1.6.01 をリリースします。

 

osdn.net

 

キー出力テーブルを多少変更して、ver.0.1.5.05 と同等としました。
具体的には、コロンやセミコロンなどの一部キーを、割込み最小化のためにvkキーコードで定義してたのを、元の文字に戻しました。

Microsoft OneNoteで上下カーソル動作を可能としました。具体的には以下を参考にしました。

 

chaboneko.wp.xdomain.jp

 

OneNote対応の変更点は、SendOnHold.ahk の以下部分です。

if WinActive("ahk_class ApplicationFrameWindow")
{
if (_stroke == "{Up down}") ; Microsoft OneNote 対策
{
dllcall("keybd_event", int, 0x26, int, 0, int, 1, int, 0) ;Up
} else
if (_stroke == "{Down down}")
{
dllcall("keybd_event", int, 0x28, int, 0, int, 1, int, 0) ;Down
} else {
Send,% _stroke
}
} else {
Send,% _stroke
}

 

 

ver.0.1.6.0 の不具合

蓑なしさんから戴いた不具合報告についてです。

 

0.1.6.0に更新したところ、「;」と設定している箇所で「=」が、「:」と設定している箇所で「;」と入力されてしまうようになりました。

そして、0.1.6.0 のログは以下です。

TIME|PERIOD|_INPUT______|O|MD_|TG_|OVL|_TOUT_|SEND
3291|______|;_down______|N|___|M__|___|_83648|
3292|_____1|____________|N|___|M__|___|_83648|{vkBBsc027_down}
3384|____92|;_up________|N|___|m__|___|_83648|
3384|_____0|____________|N|___|m__|___|_83648|{vkBBsc027_up}
3945|___561|LShift_down_|N|___|X__|___|_83648|
3945|_____0|____________|N|___|X__|___|_83648|{LShift_down}
4354|___409|;_down______|N|___|M__|___|_83648|
4355|_____1|____________|N|___|M__|___|_83648|{vkBAsc028_down}
4474|___119|;_up________|N|___|m__|___|_83648|
4474|_____0|____________|N|___|m__|___|_83648|{vkBAsc028_up}
4712|___238|_LShift_up__|N|___|x__|___|_83648|
4712|_____0|____________|N|___|x__|___|_83648|{LShift_up}

 

そして、紅皿 ver.0.1.5.05 のログは以下です。

TIME|PERIOD|_INPUT______|O|MD_|TG_|OVL|_TOUT_|SEND
2272|______|;_down______|N|___|M__|___|_83648|
2273|_____1|____________|N|___|M__|___|_83648|{;_down}
2374|___101|;_up________|N|___|m__|___|_83648|
2374|_____0|____________|N|___|m__|___|_83648|{;_up}
2871|___497|LShift_down_|N|___|X__|___|_83648|
2871|_____0|____________|N|___|X__|___|_83648|{LShift_down}
3248|___377|;_down______|N|___|M__|___|_83648|
3248|_____0|____________|N|___|M__|___|_83648|{capslock}
3248|_____0|____________|N|___|M__|___|_83648|{:_down}
3249|_____1|____________|N|___|M__|___|_83648|{capslock}
3351|___102|;_up________|N|___|m__|___|_83648|
3351|_____0|____________|N|___|m__|___|_83648|{:_up}
3655|___304|LShift_up___|N|___|x__|___|_83648|
3655|_____0|____________|N|___|x__|___|_83648|{LShift_up}

 

原因は未だ不明です。

しかし、ver.0.1.6.0にて、";" を出力するために vkBBsc027 を、":" を出力するために vkBAsc028 を出力するよう設定したのですが、何故かこれが問題を起こしているようです。これを元に戻して問題ないか確認のうえ修正する予定です。

紅皿 ver.0.1.6.0 のリリース

紅皿 ver.0.1.6.0 をリリースします。

 

osdn.net

 

・Gdip.ahk を組み込んで、配列表の表示品質を向上させました。いままでは、記号「■」を表示するなど、かなり原始的なことを行っていたので、表示更新時のちらつきがありました。Gdip.ahk ではちらつき無しに表示更新可能となっています。

github.com

 

・Windows10 May 2020 update 以降にてMicrosoft IMEであっても無変更でキー入力可能としました。

・タイマー割込み処理を最小化することで、同時打鍵キー入力の判定精度を向上させました。より意図通りのキーか入力できるようになったとおもいます。

 ver.0.1.5.x では、他の配列エミュレーションソフトの監視を行っていたので、タイマー割込みが乱れていた場合がありました。

 

 

autohotkey v1 を autohotkey v2 に移植

2022年12月に、autohotkey v2 が発表されました。そこで、autohotkey v1 をautohotkey v2 に移植する方法について、いつものChatGPT君に聞いてみました。ChatGPT はプログラミングについては矢鱈と詳しいのです。

 

AutoHotkey v1からAutoHotkey v2に移植する場合、以下のような変更が必要になる場合があります。

#NoEnvステートメントの削除
AutoHotkey v2では、#NoEnvステートメントは必要ありません。そのため、スクリプトの先頭から削除できます。

#SingleInstanceステートメントの変更
AutoHotkey v2では、#SingleInstanceステートメントのパラメータが変更されました。以下は、AutoHotkey v1とv2のパラメータの比較例です。

 

#SingleInstance force  ; AutoHotkey v1
#SingleInstance, force ; AutoHotkey v2

 

→ #SingleInstance のあとにカンマを打つだけですね。

 

コマンド名の変更
AutoHotkey v2では、一部のコマンド名が変更されています。以下は、いくつかの例です。

AutoHotkey v1           AutoHotkey v2
---------------------  ---------------------
MsgBox                  MsgBox
FileCreateDir           DirCreate
WinGetClass             WinGetClassList
WinGetTitle             WinGetTitleList

 

→ MsgBox は変わっていないような・・・

 

コマンドパラメータの変更
AutoHotkey v2では、一部のコマンドのパラメータが変更されています。たとえば、Loopコマンドの場合、countパラメータはtoパラメータに変更されています。

Loop, 10         ; AutoHotkey v1
Loop, 1, 10      ; AutoHotkey v2

 

→ 初期値と終了値の2つが必要なのですね。

Ifステートメントの変更
AutoHotkey v2では、ifステートメントの構文が変更されています。以下は、AutoHotkey v1とv2の比較例です。

if (a == b)      ; AutoHotkey v1
if (a = b)       ; AutoHotkey v2

 

→ == 演算子の方が C言語の比較文と似ていてよかったです。なぜ代えたのか開発者の意図が不明です。

変数の宣言
AutoHotkey v2では、変数の宣言方法が変更されました。以下は、AutoHotkey v1とv2の変数宣言の比較例です。

a := 1            ; AutoHotkey v1
a := 1            ; AutoHotkey v2

→ 宣言方法の例を見ても、変わっていないように思います。ChatGPT君のミスですか。

組み込み関数の変更
AutoHotkey v2では、一部の組み込み関数が変更されています。たとえば、A_IndexはForループ内でのみ使用できるように変更されています。

以上のような変更を行うことで、AutoHotkey v1からv2への移植ができます。ただし、複雑なスクリプトの場合は、移植に時間がかかる場合があります。

→ ChatGPT君は、最後に言い訳っぽい逃げを打ってきました。でも、これは実際にはautohotkey v2 へ移植しようとして嵌った世界中のエンジニアの声を収集した結果なのでしょうね。

 

紅皿 ver.0.1.5.05 のリリース

紅皿 ver.0.1.5.05 をリリースします。

 

osdn.net

 

 タスクバーアイコンのコンテキストメニューの「一時停止」「再開」を削除しました。一時停止と再開を繰り返すと、動作が不安定となり、予期せずにPause状態となるためです。

 Pauseキー等を押下したときの一時停止/再開動作が安定にできるようにしました。

 

 ver.0.1.5.0 にてWindows Setup Project でインストーラを作り直したため、マニュアルのインストール動作を書き直しました。ver.0.1.5.0 から、ver.0.1.5.04 までマニュアルを書き直していませんでした。

 

親指シフト配列の普及:ChatGPTの答え

今はやりのChatGPTに親指シフト配列の普及について聞いてみました。

親指シフト配列を普及させるには、以下のような方法が考えられます。

1.問題意識を高める

親指シフト配列を使うことで、タイピングの速度や正確性が向上することを広く知ってもらうことが大切です。また、キーボード操作による手首や肩の負担を軽減する効果があることも伝えると良いでしょう。

2.普及啓発活動を行う

親指シフト配列の普及啓発活動を行うことで、より多くの人にその存在を知ってもらうことができます。具体的には、ウェブサイトやSNSで情報発信することや、セミナーやイベントでデモンストレーションを行うことが考えられます。

3.教育機関に導入する

教育機関親指シフト配列を導入することで、若い世代に普及させることができます。学校や大学の授業で親指シフト配列を教えることや、習熟度に合わせた教材を作成することが考えられます。

4.ソフトウェアやデバイスに組み込む

親指シフト配列を使いやすくするために、ソフトウェアやデバイスに組み込むことが考えられます。例えば、親指シフト配列専用のキーボードや、タイピングソフトに親指シフト配列のオプションを追加することができます。

以上のような方法で、親指シフト配列を普及させることができます。しかし、一人ひとりの習熟度には個人差があるため、親指シフト配列を使い続けることができる環境を整備することも重要です。

1について、キーボード操作による手首や肩の負担が軽減されるかは疑問がありますが、タイピングの速度や正確性については効果があるのかもしれません。定量的に示すためにタイピング動画があるといいのかもしれません。

 

2について、このサポートブログだけで足りるのでしょうか。ちゃんとHPでサポートした方がいいのかもしれません。

 

3について、何処か教育機関に導入できるといいのですね。これは盲点でした。

 

4について、エミュレーションソフトウエアに加えて、キーボードそのものがあるともっとよいのかもしれません。自分が愛用している初代RealForce 荷重30g はかなり入手困難です。富士通親指シフトキーボードも中古しか入手できず、かつ中古品も高価で入手困難です。

 

DK同時押しでEnter × 薙刀式v15B1版(仮)

DK同時押しで Enter を  薙刀式v15B1版(仮)に反映させました。以下手順で薙刀式の入力キーに反映できます。

 

(1)[ローマ字シフト無し]セクションに、dキーの同時押しパターンを追加

   kキーの位置に 入 が定義されています。なお、入は、Enterキーのことです。

{d}<*> <d>{*}
;に+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,にょ,無,にゅ,無,無
無,無,無,無,無,にゃ,無,入,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

 

(2)[ローマ字シフト無し]セクションに、kキーの同時押しパターンを追加

 dキーの位置に 入 が定義されています。もしかしたらこれは不要かもしれませんが、検証するよりも入れたほうが早いので、一応定義しています。

{k}<*> <k>{*}
;DK
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,入,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

 

(3)[ローマ字スペースシフト]セクションに、dキーの同時押しパターンを追加

{d}<*> <d>{*}
;に+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,にょ,無,にゅ,無,無
無,無,無,無,無,にゃ,無,入,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

(2)[ローマ字シフト無し]セクションに、kキーの同時押しパターンを追加

 

{k}<*> <k>{*}
;DK
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,入,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

 

全ての配列ファイルは以下です。

;
;薙刀式v15B1 (2022/07/18) + DKでEnterを発行
;横書き・JIS配列記号用
;http://oookaworks.seesaa.net/article/489739560.html#more&gsc.tab=0

 

[配列]
名称=薙刀
バージョン=v15fix版(仮)JIS配列横書+DKEnter
URL=http://oookaworks.seesaa.net/article/489739560.html#more&gsc.tab=0
キーリピート=1000

[機能キー]
Space,Space&Shift

[英数シフト無し]
;JIS配列記号用
1,2,3,4,5,6,7,8,9,0,-,^,¥,後
q,w,e,r,t,y,u,i,o,p,@,[
a,s,d,f,g,h,j,k,l,;,:,]
z,x,c,v,b,n,m,,,.,/,¥

[英数スペースシフト]
;JIS配列記号用
!,”,#,$,%,&,’,(,),'',=,~,|,後
Q,W,E,R,T,Y,U,I,O,P,‘,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_

[英数小指シフト]
;JIS配列記号用
!,”,#,$,%,&,’,(,),'',=,~,|
Q,W,E,R,T,Y,U,I,O,P,‘,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_

[ローマ字シフト無し]
;JIS配列記号用
1,2,3,4,5,6,7,8,9,0,-,^,]
ヴ,き,て,し,下,上,後,る,す,へ,'',[
ろ,け,と,か,っ,く,あ,い,う,-,;,]
ほ,ひ,は,こ,そ,た,な,ん,ら,れ,¥

{j}<*> <j>{*}
;右濁点
無,無,無,無,無,無,無,無,無,無,無,無,無,無
無,ぎ,で,じ,無,無,無,無,無,無,無,無
ぜ,げ,ど,が,ぢ,無,無,無,無,無,無,無
ぼ,び,ば,ご,ぞ,無,無,無,無,無,無

{f}<*> <f>{*}
;左濁点
無,無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,ざ,無,ず,べ,無,無
無,無,無,無,無,ぐ,無,無,づ,ぶ,無,無
無,無,無,無,無,だ,無,無,無,無,無

{v}<*> <v>{*}
;左半濁点
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,ぺ,無,無
無,無,無,無,無,無,無,無,無,ぷ,無,無
無,無,無,無,無,無,入,無,無,無,無

{m}<*> <m>{*}
;右半濁点
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
ぽ,ぴ,ぱ,無,無,無,無,無,無,無,無

{q}<*> <q>{*}
;小(拗音文字)
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ょ,ぇ,ゅ,無,無
無,無,無,無,無,ゃ,ぁ,ぃ,ぅ,無,無,無
無,無,無,無,無,ぉ,無,無,ゎ,無,無

{w}<*> <w>{*}
;き+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,きょ,無,きゅ,無,無
無,無,無,無,無,きゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{e}<*> <e>{*}
;り+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,りょ,無,りゅ,無,無
無,無,無,無,無,りゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{r}<*> <r>{*}
;し+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,しょ,無,しゅ,無,無
無,無,無,無,無,しゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{d}<*> <d>{*}
;に+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,にょ,無,にゅ,無,無
無,無,無,無,無,にゃ,無,入,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{k}<*> <k>{*}
;DK
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,入,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{g}<*> <g>{*}
;ち+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ちょ,無,ちゅ,無,無
無,無,無,無,無,ちゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{x}<*> <x>{*}
;ひ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ひょ,無,ひゅ,無,無
無,無,無,無,無,ひゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{b}<*> <b>{*}
;み+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,みょ,無,みゅ,無,無
無,無,無,無,無,みゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{w}<*> {j}<w><*> <j>{w}<*> <j>{w}{*} {j}<w>{*} <j><w>{*}
;ぎ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ぎょ,無,ぎゅ,無,無
無,無,無,無,無,ぎゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{r}<*> {j}<r><*> <j>{r}<*> <j>{r}{*} {j}<r>{*} <j><r>{*}
;じ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,じょ,無,じゅ,無,無
無,無,無,無,無,じゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{g}<*> {j}<g><*> <j>{g}<*> <j>{g}{*} {j}<g>{*} <j><g>{*}
;ぢ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ぢょ,無,ぢゅ,無,無
無,無,無,無,無,ぢゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{x}<*> {j}<x><*> <j>{x}<*> <j>{x}{*} {j}<x>{*} <j><x>{*}
;び+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,びょ,無,びゅ,無,無
無,無,無,無,無,びゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{x}<*> {m}<x><*> <m>{x}<*> <m>{x}{*} {m}<x>{*} <m><x>{*}
;右半濁音「ぴ」と拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ぴょ,無,ぴゅ,無,無
無,無,無,無,無,ぴゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{e}<*> {m}<e><*> <m>{e}<*> <m>{e}{*} {m}<e>{*} <m><e>{*}
;右半濁音「て」と拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,てゅ,無,無
無,無,無,無,無,無,無,てぃ,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{e}<*> {j}<e><*> <j>{e}<*> <j>{e}{*} {j}<e>{*} <j><e>{*}
;右濁音「て」と拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,でゅ,無,無
無,無,無,無,無,無,無,でぃ,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{d}<*> {m}<d><*> <m>{d}<*> <m>{d}{*} {m}<d>{*} <m><d>{*}
;右半濁音「と」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,とぅ,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{d}<*> {j}<d><*> <j>{d}<*> <j>{d}{*} {j}<d>{*} <j><d>{*}
;右濁音「ど」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,どぅ,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{r}<*> {m}<r><*> <m>{r}<*> <m>{r}{*} {m}<r>{*} <m><r>{*}
;右半濁音「し」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,しぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{r}<*> {j}<r><*> <j>{r}<*> <j>{r}{*} {j}<r>{*} <j><r>{*}
;右濁音「じ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,じぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{g}<*> {m}<g><*> <m>{g}<*> <m>{g}{*} {m}<g>{*} <m><g>{*}
;右半濁音「ち」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ちぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{g}<*> {j}<g><*> <j>{g}<*> <j>{g}{*} {j}<g>{*} <j><g>{*}
;右濁音「ぢ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ぢぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{v}{;}<*> {v}<;><*> <v>{;}<*> <v>{;}{*} {v}<;>{*} <v><;>{*}
;左半濁音「ふ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ふぇ,ふゅ,無,無
無,無,無,無,無,無,ふぁ,ふぃ,無,無,無,無
無,無,無,無,無,ふぉ,無,無,無,無,無

{f}{l}<*> {f}<l><*> <f>{l}<*> <f>{l}{*} {f}<l>{*} <f><l>{*}
;左濁音「ゔ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ゔぇ,ゔゅ,無,無
無,無,無,無,無,無,ゔぁ,ゔぃ,無,無,無,無
無,無,無,無,無,ゔぉ,無,無,無,無,無

{v}{l}<*> {v}<l><*> <v>{l}<*> <v>{l}{*} {v}<l>{*} <v><l>{*}
;左半濁音「う」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,うぇ,無,無,無
無,無,無,無,無,無,無,うぃ,無,無,無,無
無,無,無,無,無,うぉ,無,無,無,無,無

{v}{k}<*> {v}<k><*> <v>{k}<*> <v>{k}{*} {v}<k>{*} <v><k>{*}
;左半濁音「い」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,いぇ,無,無,無
無,無,無,無,無,無,無,無,うぃ,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{f}{h}<*> {f}<h><*> <f>{h}<*> <f>{h}{*} {f}<h>{*} <f><h>{*}
;左濁音「ぐ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ぐぇ,無,無,無
無,無,無,無,無,無,ぐぁ,ぐぃ,無,無,無,無
無,無,無,無,無,ぐぉ,無,無,ぐゎ,無,無

{v}{h}<*> {v}<h><*> <v>{h}<*> <v>{h}{*} {v}<h>{*} <v><h>{*}
;左半濁音「く」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,くぇ,無,無,無
無,無,無,無,無,無,くぁ,くぃ,無,無,無,無
無,無,無,無,無,くぉ,無,無,くゎ,無,無

{g}<*> <g>{*}
;英数モード遷移
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,換,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}<*> <j>{*}
;日本語モード遷移
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,変,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{v}<*> <v>{*}
;Enter
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,入,無,無,無,無

{j}{k}<*> {j}<k><*> <j>{k}<*> <j>{k}{*} {j}<k>{*} <j><k>{*}
;横書き用編集モード v15B1
無,無,無,無,無,無,無,無,無,無,無,無,無
c終,=c入後'『』'左,無,cs,/,無,無,無,無,無,無,無
=c入後'……',()入左,?入,[]入左,入終入[]入左,無,無,無,無,無,無,無
=c入後'||',=c入後'【】'左,!入,入右,入終入空,無,無,無,無,無,無

;{j}{k}<*> {j}<k><*> <j>{k}<*> <j>{k}{*} {j}<k>{*} <j><k>{*}
;縦書き用編集モード
;無,無,無,無,無,無,無,無,無,無,無,無,無
;c終,=c入後'『』'上,無,cs,/,無,無,無,無,無,無,無
;=c入後'……',()入上,?入,[]入上,入終入[]入上,無,無,無,無,無,無,無
;=c入後'||',=c入後'【】'上,!入,入下,入終入空,無,無,無,無,無,無


{d}{f}<*> {d}<f><*> <d>{f}<*> <d>{f}{*} {d}<f>{*} <d><f>{*}
;横書き用編集モード
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,家,s終後,変,消,逃逃逃,無,無
無,無,無,無,無,入終,左,s左,s左左左左左左左,ci,無,無
無,無,無,無,無,終,右,s右,s右右右右右右右,cu,無

;{d}{f}<*> {d}<f><*> <d>{f}<*> <d>{f}{*} {d}<f>{*} <d><f>{*}
;縦書き用編集モード v15B1
;無,無,無,無,無,無,無,無,無,無,無,無,無
;無,無,無,無,無,家,s終後,変,消,逃逃逃,無,無
;無,無,無,無,無,入終,上,s上,s上上上上上上上,ci,無,無
;無,無,無,無,無,終,下,s下,s下下下下下下下,cu,無


{m}{,}<*> {m}<,><*> <m>{,}<*> <m>{,}{*} {m}<,>{*} <m><,>{*}
;横書き用編集モード2 v15B1
無,無,無,無,無,無,無,無,無,無,無,無,無,無
cx後消cv,cx'『'cv'』'入空s左cx,空空空,家入空終;,=c入後'〇',無,無,無,無,無,無,無
=c入後'/',cx'('cv')'空s左cx,空空空,cx'「'cv'」'空s左cx,無,無,無,無,無,無,無,無
=c入後'   ×   ×   ×'入,cx'【'cv'】'空s左cx,終消消消消,終消消,cx,入cv'《》'入s左空s左cx,無,無,無,無,無

;{m}{,}<*> {m}<,><*> <m>{,}<*> <m>{,}{*} {m}<,>{*} <m><,>{*}
;縦書き用編集モード2 v15B1
;無,無,無,無,無,無,無,無,無,無,無,無,無,無
;cx後消cv,cx'『'cv'』'入空s上cx,空空空,家入空終;,=c入後'〇',無,無,無,無,無,無,無
;=c入後'/',cx'('cv')'空s左cx,空空空,cx'「'cv'」'空s上cx,無,無,無,無,無,無,無,無
;=c入後'   ×   ×   ×'入,cx'【'cv'】'空s左cx,終消消消消,終消消,cx,入cv'《》'入s上空s上cx,無,無,無,無,無


{c}{v}<*> {c}<v><*> <c>{v}<*> <c>{v}{*} {c}<v>{*} <c><v>{*}
;横書き用編集モード2 v15B1
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,s家,cx,下,上,cv,無,無
無,無,無,無,無,cc,上上上上上,s上,s上s上s上s上s上,s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上,無,無
無,無,無,無,無,s終,下下下下下,s下,s下s下s下s下s下,s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下,無

;{c}{v}<*> {c}<v><*> <c>{v}<*> <c>{v}{*} {c}<v>{*} <c><v>{*}
;縦書き用編集モード2
;無,無,無,無,無,無,無,無,無,無,無,無,無
;無,無,無,無,無,s家,cx,左,右,cv,無,無
;無,無,無,無,無,cc,右右右右右,s右,s右s右s右s右s右,s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右,無,無
;無,無,無,無,無,s終,左左左左左,s左,s左s左s左s左s左,s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左,無

[ローマ字スペースシフト]
;=センターシフト・JIS配列記号用
!,”,#,$,%,&,’,(,),'',=,~,|
ヴ,ぬ,り,ね,s下,s上,さ,よ,え,ゆ,`,}
せ,め,に,ま,ち,や,の,も,つ,ふ,*,{
ほ,ひ,を,,,み,お,.入,む,わ,れ,_

{j}<*> <j>{*}
;右濁点
無,無,無,無,無,無,無,無,無,無,無,無,無,無
無,ぎ,で,じ,無,無,無,無,無,無,無,無
ぜ,げ,ど,が,ぢ,無,無,無,無,無,無,無
ぼ,び,ば,ご,ぞ,無,無,無,無,無,無

{f}<*> <f>{*}
;左濁点
無,無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,ざ,無,ず,べ,無,無
無,無,無,無,無,ぐ,無,無,づ,ぶ,無,無
無,無,無,無,無,だ,無,無,無,無,無

{v}<*> <v>{*}
;左半濁点
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,ぺ,無,無
無,無,無,無,無,無,無,無,無,ぷ,無,無
無,無,無,無,無,無,入,無,無,無,無

{m}<*> <m>{*}
;右半濁点
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
ぽ,ぴ,ぱ,無,無,無,無,無,無,無,無

{q}<*> <q>{*}
;小(拗音文字)
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ょ,ぇ,ゅ,無,無
無,無,無,無,無,ゃ,ぁ,ぃ,ぅ,無,無,無
無,無,無,無,無,ぉ,無,無,ゎ,無,無

{w}<*> <w>{*}
;き+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,きょ,無,きゅ,無,無
無,無,無,無,無,きゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{e}<*> <e>{*}
;り+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,りょ,無,りゅ,無,無
無,無,無,無,無,りゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{r}<*> <r>{*}
;し+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,しょ,無,しゅ,無,無
無,無,無,無,無,しゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{d}<*> <d>{*}
;に+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,にょ,無,にゅ,無,無
無,無,無,無,無,にゃ,無,入,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{k}<*> <k>{*}
;DK
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,入,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無


{g}<*> <g>{*}
;ち+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ちょ,無,ちゅ,無,無
無,無,無,無,無,ちゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{x}<*> <x>{*}
;ひ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ひょ,無,ひゅ,無,無
無,無,無,無,無,ひゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{b}<*> <b>{*}
;み+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,みょ,無,みゅ,無,無
無,無,無,無,無,みゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{w}<*> {j}<w><*> <j>{w}<*> <j>{w}{*} {j}<w>{*} <j><w>{*}
;ぎ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ぎょ,無,ぎゅ,無,無
無,無,無,無,無,ぎゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{r}<*> {j}<r><*> <j>{r}<*> <j>{r}{*} {j}<r>{*} <j><r>{*}
;じ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,じょ,無,じゅ,無,無
無,無,無,無,無,じゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{g}<*> {j}<g><*> <j>{g}<*> <j>{g}{*} {j}<g>{*} <j><g>{*}
;ぢ+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ぢょ,無,ぢゅ,無,無
無,無,無,無,無,ぢゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{x}<*> {j}<x><*> <j>{x}<*> <j>{x}{*} {j}<x>{*} <j><x>{*}
;び+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,びょ,無,びゅ,無,無
無,無,無,無,無,びゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{x}<*> {m}<x><*> <m>{x}<*> <m>{x}{*} {m}<x>{*} <m><x>{*}
;右半濁音「ぴ」と拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,ぴょ,無,ぴゅ,無,無
無,無,無,無,無,ぴゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{e}<*> {m}<e><*> <m>{e}<*> <m>{e}{*} {m}<e>{*} <m><e>{*}
;右半濁音「て」と拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,てゅ,無,無
無,無,無,無,無,無,無,てぃ,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{e}<*> {j}<e><*> <j>{e}<*> <j>{e}{*} {j}<e>{*} <j><e>{*}
;右濁音「て」と拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,でゅ,無,無
無,無,無,無,無,無,無,でぃ,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{d}<*> {m}<d><*> <m>{d}<*> <m>{d}{*} {m}<d>{*} <m><d>{*}
;右半濁音「と」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,とぅ,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{d}<*> {j}<d><*> <j>{d}<*> <j>{d}{*} {j}<d>{*} <j><d>{*}
;右濁音「ど」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,どぅ,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{r}<*> {m}<r><*> <m>{r}<*> <m>{r}{*} {m}<r>{*} <m><r>{*}
;右半濁音「し」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,しぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{r}<*> {j}<r><*> <j>{r}<*> <j>{r}{*} {j}<r>{*} <j><r>{*}
;右濁音「じ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,じぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{m}{g}<*> {m}<g><*> <m>{g}<*> <m>{g}{*} {m}<g>{*} <m><g>{*}
;右半濁音「ち」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ちぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}{g}<*> {j}<g><*> <j>{g}<*> <j>{g}{*} {j}<g>{*} <j><g>{*}
;右濁音「ぢ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ぢぇ,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{v}{;}<*> {v}<;><*> <v>{;}<*> <v>{;}{*} {v}<;>{*} <v><;>{*}
;左半濁音「ふ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ふぇ,ふゅ,無,無
無,無,無,無,無,無,ふぁ,ふぃ,無,無,無,無
無,無,無,無,無,ふぉ,無,無,無,無,無

{f}{l}<*> {f}<l><*> <f>{l}<*> <f>{l}{*} {f}<l>{*} <f><l>{*}
;左濁音「ゔ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ゔぇ,ゔゅ,無,無
無,無,無,無,無,無,ゔぁ,ゔぃ,無,無,無,無
無,無,無,無,無,ゔぉ,無,無,無,無,無

{v}{l}<*> {v}<l><*> <v>{l}<*> <v>{l}{*} {v}<l>{*} <v><l>{*}
;左半濁音「う」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,うぇ,無,無,無
無,無,無,無,無,無,無,うぃ,無,無,無,無
無,無,無,無,無,うぉ,無,無,無,無,無

{v}{k}<*> {v}<k><*> <v>{k}<*> <v>{k}{*} {v}<k>{*} <v><k>{*}
;左半濁音「い」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,いぇ,無,無,無
無,無,無,無,無,無,無,無,うぃ,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{f}{h}<*> {f}<h><*> <f>{h}<*> <f>{h}{*} {f}<h>{*} <f><h>{*}
;左濁音「ぐ」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,ぐぇ,無,無,無
無,無,無,無,無,無,ぐぁ,ぐぃ,無,無,無,無
無,無,無,無,無,ぐぉ,無,無,ぐゎ,無,無

{v}{h}<*> {v}<h><*> <v>{h}<*> <v>{h}{*} {v}<h>{*} <v><h>{*}
;左半濁音「く」+拗音
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,くぇ,無,無,無
無,無,無,無,無,無,くぁ,くぃ,無,無,無,無
無,無,無,無,無,くぉ,無,無,くゎ,無,無

{g}<*> <g>{*}
;英数モード遷移
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,換,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{j}<*> <j>{*}
;日本語モード遷移
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,変,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無

{v}<*> <v>{*}
;Enter
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,入,無,無,無,無

{j}{k}<*> {j}<k><*> <j>{k}<*> <j>{k}{*} {j}<k>{*} <j><k>{*}
;横書き用編集モード v15B1
無,無,無,無,無,無,無,無,無,無,無,無,無
c終,=c入後'『』'左,無,cs,/,無,無,無,無,無,無,無
=c入後'……',()入左,?入,[]入左,入終入[]入左,無,無,無,無,無,無,無
=c入後'||',=c入後'【】'左,!入,入右,入終入空,無,無,無,無,無,無

;{j}{k}<*> {j}<k><*> <j>{k}<*> <j>{k}{*} {j}<k>{*} <j><k>{*}
;縦書き用編集モード
;無,無,無,無,無,無,無,無,無,無,無,無,無
;c終,=c入後'『』'上,無,cs,/,無,無,無,無,無,無,無
;=c入後'……',()入上,?入,[]入上,入終入[]入上,無,無,無,無,無,無,無
;=c入後'||',=c入後'【】'上,!入,入下,入終入空,無,無,無,無,無,無


{d}{f}<*> {d}<f><*> <d>{f}<*> <d>{f}{*} {d}<f>{*} <d><f>{*}
;横書き用編集モード
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,家,s終後,変,消,逃逃逃,無,無
無,無,無,無,無,入終,左,s左,s左左左左左左左,ci,無,無
無,無,無,無,無,終,右,s右,s右右右右右右右,cu,無

;{d}{f}<*> {d}<f><*> <d>{f}<*> <d>{f}{*} {d}<f>{*} <d><f>{*}
;縦書き用編集モード v15B1
;無,無,無,無,無,無,無,無,無,無,無,無,無
;無,無,無,無,無,家,s終後,変,消,逃逃逃,無,無
;無,無,無,無,無,入終,上,s上,s上上上上上上上,ci,無,無
;無,無,無,無,無,終,下,s下,s下下下下下下下,cu,無


{m}{,}<*> {m}<,><*> <m>{,}<*> <m>{,}{*} {m}<,>{*} <m><,>{*}
;横書き用編集モード2 v15B1
無,無,無,無,無,無,無,無,無,無,無,無,無,無
cx後消cv,cx'『'cv'』'入空s左cx,空空空,家入空終;,=c入後'〇',無,無,無,無,無,無,無
=c入後'/',cx'('cv')'空s左cx,空空空,cx'「'cv'」'空s左cx,無,無,無,無,無,無,無,無
=c入後'   ×   ×   ×'入,cx'【'cv'】'空s左cx,終消消消消,終消消,cx,入cv'《》'入s左空s左cx,無,無,無,無,無

;{m}{,}<*> {m}<,><*> <m>{,}<*> <m>{,}{*} {m}<,>{*} <m><,>{*}
;縦書き用編集モード2 v15B1
;無,無,無,無,無,無,無,無,無,無,無,無,無,無
;cx後消cv,cx'『'cv'』'入空s上cx,空空空,家入空終;,=c入後'〇',無,無,無,無,無,無,無
;=c入後'/',cx'('cv')'空s左cx,空空空,cx'「'cv'」'空s上cx,無,無,無,無,無,無,無,無
;=c入後'   ×   ×   ×'入,cx'【'cv'】'空s左cx,終消消消消,終消消,cx,入cv'《》'入s上空s上cx,無,無,無,無,無


{c}{v}<*> {c}<v><*> <c>{v}<*> <c>{v}{*} {c}<v>{*} <c><v>{*}
;横書き用編集モード2 v15B1
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,s家,cx,下,上,cv,無,無
無,無,無,無,無,cc,上上上上上,s上,s上s上s上s上s上,s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上s上,無,無
無,無,無,無,無,s終,下下下下下,s下,s下s下s下s下s下,s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下s下,無

;{c}{v}<*> {c}<v><*> <c>{v}<*> <c>{v}{*} {c}<v>{*} <c><v>{*}
;縦書き用編集モード2
;無,無,無,無,無,無,無,無,無,無,無,無,無
;無,無,無,無,無,s家,cx,左,右,cv,無,無
;無,無,無,無,無,cc,右右右右右,s右,s右s右s右s右s右,s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右s右,無,無
;無,無,無,無,無,s終,左左左左左,s左,s左s左s左s左s左,s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左s左,無