入力モードの仕組み

awase は「IME の状態」と「エンジンの状態」の組み合わせで動作を切り替えます。

IME エンジン 動作
ON ON 親指シフト(NICOLA)入力
ON OFF 通常 IME 入力(ローマ字変換)
OFF どちらでも 英字直接入力(エンジンは自動停止)

IME が OFF のときはエンジンが自動的に停止するため、パスワード欄などでも誤動作しません。

NICOLA 標準配列図

同梱のデフォルト配列(JIS版 layout/nicola.yab / US版 layout/nicola_us.yab)が、どのキーでどの文字を出力するかの一覧です。通常面は単独打鍵、他の3面は無変換・変換キー(親指シフト)または小指シフトキーとの同時打鍵で入力します。

ローマ字かな リテラル(記号・数字) 特殊キー 未割当

配列は自由にカスタマイズできます。設定画面の「配列編集」タブで直接編集するか、独自の .yab ファイルを作成して切り替えられます(レイアウトの切り替え参照)。

キーボードショートカット

デフォルト設定でのショートカット一覧です。config.toml で変更できます。

カテゴリ キー 動作
IME Ctrl + 変換 IME を ON にする。既に ON の場合はひらがな・ローマ字・CapsLock OFF へリセットする
IME Ctrl + 無変換 IME を OFF にする(冪等 — 既に OFF なら何も起きない)
IME Shift 単独タップ 「IME-ON 半角英数」持続トグル。他のキーを介さず押して離すと切替、もう一度タップで解除(現状 MS-IME のみ対応。GJI は今後対応予定)
エンジン Ctrl + Shift + 変換 NICOLA エンジンを ON にする(親指シフト入力を有効化)
エンジン Ctrl + Shift + 無変換 NICOLA エンジンを OFF にする(ローマ字入力に切り替え)
エンジン Ctrl + Shift + F12 エンジンの ON/OFF をトグル(グローバルホットキー、config.toml で変更可)
システム Ctrl + Shift + F11 現在のウィンドウのフォーカス判定を強制上書き(テキスト入力 ↔ バイパスを切替)
親指シフト 変換 右親指シフトキー(エンジン ON 中、他のキーと同時押しで NICOLA 判定)
親指シフト 無変換 左親指シフトキー(エンジン ON 中、他のキーと同時押しで NICOLA 判定)
IME 半角/全角 IME の ON/OFF をトグル(Windows 標準の動作)
緊急 無変換 × 3(400ms 以内) NICOLA エンジンを強制 OFF(Ctrl スタック等でショートカットが効かないとき)
緊急 Ctrl+無変換Ctrl+変換Ctrl+無変換(2秒以内) パニックリセット — 標準状態(IME ON・ひらがな・エンジン ON)へ強制復帰

冪等な IME 制御について: Ctrl+変換 は「IME を ON にする」という操作です。従来のトグル方式と異なり、現在の状態がずれていても必ず意図した結果になります。 エンジン ON/OFF とは独立して動作します。IME が既に ON の場合は、入力途中の状態(カタカナ・半角英数など)をひらがな・ローマ字・CapsLock OFF へ揃えて再確定させます。

「IME-ON 半角英数」トグルについて:Shift 単独タップは、IME を開いたまま NICOLA エンジンだけを一時的に停止し、英数字を直接入力できるようにします(IME 自体は閉じないため、パスワード欄などとは異なる仕組みです)。もう一度左 Shift を単独タップすると通常のかな入力へ戻ります。右 Shift の単独タップやフォーカス変更でも自動的に解除されます。

トレイアイコン操作

タスクバー右端のシステムトレイに awase アイコンが常駐します。

右クリックメニュー

  • 配列選択layouts_dir 内の .yab ファイルを一覧表示。選択するとレイアウトが即座に切り替わります
  • 設定... — 設定画面を開きます
  • 学習キャッシュをクリア — IME の学習データキャッシュを削除します
  • プロセスを再起動 — 入力がおかしくなったときにプロセスを完全再起動します(詳細は「緊急操作・リセット」参照)
  • 自動起動 — ログオン時の自動起動を有効/無効にします(チェックで有効)
  • 管理者として再起動 — UAC で昇格して awase を再起動します。管理者権限を要求するアプリ(一部のゲームなど)でも動作するようになります
  • 有効/無効切替 — エンジンの ON/OFF をトグルします(Ctrl+Shift+F12 と同じ操作)
  • 終了 — awase を終了します

アイコンの見方

  • アイコンが通常表示のとき — エンジン ON(親指シフト入力が有効)
  • アイコンがグレーアウトしているとき — エンジン OFF(通常入力)

設定画面(awase-settings)

トレイアイコン右クリック → 「設定...」で開きます。変更後は「適用」ボタンで保存・即時反映されます。

基本設定タブ

項目説明
キーボードモデルJIS(日本語配列)または US(英語配列)を選択
同時打鍵閾値同時打鍵と判定する時間幅(ms)。NICOLA 規格標準は 100ms
確定モード文字の確定タイミング。下表参照
投機出力待機two_phase / adaptive_timing 使用時の投機出力までの待機時間(ms)
出力モードUnicode(推奨)・PerKey・Batched。通常は Unicode のまま
フックモードRelay(推奨・安定)または Filter(低遅延)
自動起動Windows ログオン時に自動起動するかどうか
レイアウト使用する .yab 配列ファイルの選択。「再スキャン」で一覧を更新

確定モードの選択肢

モード動作向いている人
waitタイムアウトまで保留してから確定。最も正確ゆっくり正確に打ちたい方
speculative即時出力し、同時打鍵なら差し替え。最速だが一瞬ちらつく速度最優先の方
two_phase短い待機後に投機出力。wait と speculative の中間バランス重視の方
adaptive_timing連続打鍵中は wait、途切れたら投機。速度に自動適応打鍵速度にムラがある方
ngram_predictiven-gram 統計で投機/待機を動的判断。文脈を使って精度向上最も賢い判定を使いたい方(推奨)

キー設定タブ

項目説明
左親指キー左親指シフトキーに使うキー(デフォルト: VK_NONCONVERT = 無変換)
右親指キー右親指シフトキーに使うキー(デフォルト: VK_CONVERT = 変換)
エンジン ON キーNICOLA エンジンを ON にするキー。複数登録可
エンジン OFF キーNICOLA エンジンを OFF にするキー。複数登録可
IME ON キーIME を ON にするキー(冪等)。複数登録可
IME OFF キーIME を OFF にするキー(冪等)。複数登録可
エンジン切替ホットキーグローバルホットキーでエンジン ON/OFF をトグル

IME 検出タブ

awase が IME 状態の変化を把握するためのキー設定です。通常はデフォルトのままで問題ありません。

項目説明
トグルキーOS が IME ON/OFF をトグルするキー(例: 半角/全角)
ON キーOS が IME を ON にするキー
OFF キーOS が IME を OFF にするキー

「デフォルトに戻す」ボタンで標準設定に戻せます。

アプリ別設定タブ

プロセス名とウィンドウクラス名の組み合わせで、アプリごとに動作を上書きします。

設定種別説明用途例
テキスト入力として強制自動判定に関わらず常に NICOLA 入力を有効にする誤ってバイパスされるアプリ
バイパスとして強制常にエンジンを無効にするスタートメニュー、パスワードマネージャー
VK 出力モードとして強制ローマ字を VK キーストロークで送信するChrome・Edge・Electron ベースのアプリ
TSF 出力モードとして強制TSF ネイティブモードで送信するWindows Terminal など TSF 直結アプリ

プロセス名・クラス名は awase.exe --debug で起動したときのログで確認できます。

詳細設定タブ

項目説明
n-gram ファイルn-gram 統計データのパス(.csv.gz または .toml)。ngram_predictive モードで使用
n-gram 調整幅n-gram 予測で同時打鍵閾値を調整する幅(ms)
n-gram 最小/最大閾値n-gram 予測で調整される閾値の下限・上限(ms)
フォーカスデバウンスAlt+Tab 連続操作時の誤検知を防ぐ待機時間(ms)
IME ポーリング間隔マウスで言語バーを操作したときなどの変化を検出する周期(ms)
レイアウトディレクトリ.yab ファイルを置くフォルダのパス

config.toml の主要設定

awase の動作は config.toml で細かく調整できます。

ショートカットのカスタマイズ

以下がデフォルト値です。config.toml[keys] セクションを追加して上書きできます。

[keys] # NICOLA エンジン ON(親指シフト入力を有効化) engine_on = ["Ctrl+Shift+変換"] # NICOLA エンジン OFF(通常入力に切り替え) engine_off = ["Ctrl+Shift+無変換"] # IME ON(ひらがな入力モードへ) ime_on = ["Ctrl+変換"] # IME OFF(直接入力モードへ) ime_off = ["Ctrl+無変換"] # 緊急用: 無変換を単独で 400ms 以内に 3 連打するとエンジン OFF になる # Ctrl がスタックしてショートカットが効かなくなったときの最終手段。 # 空文字列 "" または削除で無効化できる。 engine_off_solo_triple = "VK_NONCONVERT" # エンジン ON 時に送る IME モードキー(全角ひらがなモードへ切替) engine_on_ime_key = "VK_DBE_DBCSCHAR" # エンジン OFF 時に送る IME モードキー(半角英数モードへ切替) engine_off_ime_key = "VK_DBE_SBCSCHAR"

複数キーを割り当てるには配列に追加してください: ["Ctrl+Shift+変換", "Ctrl+F8"]

グローバルホットキー(アプリのフォーカスに関係なく機能)は [general]engine_toggle_hotkey = "Ctrl+Shift+F12" で設定します。

同時打鍵の判定

[general] # 同時打鍵の判定閾値(ミリ秒)。NICOLA 規格標準は 100ms。 simultaneous_threshold_ms = 100 # 確定モードの選択 # ngram_predictive - n-gram 予測で投機/待機を動的切替(推奨) # wait - タイムアウトまで保留(最も正確) # speculative - 即時出力(最速) # two_phase - 短い待機→投機出力→差し替え # adaptive_timing - 打鍵速度に応じて閾値を自動調整 confirm_mode = "ngram_predictive"

親指キーのカスタマイズ

[general] # 左親指キー(VK コード名) left_thumb_key = "VK_NONCONVERT" # 無変換キー # 右親指キー(VK コード名) right_thumb_key = "VK_CONVERT" # 変換キー

キーボードモデルと出力方式

[general] # キーボードモデル(JIS キーボードを使っている場合はデフォルトで OK) # keyboard_model = "jis" # JIS キーボード(デフォルト) # keyboard_model = "us" # US キーボード # ローマ字出力の送信方式(通常は変更不要) # unicode - ひらがなを直接送信(IME 不要、推奨) # per_key - 1文字ずつ SendInput(他フックとの互換性重視) # batched - 全文字を1回の SendInput output_mode = "unicode"

新しい Microsoft IME(Windows 10 20H1 以降)では unicode モードを推奨します。per_key / batched では入力が正しく処理されない場合があります。

自動起動の設定

[general] # Windows ログオン時に自動起動する # "enabled" - 自動起動を有効にする # "disabled" - 自動起動を無効にする # "ask" - 初回起動時にダイアログで確認する(デフォルト) auto_start = "enabled"

自動起動は HKCU\Software\Microsoft\Windows\CurrentVersion\Run レジストリに登録されます。スタートアップフォルダは使用しません。

特定ウィンドウの動作オーバーライド

[focus_overrides] # 特定アプリでテキスト入力を強制する force_text = [ { process = "myapp.exe", class = "MyWindowClass" }, ] # 特定アプリでエンジンを完全スキップする force_bypass = [ { process = "SearchHost.exe", class = "SearchHost" }, ]

スタートメニューや検索バーで誤動作する場合は force_bypass に追加してください。

アプリ別の出力モード上書き

[focus_overrides] # VK キーストロークで送信する(Chrome / Edge / VS Code 等 Electron ベースのアプリ) force_vk = [ { process = "chrome.exe", class = "Chrome_RenderWidgetHostHWND" }, { process = "code.exe", class = "Chrome_RenderWidgetHostHWND" }, ] # TSF ネイティブモードで送信する(Windows Terminal 等) force_tsf = [ { process = "WindowsTerminal.exe", class = "CASCADIA_HOSTING_WINDOW_CLASS" }, ]

IME 検出キーの手動設定

通常は自動検出で十分ですが、特殊なキーボードや IME を使う場合に手動設定します。

[ime_sync] # IME ON/OFF をトグルするキー(例: 半角/全角) # toggle = ["VK_KANJI"] # IME を直接 ON にするキー # on = ["VK_DBE_HIRAGANA"] # IME を直接 OFF にするキー # off = ["VK_DBE_SBCSCHAR"]

緊急操作・リセット

入力がおかしくなったときや、エンジンを強制的に止めたいときの操作です。

緊急リセット(推奨 — まずここから試す)

修飾キーがスタックした・IME が混乱した・保留中の文字が残っているなど、入力全体がおかしくなったときに使います。

方法 1 — トレイアイコン(マウスが使えるとき・より確実)

タスクバーの awase アイコンを右クリック →「プロセスを再起動
awase プロセスを完全再起動します。スタックした状態を確実にクリアできます。

方法 2 — キーボードショートカット(パニックリセット)

Ctrl+無変換Ctrl+変換Ctrl+無変換2秒以内 に素早く入力する

(IME-OFF → IME-ON → IME-OFF のシーケンス。同じキーの連打では発動しません)

方法 2 の効果:

  • Shift・Ctrl・Alt・Win の押しっぱなし状態を強制解除
  • IME の未確定文字列をキャンセル
  • IME 状態を OFF → ON(ひらがな入力)で再初期化
  • エンジンの保留状態をフラッシュ(未確定の同時打鍵を破棄、エンジン ON 状態を復元)
  • awase 内部の状態を全リセット

成功するとトレイバルーン通知「状態をリセットしました」が表示されます。

エンジン強制 OFF — 無変換キー3連打

Ctrl キーがスタックしているなど、通常のショートカットも効かない状態で NICOLA エンジンを強制的に止めたいときの最終手段です。 デフォルトで有効(無変換キーに割り当て済み)です。

[keys] # 単独で400ms以内に3回連打するとエンジン OFF になるキー(デフォルト: 無変換) engine_off_solo_triple = "VK_NONCONVERT" # 無効にするには空文字列を指定 # engine_off_solo_triple = ""

操作: 無変換 を他のキーと同時押しせず、単独で 400ms 以内に3回 連打する

※ 通常の親指シフト入力中は「親指キー単独タイムアウト」としてカウントされるため、 タイピングの流れで誤発動しにくい設計になっています。

レイアウト(.yab)の切り替え

親指シフト配列は .yab ファイルで定義されています。複数の配列を使い分けることができます。

切り替え方法

  • トレイアイコン右クリック → 配列選択 — 最も手軽な方法。即座に切り替わります
  • 設定画面「基本設定」タブ — レイアウトのドロップダウンで選択 → 「適用」
  • config.toml を編集default_layout = "nicola.yab" でデフォルトを変更

カスタム配列を追加する

  1. 新しい .yab ファイルを config.tomllayouts_dir に指定したフォルダに配置します(デフォルトは config/
  2. 設定画面「基本設定」タブの「再スキャン」ボタンを押します
  3. ドロップダウンに新しい配列が表示されるので選択して「適用」します

.yab 形式の詳細は GitHub の README を参照してください。

ログ・デバッグ

動作がおかしいときはログを確認してください。

ログファイルの場所

  • 通常起動時:awase.exe と同じフォルダの awase.log(起動のたびに追記されます)
  • Scoop でインストールした場合:%USERPROFILE%\scoop\apps\awase\current\awase.log

デバッグモードで起動する

詳細なログが必要な場合はコマンドプロンプトからデバッグモードで起動します。

awase.exe --debug

または環境変数 RUST_LOG=debug を設定してから起動しても同じです。

アンインストール

MSI インストーラー版

Windows の「設定 → アプリ」または「コントロールパネル → プログラムのアンインストール」から awase を選択してアンインストールします。

Scoop 版

scoop uninstall awase

ZIP 版(ポータブル)

  1. トレイアイコンを右クリック → 「終了」で awase を終了します
  2. 自動起動を設定している場合はタスクスケジューラから「awase」タスクを削除します
  3. 解凍したフォルダごと削除します

初期設定の手順

初めて使うときの推奨手順です。

1. 起動確認

  • awase を起動するとシステムトレイにアイコンが表示されます
  • テキストエディタなどを開き、メモ帳などに入力テストを行います
  • Ctrl+変換 で IME ON → 親指シフト入力が開始します

2. 確定モードの調整

  • まず confirm_mode = "ngram_predictive"(推奨)で試す
  • 誤変換が多い場合は "wait" に変更(正確だがやや遅め)
  • 高速タイピングで違和感がある場合は "adaptive_timing" を試す

3. Chrome / Edge での入力がうまくいかない場合

  • Google 日本語入力または Microsoft IME を使用していることを確認します(awase は両 IME に対応しています)
  • Ctrl+変換 で IME を ON にしてから入力を始めます
  • 最初の1文字だけ英字になる場合は awase が自動的に修正します(TSF cold-start 対応)

「あ」が一瞬チラッと見えることがあります(捨て打ち機能)

Chrome や Windows Terminal では、IME ON 直後の最初の入力時に「あ」が瞬間的に表示されてすぐ消えることがあります。 これは 捨て打ち機能 が正常に動作しているサインです。

Chrome などの TSF アプリでは IME の入力受付が完了しているかどうかを外部から確認する公式な手段がありません。 そこで awase は「A キーを打って BS で消す」という操作を画面描画前に一瞬行い、 IME が「あ」に変換できたかどうかを観測することで入力受付の完了を確認しています。 この捨て打ちで得た情報をもとに、本来打ちたい文字を正確なタイミングで送ります。 通常は画面に何も表示されませんが、タイミングによって「あ」がほんの一瞬見えることがあります。

5. エンジンがおかしくなったときのリセット

  • Ctrl+Shift+変換 でエンジン ON を明示的に指定
  • Ctrl+変換 で IME ON を明示的に指定
  • それでも解決しない場合はトレイアイコンを右クリック → 「有効/無効切替」でトグルする