microsoft / microsoft/terminal
Expose Windows IME status to terminal applications
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
### Description of the new feature
I use Windows Terminal with WSL2, and sometimes terminal applications need to know the current Windows IME status.
I had this problem with Neovim before, so I made a small CLI tool called winime_en:
https://github.com/hdformat/winime_en
It switches the Windows IME to English, and I use it from Neovim running inside WSL. I made this because Korean input is inconvenient when entering Normal mode.
Recently I had a similar problem with Herdr. Herdr has a prefix mode like tmux, and the prefix commands need English input. But an application running inside WSL does not have a simple way to know the current Windows IME status.
I think it would be useful if Windows Terminal exposes the IME status to programs running inside the terminal.
For example:
wt.exe --ime-status --format json
Example output:
{
"language": "ko-KR",
"mode": "hangul"
}
or:
{
"language": "ko-KR",
"mode": "ascii"
}
The command and JSON format are only examples. I don't know what is the best interface for Windows Terminal.
This could be useful for Neovim, tmux, Herdr, and other terminal programs, especially when they are running inside WSL.
I found #19491, which suggests showing the IME status by changing the cursor color. I think exposing the same information to terminal applications could also be useful.
### Proposed technical implementation details
I am not sure about the implementation.
Maybe Windows Terminal can expose the current IME status through a CLI command, environment/session interface, or some other machine-readable interface that can also be accessed from WSL.
Contributor guide
Research direction
Start by reviewing the existing winime_en tool and issue #19491 to understand the requested IME information and related terminal behavior. Define a machine-readable interface that applications running inside WSL can access, then verify that terminal applications can retrieve the current language and input mode reliably.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100