桔梗は、親指シフトや文字キー同時打鍵シフトなど、さまざまなキー配列を柔軟に実現するためのキーボード配列エミュレーターです。
1. タスクトレイメニューの使い方
桔梗を起動すると、Windowsのタスクトレイ(画面右下の通知領域)に桔梗のアイコンが表示されます。アイコンをクリック(または右クリック)するとメニューが表示され、以下の操作が可能です。
トレイアイコンの状態
- 通常時: 桔梗が有効に機能しています。
- 斜線(赤線)入り: 桔梗が一時停止(無効化)されています。
メニュー項目
- 配列の一覧: 現在登録されている配列定義ファイルの一覧が表示されます。チェックマークが付いているものが現在有効な配列です。クリックすることで瞬時に配列を切り替えることができます。
- 配列定義再読み込み: 配列定義ファイル(
.kky等)をテキストエディタ等で編集した際、この項目をクリックすると変更内容が即座に反映されます。 - 設定: 桔梗の設定画面を開きます。
- 一時停止 / 再開: 桔梗のキーフック動作を一時的に停止・再開します。
- 終了: 桔梗の実体を完全に終了します。
2. 設定画面の各項目と挙動
タスクトレイメニューの「設定」から開く画面では、桔梗の各種動作をカスタマイズできます。
2.1. 配列
- 配列定義ファイル:
使用する配列定義ファイル(.kky,.yab,.bnzなど)をリストに登録し、クリックでアクティブな配列を切り替えます。「新規追加」からファイルを選択して追加できます。 - 文字キーのキーリピートを有効にする:
キーを押しっぱなしにした際の連続入力(リピート)の挙動を設定します。- 文字が割り当てられているキー: オンにすると、配列定義により文字出力が設定されているキーを押し続けた際に連続入力が発生します。
- 文字が割り当てられていないキー: オンにすると、配列定義において文字が未定義(パススルー等)のキーを押し続けた際に連続入力が発生します。
2.2. 親指シフト
左親指、右親指それぞれについて独立して挙動を設定できます。
- 親指シフトキー:
親指シフトの起点となるキー(無変換、変換、Space等)を指定します。「なし」にすると当該の親指シフトは無効になります。
※拡張1〜拡張4などの拡張仮想キーも指定できます。 - 連続シフト:
オンにすると、親指シフトキーを押しっぱなしにしている間、文字キーを何度打鍵しても常にシフト状態が継続・適用されます。 - 単独打鍵:
親指シフトキーを他のキーと同時押しせず、単独で押して離した際の挙動を指定します。- 無効: 押しても何も出力しません。
- 有効: 設定した親指シフトキー自体の本来のキー入力(例:「変換」なら「変換」)を出力します。
- 前置シフト: 離した後に次に打鍵する1文字に対してシフトを適用します。
- スペースキー: 単独打鍵時に強制的に「スペース」を出力します。
- 親指シフトキーリピート:
単独打鍵が「有効」または「スペースキー」に設定されている場合、親指シフトキーを押しっぱなしにするとその出力がリピートされるようになります。 - 親指シフトが同時打鍵と判定される重なり割合:
文字キーと親指キーが「同時押しされた」と見なされるための、押下時間の重なり(オーバーラップ)の閾値(%)を設定します。
(※現在の内部仕様上、親指打鍵の判定にも下記の「文字キー同時打鍵シフト」の重なり割合が適用される場合があります)
2.3. 文字キー同時打鍵シフト
- 連続シフト:
文字キー同士による同時打鍵シフト(ローマ字テーブル等の拡張)において、シフトキー側の文字キーを押しっぱなしで連続入力することを許可します。 - 文字キー同士が同時打鍵と判定される重なり割合:
2つの文字キーが「同時押しされた」と見なされるための重なり時間の閾値(デフォルトは35%)を設定します。後に押されたキーの押下時間に対する、同時押下時間の割合で計算されます。
2.4. 動作モード
- 一時停止用のショートカットキー:
桔梗の動作を瞬時にオン・オフするためのキー(ScrollLock, Pause, Insert 等)を設定します。ゲームプレイ時など、一時的に通常キーボードに戻したい場合に便利です。 - IMEへのアクセス方法:
桔梗が内部でWindowsの日本語入力状態を判定する方式を指定します。通常はAutoのままで問題ありません。 - Windowsログオン時に自動起動:
オンにすると、PC起動時(Windowsログイン時)に自動的に桔梗が常駐します。
3. 配列定義ファイル(.kky 等)の仕様
配列定義ファイルは、カンマ区切りの表形式(CSVライク)で記述されたテキストファイルです。[セクション名] でブロックを分け、どのような打鍵で何の文字を出力するかを定義します。
3.1. 定義可能なセクション名とその挙動
桔梗では、セクション名によって「IMEの状態(日本語入力か英数か)」と「どのシフトキーが押されているか」を自動判定し、定義内容の解釈モードを切り替えます。
サポートされているすべてのセクション名は以下の通りです。
1. かな配列用セクション(全6種)
IMEが日本語入力モードのときに適用されます。
このセクション内に記述された文字は「かな解釈モード」となり、かな文字や全角記号(例:あ, 。,
「)を直接記述した際に、OSに送信すべき適切なキーコード群へと自動展開されます。
[かなシフト無し]: シフトキーも親指シフトキーも押されていない、基本となる状態。[かな左親指シフト]: 左親指シフトキーを押しながら打鍵した状態。[かな右親指シフト]: 右親指シフトキーを押しながら打鍵した状態。[かな小指シフト]: Shiftキー(左右問わず)のみを押しながら打鍵した状態。[かな小指左親指シフト]: Shiftキーと左親指シフトキーを両方押しながら打鍵した状態。[かな小指右親指シフト]: Shiftキーと右親指シフトキーを両方押しながら打鍵した状態。
2. ローマ字配列用セクション(全6種)
IMEが日本語入力モードのときに適用されますが、かな配列用セクションと異なり、文字のパース(解釈)は通常の英数・ローマ字扱いとして処理されます。かな入力を前提としない日本語配列(ローマ字テーブル拡張など)を定義する場合に使用します。
[ローマ字シフト無し][ローマ字左親指シフト][ローマ字右親指シフト][ローマ字小指シフト][ローマ字小指左親指シフト][ローマ字小指右親指シフト]
3. 英数配列用セクション(全6種)
IMEがオフ(英数・半角入力モード)のときに適用されるセクションです。英数入力時専用のキー配列や記号配列を定義する場合に使用します。
[英数シフト無し][英数左親指シフト][英数右親指シフト][英数小指シフト][英数小指左親指シフト][英数小指右親指シフト]
4. 拡張親指シフト用セクション(全2種)
左右の親指シフトキー以外に、「拡張1」「拡張2」として割り当てた親指シフトキーを押した際に適用されます。主にIMEが日本語モードの際に評価されます。
[拡張親指シフト1][拡張親指シフト2]
5. キーマッピング用セクション
[機能キー]
キー配列のベースとなるハードウェア的なマッピング(置換)を定義します。
フォーマットは置換元キー, 置換先キーと記述します。
(例:無変換, Extended1と記述すると、以降桔梗内部において無変換キーが「拡張仮想キー1」として振る舞い、これを親指シフトの起点などに設定できるようになります)
3.2. サブプレーン(拡張レイヤー)の定義
同一セクションの中で、同時打鍵の組み合わせによって出力を変えたい場合、<キー名> というタグを用いてサブプレーンを定義できます。
例えば
[かなシフト無し] セクションの中に [かなシフト無し] の基本の配列を記述した後、<k>
という行を書き、その下に配列を書くと「ベース面のキー」+「kキー」を同時打鍵したときの出力を定義できます。
3.3. キーの定義方法・構文表現
カンマ区切りの各セルには、以下のルールで出力したい文字やキーを記述します。
① コーテーション囲みなし(裸の文字列)
もっとも基本的な記述方法です。文字やキー名、修飾キーなどを組み合わせて書くことができます。
- 単一の文字(かな/英数字):
あ,a,1など。指定した文字を出力するための適切なキー情報に変換されます。 - 修飾キーの付与: 特定の文字を前置することで、修飾キーを同時押しした状態を表現できます。
S(Shift),C(Ctrl),A(Alt),W(Windows)- (例:
S左→ Shift + 左矢印キー 、C1→ Ctrl + 1)
- 機能キー・特殊キーの指定:
Enter,Space,Tab,BS,Esc,Home,End,PageUp,PageDown,Up,Down,Left,Rightなどのキー名を指定できます。- 特殊な定義として
機1~機12は F1 ~ F12 キーを意味します。 V41のようにV+ 16進数を記述すると、対応する仮想キーコード(VK)として直接送信されます。
- 特殊な定義として
- 無効なセル:
無またはxxと記述すると、そのセルには何も出力もパススルーも割り当てられません。
② ダブルコーテーション囲み "文字列"
出力したい文字列を "(ダブルコーテーション)で囲みます。
(例: "こんにちは", "、", "Shift")
この形式を使用すると、桔梗はシステムのIME状態を一時的に制御し、クリップボードや直接文字列入力APIなどを用いて記述した文字列そのものを確実に出力します(DirectString)。
記号や顔文字、一連の長い文字列を1キーで出力したい場合や、配列モードに左右されずに常に固定の文字を出力したい場合に最適です。
③ シングルコーテーション囲み '文字列'
内部的には文字列を個別のキーシーケンス(連続したキーストローク)として展開し、順番にキー入力を行ったものとして処理します。
(例: 'ni' と記述すると n を打鍵した後に i を打鍵する挙動になります)
3.4. 設定例
以下は配列定義ファイル(一部)の記述例です。
[英数シフト無し]
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,,,.,/,¥
[英数左親指シフト]
!,”,#,$,%,&,’,(,),'',=,~,|,後
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,<,>,?,_
[ローマ字シフト無し]
1,2,3,4,5,6,7,8,9,0,-,^,],後
"",き,て,し,下,上,後,る,す,へ,"",[
ろ,け,と,か,っ,く,あ,い,う,-,"",]
ほ,ひ,は,こ,そ,た,な,ん,ら,れ,¥
<j>
;2キー同時打鍵
無,無,無,無,無,無,無,無,無,無,無,無,無,無
無,ぎ,で,じ,無,無,無,無,無,無,無,無
ぜ,げ,ど,が,ぢ,無,無,無,無,無,無,無
ぼ,び,ば,ご,ぞ,無,無,無,無,無,無
<j><r>
;3キー同時打鍵
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,無,無,じょ,じぇ,じゅ,無,無
無,無,無,無,無,じゃ,無,無,無,無,無,無
無,無,無,無,無,無,無,無,無,無,無
<d><f>
;特殊文字系サンプル
無,無,無,無,無,無,無,無,無,無,無,無,無
無,無,無,無,無,家,S終後,変,消,S逃S逃S逃,無,無
無,無,無,無,無,入終,上,S上,S上S上S上S上S上S上S上,機7,無,無
無,無,無,無,無,終,下,S下,S下S下S下S下S下S下S下,機6,無
<j><k>
;特殊文字系サンプル
無,無,無,無,無,無,無,無,無,無,無,無,無
C終,"/",無,Cs,/,無,無,無,無,無,無,無
"……","『","?","「","(",無,無,無,無,無,無,無
"――","』","!","」",")",無,無,無,無,無,無
[ローマ字左親指シフト]
;センターシフト・JIS配列記号用
!,”,#,$,%,&,’,(,),"",=,~,|,後
"",め,り,ね,S下,S上,さ,よ,え,ゆ,`,}
せ,め,に,ま,ち,や,の,も,つ,ふ,*,{
ほ,ひ,を,,,ぬ,お,.入,む,わ,れ,_