[PR #6309] Add support for win32-input-mode to conhost, ConPTY, Terminal #26645

Open
opened 2026-01-31 09:17:19 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/6309

State: closed
Merged: Yes


Adds support for win32-input-mode to conhost, conpty, and the Windows
Terminal.

  • The shared terminalInput class supports sending these sequences when
    a VT client application requests this mode.
  • ConPTY supports synthesizing INPUT_RECORDs from the input sent to it
    from a terminal
  • ConPTY requests this mode immediately on startup (if started with a
    new flag, PSEUDOCONSOLE_WIN32_INPUT_MODE)
  • The Terminal now supports sending this input as well, when conpty asks
    for it.

Also adds a new ConPTY flag PSEUDOCONSOLE_WIN32_INPUT_MODE which
requests this functionality from conpty, and the Terminal requests this
by default.

Also adds experimental.input.forceVT as a global setting to let a user
opt-out of this behavior, if they don't want it / this ends up breaking
horribly.

Validation Steps Performed

References #4999: The megathread
References #5887: The spec

Closes #879
Closes #2865
Closes #530
Closes #3079
Closes #1119
Closes #1694
Closes #3608
Closes #4334
Closes #4446

**Original Pull Request:** https://github.com/microsoft/terminal/pull/6309 **State:** closed **Merged:** Yes --- Adds support for `win32-input-mode` to conhost, conpty, and the Windows Terminal. * The shared `terminalInput` class supports sending these sequences when a VT client application requests this mode. * ConPTY supports synthesizing `INPUT_RECORD`s from the input sent to it from a terminal * ConPTY requests this mode immediately on startup (if started with a new flag, `PSEUDOCONSOLE_WIN32_INPUT_MODE`) * The Terminal now supports sending this input as well, when conpty asks for it. Also adds a new ConPTY flag `PSEUDOCONSOLE_WIN32_INPUT_MODE` which requests this functionality from conpty, and the Terminal requests this by default. Also adds `experimental.input.forceVT` as a global setting to let a user opt-out of this behavior, if they don't want it / this ends up breaking horribly. ## Validation Steps Performed * played with this mode in vtpipeterm * played with this mode in Terminal * checked a bunch of scenarios, as outlined in a [comment] on #4999 [comment]: https://github.com/microsoft/terminal/issues/4999#issuecomment-628718631 References #4999: The megathread References #5887: The spec Closes #879 Closes #2865 Closes #530 Closes #3079 Closes #1119 Closes #1694 Closes #3608 Closes #4334 Closes #4446
claunia added the pull-request label 2026-01-31 09:17:19 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#26645