Spec for Windows Terminal Process Model 2.0 (#7240)

### ⇒ [doc link](https://github.com/microsoft/terminal/blob/dev/migrie/s/5000/doc/specs/%235000%20-%20Process%20Model%202.0/%235000%20-%20Process%20Model%202.0.md) ⇐

## Summary of the Pull Request

This spec is _exceptionally long_, and is currently a work in progress. There are a few more things I'd like to have experimentally verified (though, I'm fairly certain they _will_ work, with the right combination of flags and such). Additionally, a few sections have remaining TODOs before the spec is finished. However, this spec is already fairly long, and I want to give people as much time to get their eyes on it as possible.

### Abstract

> 
> The Windows Terminal currently exists as a single process per window, with one
> connection per terminal pane (which could be an additional conpty process and
> associated client processes). This model has proven effective for the simple
> windowing we've done so far. However, in order to support scenarios like
> dragging tabs into other windows, or having one top-level window with different
> elevation levels within it, this single process model will not be sufficient.
> 
> This spec outlines changes to the Terminal process model in order to enable the
> following scenarios:
> 
> * Tab Tearoff/ Reattach ([#1256])
> * Run `wt` in the current window ([#4472])
> * Single Instance Mode ([#2227])
> * Quake Mode ([#653])
> * Mixed Elevation ([#1032] & [#632])


## PR Checklist
* [x] Specs: #5000
* [x] References: #1256, #4472, #2227, #653, #1032, #632, #492
* [x] I work here

## Detailed Description of the Pull Request / Additional comments
_\*<sup>\*</sup><sub>\*</sub> read the spec  <sub>\*</sub><sup>\*</sup>\*_
This commit is contained in:
Mike Griese 2021-02-05 06:19:32 -06:00 committed by GitHub
parent 9cb8db8e9a
commit 4cce933f89
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 1189 additions and 2 deletions

View file

@ -26,6 +26,7 @@ IAsync
IBind
IBox
IClass
IConnection
IComparable
ICustom
IDialog
@ -44,6 +45,7 @@ llu
localtime
lround
LSHIFT
MULTIPLEUSE
msappx
MULTIPLEUSE
NCHITTEST
@ -59,8 +61,8 @@ otms
OUTLINETEXTMETRICW
overridable
PAGESCROLL
REGCLS
pmr
REGCLS
RETURNCMD
REGCLS
rfind

View file

@ -505,6 +505,7 @@ DCOLORVALUE
dcommon
DCompile
dcompiler
DComposition
dde
DDESHARE
DDevice
@ -677,6 +678,7 @@ ECH
echokey
ecount
ECpp
Edgium
EDITKEYS
EDITTEXT
EDITUPDATE
@ -1408,6 +1410,7 @@ mingw
minimizeall
minkernel
MINMAXINFO
mintty
minwin
minwindef
Mip
@ -1602,6 +1605,7 @@ numlock
numpad
NUMSCROLL
nupkg
NVDA
NVIDIA
NVR
Nx
@ -2044,6 +2048,7 @@ runuia
runut
rvalue
RVERTICAL
rxvt
RWIN
safearray
SAFECAST
@ -2446,6 +2451,7 @@ typename
typeof
typeparam
TYUI
UAC
uap
uapadmin
UAX

View file

@ -4,7 +4,7 @@ https://www\.itscj\.ipsj\.or\.jp/iso-ir/[-0-9]+\.pdf
https://www\.vt100\.net/docs/[-a-zA-Z0-9#_\/.]*
https://www.w3.org/[-a-zA-Z0-9?&=\/_#]*
https://(?:(?:www\.|)youtube\.com|youtu.be)/[-a-zA-Z0-9?&=]*
https://[a-z-]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
https://(?:[a-z-]+\.|)github(?:usercontent|)\.com/[-a-zA-Z0-9?%&=_\/.]*
https://www.xfree86.org/[-a-zA-Z0-9?&=\/_#]*
[Pp]ublicKeyToken="?[0-9a-fA-F]{16}"?
(?:[{"]|UniqueIdentifier>)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}(?:[}"]|</UniqueIdentifier)

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB