-
Notifications
You must be signed in to change notification settings - Fork 0
Home English
Carry your input mode across windows, and bind programs to a fixed input language
繁體中文 · English · 简体中文 · 日本語 · 한국어
Windows utility that controls how input methods behave across programs: it carries the input mode you last chose (native or alphanumeric) to the next window, and can bind a program to a fixed input language — including programs whose executable cannot be read, such as anti-cheat protected fullscreen games.
Recommended: Microsoft Store — signed, auto-updates.
You can also get it from Releases:
| File | What it is |
|---|---|
...-setup.exe |
Standard installer (supports per-user or all-users installation) |
...-x64.zip |
Portable; unzip and run |
Tick Start automatically at logon during setup. It then runs in the notification area at the bottom right — Windows 11 hides new icons behind the ⌃ chevron next to the clock. It works as soon as it is installed; no configuration needed.
This note only applies to the installer or zip downloaded from GitHub Releases — the Microsoft Store build above is signed and does not hit any of this.
The GitHub build currently has no code-signing certificate, so you may see:
- The blue Windows protected your PC screen → More info → Run anyway. This is a reputation warning, not a virus detection.
- Antivirus deleting the installer — the known detection is
Behavior:Win32/Persistence.A!ml, on the logon task created by Start automatically at logon. Use the portablezipinstead, or leave that option unticked. A false-positive report has been submitted to Microsoft, but nobody can guarantee what an antivirus will decide.The source, build workflow and release artifacts are all public and built by GitHub Actions from the tagged commit, with build provenance you can check via
gh attestation verify. If this bothers you, the Microsoft Store build above sidesteps it entirely.
Windows keeps IME state per thread. Move to another window and the conversion mode reverts to the IME's default — for a Chinese keyboard, that means Chinese. So you press Shift for alphanumeric, switch window, and you are typing Chinese again.
Settings → Time & language → Typing → Advanced keyboard settings → Let me use a different input method for each app window does not fix this. That setting governs which input method is active, not whether that method is in native or alphanumeric mode — turn it off and switching windows still reverts to Chinese.
No Windows setting covers the conversion mode. That is this utility's first purpose: carrying the native/alphanumeric mode you chose to the next window.
Its second purpose is pinning a specific program to an input language, including the kind no setting can reach — a fullscreen game reading raw input takes the keyboard directly and does not participate in IME state management at all, so it can only be handled from outside. Helldivers 2 is one.
Everything below is on the tray icon's right-click menu:

Keep mode across windows (on by default) — type Chinese in one window, switch to another, and Chinese comes back. Press Shift to go alphanumeric and that is what the next window gets. It follows your most recent deliberate change. Untick it in the tray menu if you do not want it.
App language bindings — pin a program to a language: a terminal always English, Word always Chinese. Right-click → App language bindings..., then Browse for the program, type just its file name to match it wherever it is installed, press Use last app, or Use window class for a program whose file cannot be read.

For a program whose path carries a version or whose window class has a generated suffix, type a wildcard instead: glob:*\game.exe matches the full path and class-glob:name_* the window class, using * (any run, path separators included) and ? (one character). Exact rules win over wildcards — that is the default order; you can also drag the list to customise it, and the first match wins. Each rule can apply once (set on the switch, then left alone), and an opt-in default (off by default) covers anything unmatched.
Caret input indicator (off by default) — Show input indicator at the cursor in the tray menu puts a small indicator next to the text caret showing what you will actually type: 中 / あ / 한 for a language's native mode, A when the IME is in alphanumeric mode, or a language code such as EN. The choice is remembered. The indicator follows the caret and stays out of its own windows; in a field whose reported caret position is unreliable — a browser address bar, because of a Chromium limitation — it is drawn above the line so it does not cover the text.
The input indicator does not appear in these locations: the taskbar and Start menu search box, Windows Terminal, and File Explorer. These are system-level surfaces on which Windows permits only code-signed applications to display content, and this utility is not currently signed. It works in ordinary applications — browsers, text editors including Notepad, Office, chat clients, and games.
- Controlling the Chinese IME in Helldivers 2 — anti-cheat games cannot be identified by their program file and need binding by window class instead.
Hover the tray icon rather than clicking it — clicking makes the program you wanted to check lose focus, so you see the wrong thing. Four lines appear: the current program, the language bound to it, the language actually in use, and whether the last switch worked. The bound and actual languages matching means it is working.

A fifth line, Normal privileges - elevated programs are invisible, means the utility is not running as administrator. Double-click for a fuller status window, including which autostart mechanism is configured.
Why is input mode not kept in modern windows like Windows 11 Notepad? — Their real edit field sits in a focused child window protected by Windows UIPI.
- Fix (Recommended): Click "Enable WinUI/Admin support..." in the tray menu (accepting one UAC prompt to start a background helper service). The helper bridges UIPI barriers to hold the input mode seamlessly. Supported in both Microsoft Store and desktop builds!
- Desktop build direct elevation: Or click "Restart as administrator" in the tray menu.
The current program shows something starting with class: — normal, not a fault. Some programs, mostly anti-cheat games, do not let others read their file location, so the utility identifies them by window class instead. That class:... string is what a binding rule needs.
Should I run it as administrator? Only to control programs that themselves run as administrator, as most anti-cheat games do — Windows does not let a lower-privileged program read a higher-privileged one's windows, not even the window class. Autostart always runs unelevated: a program that silently starts elevated at every logon is the persistence pattern antivirus flags, so the utility deliberately does not. To control an elevated program, use Restart as administrator in the tray menu to elevate on the spot — once per session, before you need it, accepting one UAC prompt. For ordinary use (mode persistence, binding non-elevated programs) no elevation is needed and ...-setup.exe is enough.
Advanced: you really want elevated autostart. The utility deliberately doesn't build this in (reason above), but you can set it up yourself with a Task Scheduler "at logon, highest privileges" task. From an administrator command prompt, run (replace the path with your actual install location; an all-users install defaults to C:\Program Files\ImeModePersistence):
schtasks /Create /TN "ImeModePersistence-Elevated" /TR "\"C:\Program Files\ImeModePersistence\ImeModePersistence.exe\"" /SC ONLOGON /RL HIGHEST /F
/RL HIGHEST starts it with highest privileges at logon with no UAC prompt. After creating it, turn off the app's own Start automatically at logon in the tray menu, or the unelevated HKCU Run entry will launch a second, unelevated copy at logon. To remove the task: schtasks /Delete /TN "ImeModePersistence-Elevated" /F.
A binding pins a language, not one specific IME — Chinese, English and Japanese can each be bound, but if one language has several IMEs installed the first one is used.
Some programs change it straight back — the utility retries a few times, then backs off before trying again rather than fighting the program: a few seconds at first, longer the more the program insists, up to half a minute. Switching to another window and back retries immediately.
Could anti-cheat flag it? It does not modify the game, read its memory, inject anything, or synthesise keystrokes. Switching works by posting the window Windows' standard input-language-change notification — the same one the system delivers when you press Win+Space, which the window is free to ignore — and falling back to Windows' own input settings when that does not take. The full list is on the Helldivers 2 page.
The interface follows Windows' display language — English, Traditional Chinese, Simplified Chinese, Japanese or Korean. The installer is English only. In dark mode the App-language-bindings dialog is fully themed; the transient status and error boxes keep a light body with a dark title bar.
ImeModePersistence · 下載 / Releases · 問題回報 / Issues · README · 設計筆記 / Design notes · MIT
本 Wiki 是操作說明;實作理由與被否決的做法記在設計筆記。發佈的檔案未經簽章。 This wiki is the how-to; implementation reasoning and rejected approaches live in the design notes. Released files are unsigned.
繁體中文
English
简体中文
日本語
한국어