microsoft / microsoft/terminal

Expose Windows IME status to terminal applications

Open
#20,653 4 comments 0 reactions 0 assignees View on GitHub
Issue-Feature Needs-Tag-Fix Needs-Triage
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.