# Rule toml definition not determined yet [metadata] # 名前。必須。 name = "default" # 説明文。必須。 description = "default typing rule" # conversion: # Key-Valueの配列 ローマ字変換規則 # # Keyはkeysym列 # スペース区切りで各wordがKeysymであればそのKeysymとして、そうでなければ各バイトをasciiとみなした文字のKeysymとして変換する。 # 変換できなかったものは無視される。 # 名称は https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h による。 # ascii文字(0x20..=0x7E)の範囲のみ変換する。 # 例: # "space 無視" -> KEY_space ('無視'はascii文字ではないため) # "lk Shift_L" -> KEY_l, KEY_k, KEY_Shift_L # "ab" -> KEY_a, KEY_b # "a t" -> KEY_a, KEY_t # "at" -> KEY_at # 最後の例のように特に短い名称のKeysymは対応するKeysym扱いされるので、2文字で2つのKeysym扱いしたい場合はスペースを間に入れる必要がある。 # 2文字の"Up", "ch", "at", "mu", "AE", "ae", "OE", "oe", "ht", "ff", "cr", "lf", "nl", "vt", "IO"には特に注意が必要 # # Valueは2要素の配列 # 最初の要素はkeysym列、かな変換後に残る入力(carryover)として使われる。 # 2つ目の要素が変換先文字列。 # # 例として kk = ["k", "っ"] と定義がある場合、k kと入力した際に"っ"が入力され、"k"が入力待ちの状態で残る。 [conversion] colon = ["", ":"] semicolon = ["", ";"] question = ["", "?"] bracketleft = ["", "「"] bracketright = ["", "」"] minus = ["", "ー"] a = ["", "あ"] ba = ["", "ば"] bb = ["b", "っ"] be = ["", "べ"] bi = ["", "び"] bo = ["", "ぼ"] bu = ["", "ぶ"] bya = ["", "びゃ"] bye = ["", "びぇ"] byi = ["", "びぃ"] byo = ["", "びょ"] byu = ["", "びゅ"] cc = ["c", "っ"] cha = ["", "ちゃ"] che = ["", "ちぇ"] chi = ["", "ち"] cho = ["", "ちょ"] chu = ["", "ちゅ"] cya = ["", "ちゃ"] cye = ["", "ちぇ"] cyi = ["", "ちぃ"] cyo = ["", "ちょ"] cyu = ["", "ちゅ"] da = ["", "だ"] dd = ["d", "っ"] de = ["", "で"] dha = ["", "でゃ"] dhe = ["", "でぇ"] dhi = ["", "でぃ"] dho = ["", "でょ"] dhu = ["", "でゅ"] di = ["", "ぢ"] do = ["", "ど"] du = ["", "づ"] dya = ["", "ぢゃ"] dye = ["", "ぢぇ"] dyi = ["", "ぢぃ"] dyo = ["", "ぢょ"] dyu = ["", "ぢゅ"] e = ["", "え"] fa = ["", "ふぁ"] fe = ["", "ふぇ"] "f f" = ["f", "っ"] fi = ["", "ふぃ"] fo = ["", "ふぉ"] fu = ["", "ふ"] fya = ["", "ふゃ"] fye = ["", "ふぇ"] fyi = ["", "ふぃ"] fyo = ["", "ふょ"] fyu = ["", "ふゅ"] ga = ["", "が"] ge = ["", "げ"] gg = ["g", "っ"] gi = ["", "ぎ"] go = ["", "ご"] gu = ["", "ぐ"] gya = ["", "ぎゃ"] gye = ["", "ぎぇ"] gyi = ["", "ぎぃ"] gyo = ["", "ぎょ"] gyu = ["", "ぎゅ"] ha = ["", "は"] he = ["", "へ"] hh = ["h", "っ"] hi = ["", "ひ"] ho = ["", "ほ"] hu = ["", "ふ"] hya = ["", "ひゃ"] hye = ["", "ひぇ"] hyi = ["", "ひぃ"] hyo = ["", "ひょ"] hyu = ["", "ひゅ"] i = ["", "い"] ja = ["", "じゃ"] je = ["", "じぇ"] ji = ["", "じ"] jj = ["j", "っ"] jo = ["", "じょ"] ju = ["", "じゅ"] jya = ["", "じゃ"] jye = ["", "じぇ"] jyi = ["", "じぃ"] jyo = ["", "じょ"] jyu = ["", "じゅ"] ka = ["", "か"] ke = ["", "け"] ki = ["", "き"] kk = ["k", "っ"] ko = ["", "こ"] ku = ["", "く"] kya = ["", "きゃ"] kye = ["", "きぇ"] kyi = ["", "きぃ"] kyo = ["", "きょ"] kyu = ["", "きゅ"] ma = ["", "ま"] me = ["", "め"] mi = ["", "み"] mm = ["m", "っ"] mo = ["", "も"] "m u" = ["", "む"] mya = ["", "みゃ"] mye = ["", "みぇ"] myi = ["", "みぃ"] myo = ["", "みょ"] myu = ["", "みゅ"] n = ["", "ん"] na = ["", "な"] ne = ["", "ね"] ni = ["", "に"] nn = ["", "ん"] no = ["", "の"] nu = ["", "ぬ"] nya = ["", "にゃ"] nye = ["", "にぇ"] nyi = ["", "にぃ"] nyo = ["", "にょ"] nyu = ["", "にゅ"] "n quotedbl" = ["", "ん"] o = ["", "お"] pa = ["", "ぱ"] pe = ["", "ぺ"] pi = ["", "ぴ"] po = ["", "ぽ"] pp = ["p", "っ"] pu = ["", "ぷ"] pya = ["", "ぴゃ"] pye = ["", "ぴぇ"] pyi = ["", "ぴぃ"] pyo = ["", "ぴょ"] pyu = ["", "ぴゅ"] ra = ["", "ら"] re = ["", "れ"] ri = ["", "り"] ro = ["", "ろ"] rr = ["r", "っ"] ru = ["", "る"] rya = ["", "りゃ"] rye = ["", "りぇ"] ryi = ["", "りぃ"] ryo = ["", "りょ"] ryu = ["", "りゅ"] sa = ["", "さ"] se = ["", "せ"] sha = ["", "しゃ"] she = ["", "しぇ"] shi = ["", "し"] sho = ["", "しょ"] shu = ["", "しゅ"] si = ["", "し"] so = ["", "そ"] ss = ["s", "っ"] su = ["", "す"] sya = ["", "しゃ"] sye = ["", "しぇ"] syi = ["", "しぃ"] syo = ["", "しょ"] syu = ["", "しゅ"] ta = ["", "た"] te = ["", "て"] tha = ["", "てぁ"] the = ["", "てぇ"] thi = ["", "てぃ"] tho = ["", "てょ"] thu = ["", "てゅ"] ti = ["", "ち"] to = ["", "と"] tsu = ["", "つ"] tt = ["t", "っ"] tu = ["", "つ"] tya = ["", "ちゃ"] tye = ["", "ちぇ"] tyi = ["", "ちぃ"] tyo = ["", "ちょ"] tyu = ["", "ちゅ"] u = ["", "う"] va = ["", "ゔぁ"] ve = ["", "ゔぇ"] vi = ["", "ゔぃ"] vo = ["", "ゔぉ"] vu = ["", "ゔ"] vv = ["v", "っ"] wa = ["", "わ"] we = ["", "うぇ"] wi = ["", "うぃ"] wo = ["", "を"] wu = ["", "う"] ww = ["w", "っ"] xa = ["", "ぁ"] xe = ["", "ぇ"] xi = ["", "ぃ"] xka = ["", "ゕ"] xke = ["", "ゖ"] xo = ["", "ぉ"] xtsu = ["", "っ"] xtu = ["", "っ"] xu = ["", "ぅ"] xwa = ["", "ゎ"] xwe = ["", "ゑ"] xwi = ["", "ゐ"] xx = ["x", "っ"] xya = ["", "ゃ"] xyo = ["", "ょ"] xyu = ["", "ゅ"] ya = ["", "や"] ye = ["", "いぇ"] yo = ["", "よ"] yu = ["", "ゆ"] yy = ["y", "っ"] "z comma" = ["", "‥"] "z period" = ["", "…"] "z slash" = ["", "・"] "z bracketleft" = ["", "『"] "z bracketright" = ["", "』"] "z minus" = ["", "〜"] za = ["", "ざ"] ze = ["", "ぜ"] zh = ["", "←"] zi = ["", "じ"] zj = ["", "↓"] zk = ["", "↑"] zl = ["", "→"] zo = ["", "ぞ"] zu = ["", "ず"] zya = ["", "じゃ"] zye = ["", "じぇ"] zyi = ["", "じぃ"] zyo = ["", "じょ"] zyu = ["", "じゅ"] zz = ["z", "っ"] # # command: 各モードのコマンド # 各モードごとにコマンドのマッピングをする。 # keyは1つのKeyEvent # 短い前置詞としてC-,A-,M-,G-がそれぞれCtrl,Mod1(Alt)、Meta, Mod5モディファイアとして解釈される。 # 長い前置詞として()で括った時に"control" | "meta" | "alt" | "lshift" | "rshift" | "shift" がモディファイアとして解釈される。 # 本体は上記conversionと同じKeysym # # valueはコマンドの配列。 # コマンドが未整理でlibskkより煩雑なため、メジャーバージョンアップデートで変える可能性がある。 # # ChangeInputMode(InputMode) - 入力モードを変更する # ChangeCompositionMode(CompositionMode) - 変換モードを変更する。 # # ConfirmAs(InputMode) - かな変換のあるInputModeを指定し、漢字変換前のかなをそのモードで入力する. # ForceKanaConvert(InputMode) - 未変換の入力を強制的にかな変換して入力する。 (`n`を`ん`,`ン`に入力する) # ConfirmDirect - 辞書登録モードの時、現在の入力を確定して入力処理を終える。そうでない場合、cskkでは何もせず、入力処理も終えない。 # # ClearUnconvertedInputs - かな変換前の入力を全て消す。 # ClearKanaConvertedInputs - 漢字変換前の入力を全て消す。 # ClearUnconfirmedInputs - 未確定入力を全て消す。 # Delete - 一文字消す。消せた場合のみ入力処理を終える。 # # ConfirmComposition - 現在の変換候補で確定する。確定できた場合、CompositionModeはDirectに戻る。 # TryNextCandidate - 次の変換候補を選択する。候補がないと辞書登録モードに移る。 # TryPreviousCandidate - 前の変換候補を選択する。候補がないと変換前モードに戻る。 # NextCandidatePointer - 次の変換候補を選択する。候補がないと何もしない。 # PreviousCandidatePointer - 前の変換候補を選択する。候補がないと何もしない。 # Purge - 現在選択している変換候補を消去する。 # Abort - 現在の変換を中止し、直前のモードに戻る。 # # TryNextCompletion - 次の補完候補を選択する。候補がない場合モード変更等なく何もしない。 # TryPreviousCompletion- 前の補完候補を選択する。候補がない場合モード変更等なく何もしない。 # # FinishKeyEvent - コマンドで処理がない場合に明示的にCSKKで入力処理を終える。(IME実装に依るが、アプリケーション等にキーを渡さない) # PassthroughKeyEvent - コマンドで処理があっても明示的に入力処理を終えない。(IME実装に依るが、アプリケーション等にキーを渡す。) # InputMode := (Hiragana|Katakana|HankakuKatakana|Zenkaku|Ascii) # CompositionMode := (Direct|PreComposition|PreCompositionOkurigana|CompositionSelection|Abbreviation|Register|Completion) [command] # Hiraganaモード時のコマンド [direct.hiragana] "l" = ["ForceKanaConvert(Hiragana)", "ChangeInputMode(Ascii)", "ClearUnconfirmedInputs"] "L" = ["ForceKanaConvert(Hiragana)", "ChangeInputMode(Zenkaku)", "ClearUnconfirmedInputs"] "C-q" = ["ForceKanaConvert(Hiragana)", "ChangeInputMode(HankakuKatakana)", "ClearUnconfirmedInputs"] "q" = ["ForceKanaConvert(Hiragana)", "ChangeInputMode(Katakana)", "ClearUnconfirmedInputs"] "Q" = ["ChangeCompositionMode(PreComposition)"] "C-j" = ["FinishKeyEvent"] "C-g" = ["Abort"] "C-G" = ["Abort"] "Return" = ["ConfirmDirect"] "C-m" = ["ConfirmDirect"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-H" = ["Delete"] "slash" = ["ChangeCompositionMode(Abbreviation)"] # Katakanaモード時のコマンド [direct.katakana] "l" = ["ForceKanaConvert(Katakana)", "ChangeInputMode(Ascii)", "ClearUnconfirmedInputs"] "L" = ["ForceKanaConvert(Katakana)", "ChangeInputMode(Zenkaku)", "ClearUnconfirmedInputs"] "C-q" = ["ForceKanaConvert(Hiragana)", "ChangeInputMode(HankakuKatakana)", "ClearUnconfirmedInputs"] "q" = ["ForceKanaConvert(Katakana)", "ChangeInputMode(Hiragana)", "ClearUnconfirmedInputs"] "Q" = ["ChangeCompositionMode(PreComposition)"] "C-j" = ["FinishKeyEvent"] "C-g" = ["Abort"] "C-G" = ["Abort"] "Return" = ["ConfirmDirect"] "C-m" = ["ConfirmDirect"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-H" = ["Delete"] "slash" = ["ChangeCompositionMode(Abbreviation)"] # 半角カナ(JIS X 0201 カナ)モード時のコマンド [direct.hankakukatakana] "l" = ["ForceKanaConvert(HankakuKatakana)", "ChangeInputMode(Ascii)", "ClearUnconfirmedInputs"] "L" = ["ForceKanaConvert(HankakuKatakana)", "ChangeInputMode(Zenkaku)", "ClearUnconfirmedInputs"] "C-q" = ["ForceKanaConvert(HankakuKatakana)", "ChangeInputMode(Katakana)", "ClearUnconfirmedInputs"] "q" = ["ForceKanaConvert(HankakuKatakana)", "ChangeInputMode(Hiragana)", "ClearUnconfirmedInputs"] "Q" = ["ChangeCompositionMode(PreComposition)"] "C-j" = ["FinishKeyEvent"] "C-g" = ["Abort"] "C-G" = ["Abort"] "Return" = ["ConfirmDirect"] "C-m" = ["ConfirmDirect"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-H" = ["Delete"] "slash" = ["ChangeCompositionMode(Abbreviation)"] # 全角英数モード時のコマンド [direct.zenkaku] "C-g" = ["Abort"] "C-j" = ["ChangeInputMode(Hiragana)"] "Return" = ["ConfirmDirect"] "C-m" = ["ConfirmDirect"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-H" = ["Delete"] # asciiモードという名称はddskk由来。いわゆるlatinモードでのコマンド [direct.ascii] "C-g" = ["Abort"] "C-j" = ["ChangeInputMode(Hiragana)"] "Return" = ["ConfirmDirect"] "C-m" = ["ConfirmDirect"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-H" = ["Delete"] [pre_composition.hiragana] "space" = ["TryNextCandidate"] "q" = ["ForceKanaConvert(Katakana)", "ConfirmAs(Katakana)", "ChangeCompositionMode(Direct)"] "Q" = ["FinishKeyEvent"] "C-q" = ["ConfirmAs(HankakuKatakana)", "ChangeCompositionMode(Direct)"] "C-g" = ["ClearUnconfirmedInputs", "Abort"] "C-j" = ["ForceKanaConvert(Hiragana)", "ConfirmAs(Hiragana)", "ChangeCompositionMode(Direct)"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "Tab" = ["TryNextCompletion"] [pre_composition.katakana] "space" = ["TryNextCandidate"] "q" = ["ForceKanaConvert(Hiragana)", "ConfirmAs(Hiragana)", "ChangeCompositionMode(Direct)"] "Q" = ["FinishKeyEvent"] "C-q" = ["ConfirmAs(HankakuKatakana)", "ChangeCompositionMode(Direct)"] "C-g" = ["ClearUnconfirmedInputs", "Abort"] "C-j" = ["ForceKanaConvert(Katakana)", "ConfirmAs(Katakana)", "ChangeCompositionMode(Direct)"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "Tab" = ["TryNextCompletion"] [pre_composition.hankakukatakana] "space" = ["TryNextCandidate"] "q" = ["ForceKanaConvert(Hiragana)", "ConfirmAs(Hiragana)", "ChangeCompositionMode(Direct)"] "Q" = ["FinishKeyEvent"] "C-q" = ["ConfirmAs(Katakana)", "ChangeCompositionMode(Direct)"] "C-g" = ["ClearUnconfirmedInputs", "Abort"] "C-j" = ["ForceKanaConvert(HankakuKatakana)", "ConfirmAs(HankakuKatakana)", "ChangeCompositionMode(Direct)"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "Tab" = ["TryNextCompletion"] [pre_compisition_okurigana.hiragana] "space" = ["TryNextCandidate"] "q" = ["ForceKanaConvert(Katakana)", "ConfirmAs(Katakana)", "ChangeCompositionMode(Direct)"] "Q" = ["FinishKeyEvent"] "C-q" = ["ConfirmAs(HankakuKatakana)", "ChangeCompositionMode(Direct)"] "C-g" = ["ClearUnconfirmedInputs", "Abort"] "C-j" = ["ForceKanaConvert(Hiragana)", "ConfirmAs(Hiragana)", "ChangeCompositionMode(Direct)"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] [pre_compisition_okurigana.katakana] "space" = ["TryNextCandidate"] "q" = ["ForceKanaConvert(Hiragana)", "ConfirmAs(Hiragana)", "ChangeCompositionMode(Direct)"] "Q" = ["FinishKeyEvent"] "C-q" = ["ConfirmAs(HankakuKatakana)", "ChangeCompositionMode(Direct)"] "C-g" = ["ClearUnconfirmedInputs", "Abort"] "C-j" = ["ForceKanaConvert(Katakana)", "ConfirmAs(Katakana)", "ChangeCompositionMode(Direct)"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] [pre_compisition_okurigana.hankakukatakana] "space" = ["TryNextCandidate"] "q" = ["ForceKanaConvert(Hiragana)", "ConfirmAs(Hiragana)", "ChangeCompositionMode(Direct)"] "Q" = ["FinishKeyEvent"] "C-q" = ["ConfirmAs(Katakana)", "ChangeCompositionMode(Direct)"] "C-g" = ["ClearUnconfirmedInputs", "Abort"] "C-j" = ["ForceKanaConvert(HankakuKatakana)", "ConfirmAs(HankakuKatakana)", "ChangeCompositionMode(Direct)"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] [abbreviation.hiragana] "space" = ["TryNextCandidate"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-j" = ["ConfirmAs(Ascii)", "ChangeCompositionMode(Direct)"] "C-q" = ["ConfirmAs(Zenkaku)", "ChangeCompositionMode(Direct)"] "Tab" = ["TryNextCompletion"] [abbreviation.katakana] "space" = ["TryNextCandidate"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-j" = ["ConfirmAs(Ascii)", "ChangeCompositionMode(Direct)"] "C-q" = ["ConfirmAs(Zenkaku)", "ChangeCompositionMode(Direct)"] "Tab" = ["TryNextCompletion"] [abbreviation.hankakukatakana] "space" = ["TryNextCandidate"] "BackSpace" = ["Delete"] "C-h" = ["Delete"] "C-j" = ["ConfirmAs(Ascii)", "ChangeCompositionMode(Direct)"] "C-q" = ["ConfirmAs(Zenkaku)", "ChangeCompositionMode(Direct)"] "Tab" = ["TryNextCompletion"] [composition_selection.hiragana] "Return" = ["ConfirmComposition"] "C-j" = ["ConfirmComposition"] "Escape" = ["Abort"] "C-g" = ["Abort"] "X" = ["Purge", "ChangeCompositionMode(Direct)"] "space" = ["TryNextCandidate"] "x" = ["TryPreviousCandidate"] "BackSpace" = ["ConfirmComposition", "Delete"] "C-h" = ["ConfirmComposition", "Delete"] "q" = ["ConfirmComposition", "ChangeInputMode(Katakana)"] "C-q" = ["ConfirmComposition", "ChangeInputMode(HankakuKatakana)"] [composition_selection.katakana] "Return" = ["ConfirmComposition", "ChangeCompositionMode(Direct)"] "C-j" = ["ConfirmComposition", "ChangeCompositionMode(Direct)"] "Escape" = ["Abort"] "C-g" = ["Abort"] "X" = ["Purge", "ChangeCompositionMode(Direct)"] "space" = ["TryNextCandidate"] "x" = ["TryPreviousCandidate"] "BackSpace" = ["ConfirmComposition", "Delete"] "C-h" = ["ConfirmComposition", "Delete"] "q" = ["ConfirmComposition", "ChangeInputMode(Hiragana)"] "C-q" = ["ConfirmComposition", "ChangeInputMode(HankakuKatakana)"] [composition_selection.hankakukatakana] "Return" = ["ConfirmComposition", "ChangeCompositionMode(Direct)"] "C-j" = ["ConfirmComposition", "ChangeCompositionMode(Direct)"] "Escape" = ["Abort"] "C-g" = ["Abort"] "X" = ["Purge", "ChangeCompositionMode(Direct)"] "space" = ["TryNextCandidate"] "x" = ["TryPreviousCandidate"] "BackSpace" = ["ConfirmComposition", "Delete"] "C-h" = ["ConfirmComposition", "Delete"] "q" = ["ConfirmComposition", "ChangeInputMode(Hiragana)"] "C-q" = ["ConfirmComposition", "ChangeInputMode(Katakana)"] [completion.hiragana] "Return" = ["ConfirmComposition"] "C-j" = ["ConfirmComposition"] "Tab" = ["NextCandidatePointer"] "period" = ["NextCandidatePointer"] "(shift Tab)" = ["PreviousCandidatePointer"] "comma" = ["PreviousCandidatePointer"] "C-g" = ["Abort"] "Escape" = ["Abort"] "BackSpace" = ["ConfirmComposition", "Delete"] [completion.katakana] "Return" = ["ConfirmComposition"] "C-j" = ["ConfirmComposition"] "Tab" = ["NextCandidatePointer"] "period" = ["NextCandidatePointer"] "(shift Tab)" = ["PreviousCandidatePointer"] "comma" = ["PreviousCandidatePointer"] "C-g" = ["Abort"] "Escape" = ["Abort"] "BackSpace" = ["ConfirmComposition", "Delete"] [completion.hankakukatakana] "Return" = ["ConfirmComposition"] "C-j" = ["ConfirmComposition"] "Tab" = ["NextCandidatePointer"] "period" = ["NextCandidatePointer"] "(shift Tab)" = ["PreviousCandidatePointer"] "comma" = ["PreviousCandidatePointer"] "C-g" = ["Abort"] "Escape" = ["Abort"] "BackSpace" = ["ConfirmComposition", "Delete"]