キーボード配列エミュレーションソフトウェア 紅皿

# 1	始めに
## 1.1. 何をするものなのか
　Benizara ver.0.1.6.0は、Windows環境に接続されたJISキーボードで親指シフト (NICOLA配列) による入力を可能にするエミュレーションソフトウェアです。Windows10のMS-IMEとGoogle日本語入力で動作を確認しています。なお、Benizaraは、設定ファイルを読み込ませることにより、親指シフトに限らず、任意にキーボード配列のエミュレーションが可能です。
　Benizara（紅皿）の名前は、太田道灌の山吹伝説に由来します。

・実行ファイル版とインストーラ版は、以下に開示しています。

  https://osdn.net/projects/benizara/releases/

・GitHubに全ソースコードを開示しています。お好きに触ってみてください。

  https://github.com/k-ayaki/benizara

・動作仕様書はこちらです。

  https://qiita.com/kenichiro_ayaki/items/9a39a5c7622c23e3ce3b

・零遅延モードの技術説明はこちらです。

  https://qiita.com/kenichiro_ayaki/items/0dfdd93c3844b4a7a9da

・「キーボード配列エミュレータ紅皿での「゛゜小」キーの実現」はこちらです

  https://qiita.com/kenichiro_ayaki/items/e1f6ebf6a1fbf91c7eed

・サポートブログはこちらです。

  https://benizara.hatenablog.com/

## １．２．特徴
・Windows10のストアアプリや、Microsoft Edge上でも親指シフト入力が可能です。
・やまぶきと同様に１２面のシフトモードを実現し、やまぶきの配列定義ファイルをある程度まで読込可能としました。
・やまぶきの打鍵ロジックを参考に実装し、かつ連続シフトモードをサポートしています。よって、やまぶき（やまぶきＲ）からの移行は容易とおもいます。
・Benizaraは、AutoHotKeyのスクリプトを実行ファイル化したものです。ユーザモードでキーフックするタイプのエミュレータなので、導入も停止も簡単です。USBメモリで持ち歩くこともできます。
・親指の友Mk-2 キーボードドライバ V2.0L23に実装された「零遅延モード」を、当該ソフトにも実装しました。零遅延モードとは、親指シフト時の表示遅延をゼロにして、高速打鍵を可能とするモードです。
・Performance Counterを用いて、1ミリ秒単位のキー入力タイミング測定を実現しました。これにより正確な同時打鍵／単独打鍵の判定が行えます。なお、Ver.0.1.2以前はシステムタイマーを用いてキー入力を測定していたため、測定精度は16ミリ秒単位でした。
・管理者権限への切替ボタンを実装しました。紅皿を管理者権限で実行させることにより、管理者権限で実行されているアプリケーションに対してもキー配列のエミュレーションが可能です。
・単独打鍵の有効・無効の切り替え機能と、キーリピートの有無の切り替えを実装しました
(ver.0.1.3.2)。
・Shift/Control/Alt/Windows/AppsKeyのキー入力をログ表示させました。
・機能キーの切り替えを実装しました。
・濁音と半濁音と拗音の切り替えキーを定義しました。
・紅皿の「無」キーを、やまぶきの「無」キーと同一仕様に変更しました。
・ver.0.1.4.8 にて拡張親指シフト機能を追加しました。
・Windows10 May 2020 updateにおけるMicrosoft IMEに対応させました。

## １．３．未だ実装していないこと
・各ＩＭＥのかな入力モードには対応していません。（Google日本語入力が、正しくIMEモードを返さないためです。）

##１．４．入力速度ベンチマーク
・落語「じゅげむ」の名前を入力するベンチマークで評価しました。具体的にいうと「じゅげむじゅげむごこうのすりきれ　かいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつ　くうねるところにすむところ　やぶらこうじのぶらこうじ　ぱいぽぱいぽぱいぽのしゅーりんがん　しゅーりんがんのぐーりんたい　ぐーりんたいのぽんぽこぴーのぽんぽこなーのちょうきゅうめいのちょうすけ」を仮名入力する時間を計測するものです。このベンチマークは、今井士郎さんのブログを参考にしました。
・自分が「じゅげむベンチマーク」を実行した際の親指シフト入力の最速は４５秒、平均は５５秒でした。なお、ローマ字入力の最速は７５秒、平均は８０秒でした。

# ２．	使い方
## ２．１．取り扱い種別
　Benizara（紅皿）はフリーソフトウエアであり、IME.ahk, Path.ahk, Gdip.ahkを除く各ソースコードはMITライセンスの下で再利用可能です
　なお、Benizaraのソースコードのうち、IME.ahk, Path.ahk は、[eamat](https://www6.atwiki.jp/eamat/)さまが作成されたライブラリです。Gdip.ahkは、Tariq Porterさまが作成されたライブラリです。

## ２．２．動作環境
　Windows7(32bit)とWindows10(64bit)とWindows11(64bit)で動作確認していますが、NT系のWindowsならば、どの環境でも動作する筈です。
　IMEは、Atok11とMS-IMEとGoogle日本語入力で動作確認しています。
　キーボードはJIS109キーボードと親指シフト表記付きUSBライトタッチキーボードに対応しています。

## ２．３．インストール方法
（１）vectorまたはOSDNから benizara をダウンロードして所望のパスに解凍してください。
OSDNのURL https://osdn.net/projects/benizara/releases/
（２）インストーラ版では、解凍後にsetup.exe を実行してください。インストールか完了すると、お使いのJIS109キーボードが親指シフト (NICOLA配列) に切り替わります。
　なお、InstallShield LE版を用いて作成しています。

・setup.exeを実行すると、最初、以下のダイアログが表示される場合がありますので、詳細情報をクリックします。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/eea83825-d81f-7b21-8656-af26863c86d2.png">

そして、実行ボタンをクリックします。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/08c986a0-1789-fd9a-3b38-e9524b45a986.png">

セットアップウイザードが開きます。
![setup00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/3cd7ffaf-79e4-b15d-a045-d4052727a9cc.png)

インストールフォルダの選択ダイアログが開きます。benizaraを全てのユーザ用にインストールすることもできます。何れの選択肢もデフォルトのままでかまいません。
![setup01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/5498f892-0153-d5e5-392d-98a8e953bada.png)

インストールの確認ダイアログで確認ボタンをクリックします。
![setup02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/280189e7-c304-1865-2a45-932fa47183b2.png)

インストールが実行されます。
![setup03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/ce8868f8-babd-5bdd-5dff-50ac6052d327.png)


（３）EXEファイル版では、解凍後にbenizara.exeを実行してください。お使いのJIS109キーボードが親指シフト (NICOLA配列) に切り替わります。SetBenizaraTask.exeを実行すると、タスクスケジューラにbenizaraが設定され、以降はログインごとに自動起動します。

## ２．３．１．Microsoft IMEの設定について
Microsoft IMEの設定は、「以前のバージョンを使う」を選択しなくても動作するようになりました。

# ３．	紅皿設定の説明
タスクトレイの紅皿アイコンを右クリックして、紅皿設定をクリックすると以下の設定ダイアログが表示されます。各タブの下のOKボタンをクリックすると変更が反映され、キャンセルボタンをクリックすると変更が破棄されます。

## ３．１．配列タブ
配列定義ファイルを表示し、かつ切り替える機能を備えたタブです。その下側には、親指シフトキーの選択コンボボックスと単独打鍵コンボボックスが表示され、更にキー配列が表示されています。このキー配列は、リアルタイムで打鍵が表示されます。「…」ボタンをクリックすると、ファイル選択ダイアログが開き、配列定義ファイルを選択可能となります。

![紅皿設定_NICOLA配列_英数.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/b41c8d41-03ae-80f6-b96d-5c6042d0f843.png)

![紅皿設定_NICOLA配列_ローマ字a.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/6cdde725-148f-e940-c0be-157b9ead8ffc.png)

・配列タブの左最上段には、配列名が表示されます。
・定義ファイル欄には、定義ファイルのパスが表示され、その右にはファイル選択ボタンが表示されます。
・親指シフトキーのコンボボックスは、無変換－変換と無変換－空白と空白－変換とが選択可能です。無変換－変換を選択した場合、無変換キーが左親指キー、変換キーが右親指キーです。無変換－空白を選択した場合、無変換キーが左親指キー、空白キーが右親指キーであり、かつ単独打鍵時には空白が打鍵されます。このとき、変換キーの機能はそのままです。空白－変換を選択した場合、空白キーが左親指キー、変換キーが右親指キーです。
・単独打鍵のコンボボックスは、無効と有効が選択可能です。有効の場合には、左右の親指シフトキーを単独打鍵した場合、対応するキーが入力されます。

<iframe width="560" height="315" src="https://www.youtube.com/embed/3I-xpBcCgqk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
・キーオンとキーオフが画面にリアルタイムで反映されます。

## ３．２．親指シフトタブ
親指シフトに関する設定画面です。
![親指シフトタフ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/f446371e-70c1-d576-c908-94ae1d9707f7.png)

親指シフトに関する設定画面です。
・連続シフトのチェックポックスは、親指シフトキーの押下中に、連続してシフトモードの文字を入力するためのものです。推奨設定はオンです。中指シフトの場合、この設定は無視されます。
・零遅延モードのチェックポックスは、キー押下と共に遅延無く文字を出力する「零遅延モード」をオンするものであり、推奨設定はオンです。この零遅延モードは、親指の友Mk-2キーボードドライバ（聖人さま作）の機能を参考としました。
・キーリピートのチェックボックスは、チェック有り（有効）と無し（無効）に設定可能です。
・親指キー⇒文字キーの重なりの割合は、10～90[%]の間で可変です。親指キーを先行したときの文字キーの打鍵の重なりがこの割合を満たしたならば同時打鍵となります。連続シフトをオンした場合35%、連続シフトをオフした場合50%を推奨します。
・文字キー⇒親指キーの重なりの割合は、10～90[%]の間で可変です。文字キーを先行したときの親指キーの打鍵の重なりがこの割合を満たしたならば同時打鍵となります。連続シフトをオンした場合70%、連続シフトをオフした場合50%を推奨します。
・文字キーと親指キーの重なりの判定時間は、10～400[mSEC]の間で可変です。NICOLA規格では、50～200[mSEC]が推奨されています。推奨値は、連続シフトの場合で100[mSEC]、連続シフトしない場合で150[mSEC]です。



## ３．３．文字同時打鍵タブ
文字同時打鍵に関する設定画面です。
![文字同時打鍵タブ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/1ad64077-e419-8cd7-4433-ab88c4e19286.png)

文字同時打鍵に関する設定画面です。
・零遅延モードのチェックポックスは、キー押下と共に遅延無く文字を出力する「零遅延モード」をオンするものであり、親指シフトの設定と共通です。
・文字キー同志の重なりの割合は、10～90[%]の間で可変です。２つのキーの打鍵時に、打鍵の重なりがこの割合を満たしたならば同時打鍵となります。推奨値は40%です。
・文字キー同志の重なりの判定時間は、10～400[mSEC]の間で可変です。推奨値は、100[mSEC]です

## ３．４．状態タブ
一時停止と管理者権限を設定します。PauseとScrollLockと無効の何れかが一時停止キーとして選択可能です。
![状態タブ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/b8fa06de-002f-3c54-6fa4-13aee42a19c2.png)

## ３．５．紅皿についてタブ
バージョン情報や紅皿の概要が書かれたタブです。

## ３．６．ログの説明 (ver.0.1.3.2より)
　タスクトレイの紅皿アイコンを右クリックして、ログをクリックすると紅皿ログが表示されます。

![ログ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/0e710d41-d64f-b7ae-ecd8-2fdf686370d3.png)
※「じゅげむごこうのすりきれ」とタイプしているときのログです。

| 名称         | 概要       |
|:----------------|:----------------|
|TIME| 起動後の時間（ミリ秒）|
|PERIOD| 前イベントからの経過時間（ミリ秒）|
|INPUT| キーボードからのキー入力 |
|O| 親指シフト状態（R,L,N) |
|MD| キー入力状態 (R,RM,MR,L,LM,ML,RMr,LMl) |
|TG| 当該イベントのトリガー(R,L,r,l,M,m) |
|OVL| 起動後の時間（ミリ秒）|
|TOUT| タイムアウト時間（ミリ秒）|
|SEND| アプリケーションへのキー送信 |

※：親指シフト状態がRは右親指、Lは左親指、Nはシフト無しです。
※：キー入力状態は、Rが右親指オン、RMが右親指オン後の文字キーオン、MRが文字キーオン後の右親指オン、Lが左親指オン、LMが左親指オン後の文字キーオン、MLが文字キーオン後の左親指オン、RMrが右親指オンー文字キーオンー右親指オフ、LMlが左親指オンー文字キーオンー左親指オフ。
※：当該イベントのトリガーは、Rは右親指オン、Lは左親指オン、Mが文字キーオン、rは右親指オフ、lは左親指オフ、mが文字キーオフ。

# ４．	キー配列（デフォルト）
　紅皿は、やまぶきと同様に、ローマ字モード最大６面と、英数モード最大６面の全１２面のキーボードレイアウトが可能です。ローマ字モードは、ＩＭＥをローマ字入力のひらがな・全角カタカナ・半角カタカナに設定したときのモードであり、英数モードは、ＩＭＥを全角英数・半角英数・直接入力に設定したときのモードです。

## ４．１．NICOLA配列

URL:http://nicola.sunicom.co.jp/spec/kikaku.htm
ファイル名：NICOLA配列.bnz、NICOLA配列半濁音拡張.bnz

・NICOLA配列とは、いわゆる富士通の「親指シフト」を規格化したものです。
ここでは、NICOLA配列のローマ字モードにおける配列を示しています。
左上が左親指シフト、右上が右親指シフト、左下が小指シフト、右下がシフト無しです。
レイアウト左下に凡例が示されています。左上が左親指シフト、右上が右親指シフト、左下が小指シフト、右下がシフト無しです。なお、小指シフトキーを押下したときに半濁音を出力したい場合には、“NICOLA配列半濁音拡張.bnz”をお使いください。

NICOLA配列の英数配列（デフォルト）です。
左下が小指シフト、右下がシフト無しです。このモードでは、キーフックせずにキーボード入力をそのまま出力します

![紅皿設定_NICOLA配列_英数.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/ba5dbede-ca25-79d9-1b9b-e0351a45bc9c.png)

## ４．２．NICOLA-F配列
URL:http://nicola.sunicom.co.jp/info2.html
ファイル名：NICOLA-F配列.bnz

　NICOLA配列のバリエーションです。
・ローマ字モード
![NICOLA配列F.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/e15fe218-d38e-ba7d-ba3e-ec297594bbe0.png)

## ４．３．Orzレイアウト
URL: http://www.orz-layout.com/
ファイル：orzレイアウト.bnz 、orzレイアウト_英数ずらし無し.bnz 

　日本語JISキーボードの親指シフトで悩まされる親指キー位置の不自然さを解決するキーボードレイアウトです。右手をホームポジションから１つだけ右にずらしています。英数モードもずらす配列と、英数ずらし無しの配列ファイルを同梱しています。
・ローマ字モード
![orz配列ローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/38b12ff5-b5ec-dca6-2760-007009c5cd67.png)

・英数モード
![orz配列ank.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/9e1de0c0-0e92-950e-a956-132e9e7b70f7.png)


## ４．４．親指シフト表記付きUSBライトタッチキーボード配列
URL:https://eee-life.com/kb/
ファイル名：親指シフト表記付きUSBライトタッチキーボード配列.bnz

　ライフラボ社から発売されている親指シフト表記付きUSBライトタッチキーボード向けの配列です。
・ローマ字モード
![USBライトタッチローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/32373f32-abb9-803d-9dd7-c6442b3e447f.png)

・英数モード
![USBライトタッチ英数.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/5fc91c08-8cc7-6000-2fe5-ac0a9d39e7ae.png)

## ４．５．月配列
URL:http://yellow.ribbon.to/~ujiro/, http://jisx6004.client.jp/tsuki.html
ファイル名：月U9完成版.bnz

・2chの、パソコン一般板・新JISスレッドで生まれた日本語入力用カナ系配列です。プリフィックスシフトで動作します。
![月配列_ローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/45adf9c1-f982-30ae-0420-e83e57948e2b.png)

・中指（DK）をタイプすると、第１面に遷移し、配列表の左上の文字がタイプできます。第１面で１回だけキー入力すると、元の面に戻ります。

・薬指（SL）をタイプすると、第２面に遷移し、配列表の右上の文字がタイプできます。第２面で１回だけキー入力すると、元の面に戻ります。

## ４．６．下駄配列
URL：http://web1.nazca.co.jp/kouy/geta.html
ファイル名：下駄配列.bnz

　下駄配列は、出現頻度の高いカナ文字は1打鍵、出現頻度の低いカナ文字は左右の手で同時に2つのキーを押す（文字同時打鍵）ことによって入力する配列です。
・ローマ字モード
![下駄配列_ローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/42ddb7c5-e78c-e0ee-6250-69e53363a5bd.png)

・一方の手の中指ホームポジション（DK）と、他方の手のキーを同時に打鍵すると、配列表の左上の文字がタイプできます。
・一方の手の薬指ホームポジション（SL）と、他方の手のキーを同時に打鍵すると、配列表の右上の文字がタイプできます。
・一方の手の中指上段（E,I）または薬指上段(W,O)と他方の手のキーの同時打鍵で、拗音が入力できます。なお、上記には示されていません。
・一方の手の小指ホームポジション（A;) と他方の手のキーの同時打鍵で、拗音が入力できます。なお、上記には示されていません。
・一方の手の人差し指ホームポジション（FJ)と他方の手のキーの同時打鍵で、拗音が入力できます。なお、上記には示されていません。
・右手の（@)と左手キーの同時打鍵で、拗音が入力できます。なお、上記には示されていません。
・各隣接キーの同時打鍵で、記号が入力できます。なお、上記には示されていません。

## ４．７．新下駄配列
URL：https://kouy.exblog.jp/13627994/
ファイル名：新下駄.bnz

　新下駄配列は、文字同時打鍵を用いた配列であり、下駄配列の特徴を受け継いでいます。
ローマ字モード
![新下駄配列_ローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/4a3b7067-37cf-9c6c-93b4-e2dcd9ed97ed.png)

・一方の手の中指ホームポジション（DK）と、他方の手のキーを同時に打鍵すると、配列表の左上の文字がタイプできます。
・一方の手の薬指ホームポジション（SL）と、他方の手のキーを同時に打鍵すると、配列表の右上の文字がタイプできます。
・I,Oと他のキーの同時打鍵で、各種拗音が入力できます。なお、上記には示されていません。

## ４．８．飛鳥１２３配列
URL: http://ameblo.jp/asuka-layout/entry-10589277915.html
ファイル名：飛鳥123.bnz、飛鳥123(拡張親指シフト).bnz

飛鳥配列は、親指2シフト同時打鍵であり、かつ左右親指キーを推しながら文字キーを打鍵してもシフトモードとすることが前提です。
なお「カタカナ／ひらがな」キーでBackspaceを出力します。
なお、飛鳥123(拡張親指シフト).bnzは、左Altキーと文字キーの同時打鍵で、所定の制御コードを出力するものです。

![飛鳥123_ローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/1f7182b8-994c-f18a-25e4-82a6146de7ed.png)

## ４．９．かえでレフティあすか
URL: http://www12.atwiki.jp/kaede-asuka-layout/pages/42.html

かえでレフティあすか配列は、親指2シフト同時打鍵であり、かつ左右親指キーを押しながら文字キーを打鍵してもシフトモードとすることが前提です。
　なお、この配列では、左右シフトキーを左右親指シフトキーに設定し、無変換キーと変換キーを左右シフトキーに設定しています。
![かえでレフティ飛鳥_ローマ字.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/91c235b7-c7e9-32b2-58f4-78736479f40f.png)

　上記のレイアウトは、紅皿が読み込むキー配列ファイルによって変更することができます。

## ４．１０．JISカナ配列
URL : https://ja.wikipedia.org/wiki/JIS%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89
ファイル名：JISかな配列.bnz

JIS X 6002情報処理系けん盤配列として策定された配列です。濁音・半濁音・拗音を紅皿拡張キーで定義しています。
![JISかな.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/3419fc06-20aa-bd1c-2a47-05e0e14b3489.png)

## ４．１１．ローマ字入力用QWERT配列
URL: http://d.hatena.ne.jp/blechmusik2/20100627/1277582774, https://tu3.jp/0846
ファイル名：ローマ字入力用QWERTY配列.bnz

規定時間中に「母音キー + 子音キー」を入力すると「子音キー + 母音キー」に変換します。
たとえば、ak と素早く入力したときには、 ka を出力します。
![ローマ字入力QWERTY.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/c47ac679-3fd1-a3cc-8724-3f69fa2666d0.png)

## ４．１２．蜂蜜小梅配列
URL : http://8x3koume.na.coocan.jp
ファイル名：シン蜂蜜小梅(小指シフトで英大文字).bnz

清音＋濁音＋拗音を同じキーに配置した、清濁拗同置の日本語配列です。
![シン蜂蜜小梅.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/c61ec7d5-6aff-1503-34c2-2796a89173dd.png)

## ４．１３．薙刀式配列
URL: http://oookaworks.seesaa.net/article/486728351.html#more&gsc.tab=0
ファイル名：薙刀式配列v14集大成版(JIS横書き).bnz,薙刀式配列v14集大成版(JIS縦書き).bnz,薙刀式配列v15Fix版(JIS横書き).bnz,薙刀式配列v15Fix版(JIS縦書き).bnz

Space&Shiftをサポートし、以下の特徴を持ちます。
・ver.0.1.4.9ではスペースとシフトを区別します。（IMEオン時はスペースでカナシフトモード、シフトキーで全角英数モードです。）
・打ちづらいQTYを常用しない。
・30キー+スペースの31キーで、変換確定、文書編集まで完結させ、ホームポジションから手を動かさない。
・50音さえ覚えればそれ以上覚えなくて良い、記憶負担最小のカナ配列。
・「し」と「よ」の同時押しで「しょ」、「し」と「よ」と「゛」の同時押しで「じょ」など、構成要素の同時押しで一発で出せる。
![薙刀式.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/63540cf0-51dc-f652-5d91-3803892405ee.png)

## ４．１４．かわせみ配列
URL: https://github.com/semialt/kawasemi
ファイル名：かわせみ配列.bnz
　かわせみ配列は、覚えやすくて効率がいい、文字キー同時押し行段系かな配列です。
　かわせみ配列では、５０音の行（かさたなはまら、その濁音と半濁音）を示すキーを左手で、段（あいうえおやゆよ）を示すキーを右手で同時押しすることによってかな文字を入力します。

![かわせみ配列.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/7a3ed55d-1039-6df3-fcbc-3dbb25250a84.png)

## ４．１５．かわせみ配列改
URL: https://github.com/semialt/kawasemi
ファイル名：かわせみ配列改.bnz
　３キー同時押しを含む配列です。かわせみ配列との差分は、二重母音拡張のみです。
![かわせみ配列改.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/66bcad5a-caa0-15ba-dfa8-e1d12a0176b4.png)

## ４．１６．よだか配列
URL: https://github.com/semialt/yodaka
ファイル名：よだか配列.bnz
　よだか配列は５０音の行（あかさたなはまやらわ）を示すキーと段（あいうえお）を示すキーを同時押しすることによってかな文字を入力する日本語かな配列です。
![よだか配列.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266273/35784820-f72e-bfc0-5299-4a0ebd52bd25.png)

# ５．配列定義ファイル
## ５．１．文字コード
　読み込むことができる配列定義ファイルの文字コードは、UTF8です。拡張子が「bnz」と「yab」のファイルが配列定義ファイルになります。

## ５．２．各セクションの説明
### ５．２．１．[配列]セクション
[配列]セクションは、配列名とバージョンとURLを定義するものです。この内容は、紅皿の設定ダイアログに表示されます。

### ５．２．２．英数モードに係るセクション
　英数モードに係るセクションを記載していないときには、英数モードにおけるキーの入れ替えを行いません。
　[英数シフト無し]セクションは、英数モードかつ親指シフトや小指シフトでない状態でのキー打鍵を定義します。［英数小指シフト］セクションは、英数モードかつ小指シフトでのキー打鍵を定義します。[英数左親指シフト]セクションは、英数モードかつ左親指シフトでのキー打鍵を定義します。[英数右親指シフト]セクションは、英数モードかつ右親指シフトでのキー打鍵を定義します。

### ５．２．３．英数モードに係るセクション
　英数モードに係るセクションを記載していないときには、英数モードにおけるキーの入れ替えを行いません。
　[英数シフト無し]セクションは、英数モードかつ親指シフトや小指シフトでない状態でのキー打鍵を定義します。［英数小指シフト］セクションは、英数モードかつ小指シフトでのキー打鍵を定義します。[英数左親指シフト]セクションは、英数モードかつ左親指シフトでのキー打鍵を定義します。[英数右親指シフト]セクションは、英数モードかつ右親指シフトでのキー打鍵を定義します。［英数スペースシフト］セクションは、英数モードかつスペースシフトでのキー打鍵を定義します。

### ５．２．３．ローマ字モードに係るセクション
　ローマ字モードに係るセクションを記載していないときには、ローマ字モードにおけるキーの入れ替えを行いません。
　[ローマ字シフト無し]セクションは、ローマ字モードかつ親指シフトや小指シフトでない状態でのキー打鍵を定義します。［ローマ字小指シフト］セクションは、ローマ字モードかつ小指シフトでのキー打鍵を定義します。[ローマ字左親指シフト]セクションは、ローマ字モードかつ左親指シフトでのキー打鍵を定義します。[ローマ字右親指シフト]セクションは、ローマ字モードかつ右親指シフトでのキー打鍵を定義します。［ローマ字スペースシフト］セクションは、ローマ字モードかつスペースシフトでのキー打鍵を定義します。

### ５．２．４．親指シフトモードの定義
　[ローマ字シフト無し]セクション、[ローマ字左親指シフト]セクション、[ローマ字右親指シフト]セクション、［ローマ字小指シフト］セクションの４つの組み合わせにてローマ字モードにおける親指シフト入力を定義します。
　[英数シフト無し]セクションと、[英数左親指シフト]セクション、[英数右親指シフト]セクション、［英数小指シフト］セクションの４つの組み合わせにて、英数モードにおける親指シフト入力と小指シフト入力を定義します。

### ５．２．５．拡張親指シフトモードの定義
・[拡張親指シフト1]や[拡張親指シフト2]を設定すると、通常の左右親指シフトとは別の親指シフト面が使えます。
・[小指拡張親指シフト1]や[小指拡張親指シフト2]を設定すると、小指シフトを押しながら使ったときの拡張親指シフト面が定義できます。
　この配列面は、入力モードや前置シフトの状態の影響を受けません。

### ５．２．６．プリフィックスシフトモードの定義
　プリフィックスシフト（文字キー前置シフト）用の配列面がローマ字モードで4面・英数モードで4面が使えます。
　項目名は、[1ローマ字シフト無し]のように半角数字を前につけるか、[ローマ字１プリフィックスシフト]のように、モード名の後に半角数字を記載して、その後に「プリフィックスシフト」と記載してください。
　[ローマ字シフト無し]セクションと、[ローマ字１プリフィックスシフト]セクションなどのプリフィックスシフトセクションの組み合わせで、ローマ字モードにおけるプリフィックスシフトを定義します。
　[英数シフト無し]セクションと、[英数１プリフィックスシフト]セクションなどのプリフィックスシフトセクションの組み合わせで、英数モードにおけるプリフィックスシフトを定義します。

### ５．２．７．文字同時打鍵モードの定義
　キーを指定する文字を「<」と「>」（半角不等号）で囲って書いた後に配列面定義を書くと、文字キー二打による同時打鍵シフト方式の配列を定義することができます。
　[ローマ字シフト無し]セクションと、< a >～< z >,<@>,<[>,<]>,<:>,<,>,<.>,<\>セクションのうち何れかの組み合わせで、英数モードにおける文字同時打鍵を定義します。
　[英数シフト無し]セクションと、< a >～< z >,<@>,<[>,<]>,<:>,<,>,<.>,<\>セクションのうち何れかの組み合わせで、英数モードにおける文字同時打鍵を定義します。
　なお、現状の紅皿では、親指シフトと文字同時打鍵を同時に実行できません。

## ５．３．配列面
　「,」（半角コンマ）を区切りとして、Ｅ段１３～１４列、Ｄ段１２列、Ｃ段１２列、Ｂ段１１列の範囲で、キーに割り当てる文字を記載してください。

## ５．４．キーへの割り当て
### ５．４．１．キーに割り当て可能な文字
　割り当て可能な文字は、「ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろわをんゔァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロワヲンヴ、。゛゜「」－・！”＃＄％＆’（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［￥］＾＿｀‘ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝～逃入空後消挿上左右下家終前次無濁半拗修」です。
　「逃」はエスケープキー、「入」はエンターキー、「空」はスペースキー、「後」はバックスペースキー、「消」はデリートキー、「挿」はインサートキー、「上」「左」「右」「下」はカーソル移動キー、「家」はホームキー、「終」はエンドキー、「前」はページアップキー、「次」はページダウンキー、「無」は割り当て無し、「濁」は濁音変換、「半」は半濁音変換、「拗」は拗音変換、「修」は濁音・半濁音・拗音への変換です。

### ５．４．２．キーへの仮想キーコード割り当て
　「V」（半角大文字）の後に半角１６進数で仮想キーコードを指定すると、そのコードのキーストロークを割り当てることができます。

### ５．４．３．キーへの文字直接出力
　文字をシングルクォーテーションやダブルクォーテーションで囲むことにより、そのままアプリケーションに出力可能です。

# ６．アンインストール方法
## ６．１．インストーラ版のアンインストール
タスクトレイの紅皿アイコンを右クリックして、Exitをクリックしてbenizaraを停止させます。更にコントロールパネルのプログラムのアンインストールから、benizaraを選択してクリックしてください。
## ６．２．実行ファイル版のアンインストール
タスクトレイの紅皿アイコンを右クリックして、Exitをクリックしてbenizaraを停止させます。そして、benizara.exe が解凍されたフォルダを削除してください。なお、レジストリは使っていません。

# ７．配布ファイルとその構成
Vector またはOSDNにアップロードした setup.exe を実行すると、以下がインストールされます。
Benizara.exe ・・・ 紅皿の実行ファイルです。
Benizara.ini・・・紅皿の設定情報ファイルです。
NICOLA配列.bnz・・・NICOLA配列のファイルです。
NICOLA配列_仮名直接入力.bnz・・・タイプウェルで仮名文字を入力する際の配列です。
月U9完成版.bnz・・・月配列のファイルです。
下駄配列.bnz・・・下駄配列のファイルです。
新下駄.bnz・・・新下駄配列のファイルです。
飛鳥123.bnz・・・飛鳥123配列のファイルです。
かえでレフティあすか(英かなシフト同置).bnz・・・かえでレフティあすか配列のファイルです。
JISかな配列.bnz・・・JISかな配列のファイルです。
ローマ字入力用QWERTY配列.bnz・・・ローマ字入力で母音と子音が前後したときでも、本来のローマ字を出力します。
薙刀式配列v13(JIS横書き).bnz・・・横書き用薙刀式です。記号配列はJIS配列に似せています。
薙刀式配列v13(JIS縦書き).bnz・・・縦書き用薙刀式です。記号配列はJIS配列に似せています。
薙刀式配列v13(US横書き).bnz・・・横書き用薙刀式です。記号配列はUS配列に似せています。
薙刀式配列v13(US縦書き).bnz・・・縦書き用薙刀式です。記号配列はUS配列に似せています。
薙刀式配列v14(JIS横書き).bnz・・・横書き用薙刀式です。記号配列はJIS配列に似せています。
薙刀式配列v14(JIS縦書き).bnz・・・縦書き用薙刀式です。記号配列はJIS配列に似せています。
シン蜂蜜小梅(小指シフトで英大文字).bnz・・・シン蜂蜜小梅配列です。
かわせみ配列.bnz・・・かわせみ配列のファイルです。
かわせみ配列改.bnz・・・かわせみ配列改のファイルです。
よだか配列.bnz・・よだか配列のファイルです。

# ８．履歴
ver.0.1.1　…　初版
ver.0.1.2　…　WindowsキーとAltキーの単独押し動作を許可するためHotkey登録を外し、タイマー割込みで監視するようにした
ver.0.1.3　…　Performance Counter 対応、管理者権限への昇格機能、IME判定の不具合対応。
ver.0.1.3.1　…　親指キーの単独打鍵時のキーリピート、ログ機能追加。
ver.0.1.3.2　…　空白と変換を親指キーに設定可能。親指キー単体のタイムアウト抑止。
ver.0.1.3.3　…　キーレイアウトファイルの変更が次回起動時に反映されなかった不具合の対処。
ver.0.1.3.4　…　キーレイアウトファイルの読み込み時のエラー処理の追加。
ver.0.1.3.5　…　親指キーオン→文字キーオン→他の親指キーオンの処理Bと、親指キーオン文字キーオンオフの処理Eを仕様書に適合するように修正。
ver.0.1.3.6　…　同時複数起動の抑止、シフトキーとコントロールキーと上下左右カーソルキーのフックを外す、google日本語入力への仮対応、カナ文字モードの解析が不十分なためタイプウェルで仮名文字を入力する際の配列を除外。
ver.0.1.4.0　…　英数モードのように、入力キーとアプリケーションへの出力キーとが一致している場合にキーをフックしないように変更。入力キーorz配列で、かな長音がおかしくなる件に対応。親指シフト表記付きUSBライトタッチキーボード配列の「ぁ」の入力ができなかった件に対応。
ver.0.1.4.2　…　Windows 10 May 2020 Updateに対応するため、アプリに出力する文字をすべて半角または制御記号とした。
ver.0.1.4.3　…　キー配列ファイルに平仮名を記載可能とし、紅皿設定のキーレイアウトにリアルタイムのキー情報を表示させた。
ver.0.1.4.4　…　プレフィックスシフトと文字同時打鍵に対応し、月配列と下駄配列と新下駄配列のレイアウトファイルを追加した。
ver.0.1.4.5　…　親指シフトキーの設定が保存されていなかったのを直した。メニューによる一時停止機能を追加した。
ver.0.1.4.6　…　文字同時打鍵モードとプレフィックスシフトモードの不具合を直した。濁音と半濁音と拗音の入力キーを定義した。各配列ファイルを旧MS-IME前提に書き換えた。
ver.0.1.4.7　…　３キー同時打鍵に対応。
ver.0.1.4.8　…　拡張親指シフトに対応。 Windows10 May 2020 updateのMS-IMEに対応。
ver.0.1.4.9　…　スペースシフトと小指シフトを分離。
ver.0.1.6.0　…　配列ダイアログの品位向上、タイマー割込みの最小化。
以上