[PR #11264] [MERGED] [FHL] Make VTApiRoutines, which does VT translation for output #28478

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/11264
Author: @miniksa
Created: 9/17/2021
Status: Merged
Merged: 3/31/2022
Merged by: @undefined

Base: mainHead: dev/miniksa/vtapi


📝 Commits (10+)

  • eebed6a Make a VTApiRoutines servicer that does minimal translations instead of environmental simulation for some output methods.
  • 759a919 the rest of the stuff I did on Tuesday.
  • 9325839 cooked read in cmd works omg.
  • 3314e4a remove one bit of badness
  • 3372462 fix a thing where we would see the cursor on offs because it did not get completely flushed
  • 9277ff3 Define feature for this. Start piping through setting.
  • 7549a04 change activation mechanism for passthrough
  • 9bc88d3 argument/option for passthrough mode
  • f048c7d some pre-review cleanup
  • 8981585 have a few commas

📊 Changes

64 files changed (+1826 additions, -131 deletions)

View changed files

📝 .github/actions/spelling/allow/apis.txt (+2 -1)
📝 .github/actions/spelling/expect/expect.txt (+2 -0)
📝 .vscode/settings.json (+5 -1)
📝 doc/cascadia/profiles.schema.json (+4 -0)
📝 src/cascadia/PublicTerminalCore/HwndTerminal.cpp (+2 -2)
📝 src/cascadia/PublicTerminalCore/HwndTerminal.hpp (+1 -1)
📝 src/cascadia/TerminalApp/TerminalPage.cpp (+25 -14)
📝 src/cascadia/TerminalConnection/ConptyConnection.cpp (+15 -1)
📝 src/cascadia/TerminalConnection/ConptyConnection.h (+1 -0)
📝 src/cascadia/TerminalControl/ControlCore.cpp (+1 -1)
📝 src/cascadia/TerminalCore/ICoreSettings.idl (+1 -0)
📝 src/cascadia/TerminalCore/ITerminalApi.hpp (+2 -0)
📝 src/cascadia/TerminalCore/Terminal.cpp (+1 -1)
📝 src/cascadia/TerminalCore/Terminal.hpp (+5 -4)
📝 src/cascadia/TerminalCore/TerminalApi.cpp (+10 -0)
📝 src/cascadia/TerminalCore/TerminalDispatch.cpp (+64 -0)
📝 src/cascadia/TerminalCore/TerminalDispatch.hpp (+6 -0)
📝 src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp (+5 -0)
📝 src/cascadia/TerminalSettingsEditor/ProfileViewModel.h (+2 -0)
📝 src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl (+2 -0)

...and 44 more files

📄 Description

Make a VTApiRoutines servicer that does minimal translations instead of
environmental simulation for some output methods. Remaining methods are
backed on the existing console host infrastructure (primarily input
related methods).

PR Checklist

  • I work here
  • It's Fix-Hack-Learn quality so it's behind a feature gate so we
    can keep refining it. But it's a start!

To turn this on, you will have to be in the Dev or Preview rings
(feature staged). Then add experimental.connection.passthroughMode: true to a profile and on the next launch, the flags will propagate down
through the ConptyConnection into the underlying Openconsole.exe
startup and tell it to use the passthrough mode instead of the full
simulation mode.

Validation Steps Performed

  • Played with it manually in CMD.exe, it seems to work mostly.
  • Played with it manually in Ubuntu WSL, it seems to work.
  • Played with it manually in Powershell and it's mostly sad. It'll get
    there.

Starts #1173


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/11264 **Author:** [@miniksa](https://github.com/miniksa) **Created:** 9/17/2021 **Status:** ✅ Merged **Merged:** 3/31/2022 **Merged by:** [@undefined](undefined) **Base:** `main` ← **Head:** `dev/miniksa/vtapi` --- ### 📝 Commits (10+) - [`eebed6a`](https://github.com/microsoft/terminal/commit/eebed6a91476c82de78df46a7786a9857e185144) Make a VTApiRoutines servicer that does minimal translations instead of environmental simulation for some output methods. - [`759a919`](https://github.com/microsoft/terminal/commit/759a919be50128661168ee006da2e585f03725c4) the rest of the stuff I did on Tuesday. - [`9325839`](https://github.com/microsoft/terminal/commit/932583910e7e99d944e1ad1c7bdc4b0b82428c92) cooked read in cmd works omg. - [`3314e4a`](https://github.com/microsoft/terminal/commit/3314e4a43e91367d59f89fdbc7bd53c65aecbd7a) remove one bit of badness - [`3372462`](https://github.com/microsoft/terminal/commit/33724628bd9d3625a81892b8cb2497f5070d964b) fix a thing where we would see the cursor on offs because it did not get completely flushed - [`9277ff3`](https://github.com/microsoft/terminal/commit/9277ff3b754591829b912c927e492aa080bbff5d) Define feature for this. Start piping through setting. - [`7549a04`](https://github.com/microsoft/terminal/commit/7549a040a1a0d1eef81d4e956fd6fadbc49bbcf6) change activation mechanism for passthrough - [`9bc88d3`](https://github.com/microsoft/terminal/commit/9bc88d308821ccce06d92212eb6fd5016864c6a0) argument/option for passthrough mode - [`f048c7d`](https://github.com/microsoft/terminal/commit/f048c7d7ca57046c592303dc0553f7e368d28989) some pre-review cleanup - [`8981585`](https://github.com/microsoft/terminal/commit/8981585aeed791698b7c5a67c3ba471624f690d9) have a few commas ### 📊 Changes **64 files changed** (+1826 additions, -131 deletions) <details> <summary>View changed files</summary> 📝 `.github/actions/spelling/allow/apis.txt` (+2 -1) 📝 `.github/actions/spelling/expect/expect.txt` (+2 -0) 📝 `.vscode/settings.json` (+5 -1) 📝 `doc/cascadia/profiles.schema.json` (+4 -0) 📝 `src/cascadia/PublicTerminalCore/HwndTerminal.cpp` (+2 -2) 📝 `src/cascadia/PublicTerminalCore/HwndTerminal.hpp` (+1 -1) 📝 `src/cascadia/TerminalApp/TerminalPage.cpp` (+25 -14) 📝 `src/cascadia/TerminalConnection/ConptyConnection.cpp` (+15 -1) 📝 `src/cascadia/TerminalConnection/ConptyConnection.h` (+1 -0) 📝 `src/cascadia/TerminalControl/ControlCore.cpp` (+1 -1) 📝 `src/cascadia/TerminalCore/ICoreSettings.idl` (+1 -0) 📝 `src/cascadia/TerminalCore/ITerminalApi.hpp` (+2 -0) 📝 `src/cascadia/TerminalCore/Terminal.cpp` (+1 -1) 📝 `src/cascadia/TerminalCore/Terminal.hpp` (+5 -4) 📝 `src/cascadia/TerminalCore/TerminalApi.cpp` (+10 -0) 📝 `src/cascadia/TerminalCore/TerminalDispatch.cpp` (+64 -0) 📝 `src/cascadia/TerminalCore/TerminalDispatch.hpp` (+6 -0) 📝 `src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp` (+5 -0) 📝 `src/cascadia/TerminalSettingsEditor/ProfileViewModel.h` (+2 -0) 📝 `src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl` (+2 -0) _...and 44 more files_ </details> ### 📄 Description Make a VTApiRoutines servicer that does minimal translations instead of environmental simulation for some output methods. Remaining methods are backed on the existing console host infrastructure (primarily input related methods). ## PR Checklist * [x] I work here * [x] It's Fix-Hack-Learn quality so it's behind a feature gate so we can keep refining it. But it's a start! To turn this on, you will have to be in the Dev or Preview rings (feature staged). Then add `experimental.connection.passthroughMode: true` to a profile and on the next launch, the flags will propagate down through the `ConptyConnection` into the underlying `Openconsole.exe` startup and tell it to use the passthrough mode instead of the full simulation mode. ## Validation Steps Performed - Played with it manually in CMD.exe, it seems to work mostly. - Played with it manually in Ubuntu WSL, it seems to work. - Played with it manually in Powershell and it's mostly sad. It'll get there. Starts #1173 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:28:46 +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#28478