Windows Terminal,一个微软推出的全新、流行、功能强大的命令行终端工具
微软全新的终端 Windows Terminal,一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多 Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU 运算的文本渲染等等。 DHowett released this
This is the latest preview release of Windows Terminal!
Features
- Jumplist support has finally landed! (#7515)
- Applications can now generate hyperlinks that you'll actually be able to click on! (#7251) (#7420) (#7523) (#7608)
- This is NOT the same thing as automatic hyperlink detection! We're still working on that one, and didn't want to ship it until it was darn good and ready.
Changes
- Windows Terminal 1.4 ships with an updated version of Cascadia Code with support for the Salishan languages of the Pacific Northwest
- Cascadia Code 2009.21 is not currently available outside of Terminal because of some cross-platform font rendering troubles
- We made some behind-the-scenes changes to settings handling in support of our eventual Settings UI (#7283) (#7349) (#7457) (#7576) (#7537)
- The Azure Cloud Shell profile no longer defaults to having acrylic enabled (thanks @KnapSac!) (#7573)
- We now have support for fancy blinking text (
SGR 5
) for those of you who are just super excited about BBSes (thanks @j4james!) (#7490)
VT Support
- We now support
DECSCUSR
with the parameter value0
(\e[0 q
) to restore your cursor to the profile's default (thanks @skyline75489!) (#7379) C1
control characters, which aren't really UTF-8-clean, are now better-supported (see below for attribution)- Terminal will now ignore
SOS
,APC
andPM
sequences that it does not understand (which is all of them) (thanks @skyline75489!) (#7340)
Bug Fixes
Console Basics
- We fixed that weird issue where Vim would occasionally start in
REPLACE
mode by moving allDSR
responses to the tail of the input queue instead of the head (#7583) - Calling
FillConsoleOutputCharacterA
with an invalid character in codepage 50220 should now return the right error status more often than not (#7391)
Accessibility
- Degenerate ranges should stay degenerate, even when they're moved (thanks @codeofdusk!) (#7530)
Reliability
- Selecting an out-of-bounds text range through Narrator or NVDA should no longer take Terminal to a nice quiet farm upstate (thanks @codeofdusk!) (#7504)
- An occasional deadlock on shutdown has been unlocked, and shutdown should proceed as planned (#7575)
DHowett released this
Features
- We're trying out a new tab switching experience! (#6732), followups: (#7263) (#7280) (#7321)
- The
nextTab
andprevTab
bindings will now display an ephemeral UI that can be navigated with the mouse or keyboard - If you would like to fall back to the original tab-switching UI (or lack thereof), set new
useTabSwitcher
(global, boolean, defaulttrue
) tofalse
.- We'd love feedback on why the new tab switcher didn't work for you!
- The
- Building on the infrastructure from the tab switcher, we're also flighting support for a new tab search/jump experience
- Bind the
"tabSearch"
action ({"command": "tabSearch", "keys": ...}
) to open up a filterable list of open tabs!
- Bind the
- The "command palette" introduced in 1.2 is now bound to Ctrl+Shift+P by default (#7384)
- It has gained support for nested/repeated commands (#7299) (#6856) that can iterate over profiles and color schemes (#7329)
- We've shipped a couple convenience commands, like "set color scheme to ..." and "open split pane with ... in direction ..." (#7348)
- By starting your command with
>
, you can enter "commandline" mode and run anywt
startup script, like> new-tab ; split-pane
(#7293) - It now has support for command icons! (#7368)
- We've added support for a new action,
wt
, that lets you run any WT commandline in your current session (#6537)- Example:
{ "command": { "action": "wt", "commandline": "split-pane -p Ubuntu; new-tab; split-pane" }, "keys": ... }
- Example:
- We've added a new action,
sendInput
, that can emit text directly into the terminal (thanks @lhecker!) (#7249)- Example: you can bind a so that it sends the VT sequence for "up arrow"
{ "command": { "action": "sendInput", "input": "\u001B[A" }, "keys": "a" }
- You can now zoom one pane to temporarily take up the entire terminal with the
togglePaneZoom
action! (#6989) (#7273) - You can now override the active color of the terminal using the
setColorScheme
action (#6993) - A profile can now specify its default
tabColor
(profile setting, hex color, default unset) (#7162) - Two actions have been added,
closeOtherTabs
andcloseTabsAfter
, to facilitate better tab management (#7176) - The
copyFormatting
option and thecopy
.copyFormatting
action argument have been taught finer-grained control
over the copied formats (#6004)- You can now specify an array of formats,
[ "rtf", "html" ]
, a string"html"
,"all"
, or a boolean to indicate
which formats to copy.true
maps toall
andfalse
maps tonone
.
- You can now specify an array of formats,
Changes
- Windows Terminal 1.3 ships with Cascadia Code v2008.25
- The
bindings
keyword in settings has been replaced withactions
in preparation for improvements to the action
binding experience (#7332) - All processes spawned under Terminal will be given a fresh new environment block (#7243)
-
⚠ WARNING This may break some workflows, as environment variables from without Terminal will no longer be
inherited. If you have a broken workflow, please reach out.
-
- Terminal is now a little more strict about parsing your settings (#6590), but it will now actually tell you why
something couldn't be understood (#7241) - Key bindings can now use the
app
ormenu
key (thanks @MichelleTanPY!) (#7328)
UI
- Clicking in the scrollbar track will now jump up/down by a whole screenful (#7385)
- The color picker is now more visually consistent, having learned to round its buttons (thanks @MichelleTanPY!) (#7305)
Terminal Basics
- We now have very basic support for DCS sequences (thanks @skyline75489!) (#6328)
- Even if we can't support sixels, the least we could do is not dump their raw data to the screen!
- If you really wanted their raw data dumped to the screen, why??
- Even if we can't support sixels, the least we could do is not dump their raw data to the screen!
- Underlines are now rendered consistent with the font's metrics (thanks @j4james!) (#7148)
- We now have support for
SGR 21
, doubly-underlined (thanks @j4james!) (#7223) - We now have support for
SGR 9
, crossed out (thanks @j4james!) (#7143) - Our underline/strikethrough renderer has been refactored to be easier to work with (thanks @j4james!) (#7107)
- Our VT parser has been refactored to be easier to work with (thanks @j4james!) (#7304)
- Scroll locking should now work more reliably when the scrollback is at maximum length (#7247)
Bug Fixes
- The command palette now has a gutter so that it stops overlapping the scrollbar (thanks @jtippet!) (#6965)
- F7 will no longer not work after our "null scancode" change (whoops!) (#7298)
altGrAliasing: false
will no longer actually break AltGr (thanks @lhecker!) (#7400)- Profiles whose indices are greater than 9 will now properly display their shortcuts in the menu (thanks
@MichelleTanPY!) (#7344)
Performance
DHowett released this
This release brings all of the preview changes in Windows Terminal 1.1 to the stable channel.
A preinstallation kit is available for system integrators and OEMs interested in prepackaging Windows Terminal with a Windows image. More information is available in the DISM documentation on preinstallation. Users who do not intend to preinstall Windows Terminal should continue using the msixbundle distribution.
Please see the following release notes for additional details:
We've also backported the following bug fixes from Windows Terminal Preview v1.2.2022.0:
- Scrolling inside a mouse-enabled application should now be 98% less wild when you use a precision touchpad (#6843)
- Terminal should no longer crash when you read its contents with Narrator's "scan mode" (#6447)
- You may now double-click a tab to rename it (thanks @greg904!) (#6628)
- The buttons in the tab color picker now have tooltips (thanks @garciaolais!) (#6498)
- A hard reset will now fully reset the terminal instead of failing out halfway through (thanks @j4james!) (#6763)
- The shapes and colors of the new tab button have been updated to better match the rest of the OS (thanks @jtippet!) (#6766) (#6812)
- Terminal now ships with high contrast icons (thanks @jtippet!) (#6915)
- We've improved the performance of rendering by reducing unnecessary copies (thanks C++!) (#6839)
- The Solarized color schemes have been updated to fix "bright black" and "normal black" having been swapped (thanks @M-Pixel!) (#6985).
- PowerShell's PSReadline prefers bright black to render command parameters, which rendered (!) them totally unreadable on Solarized Dark.
- This version of Windows Terminal ships with Cascadia Code v2007.15 (#6958)
DHowett released this
This is a small servicing update to the Windows Terminal Preview release train.
Windows Terminal Preview now ships with Cascadia Code 2007.01. This version offers a variable weight axis ranging from ExtraLight (200) to Bold (700) as well as some metrics tweaks and ligature fixes.
Bug Fixes
- Compact tab sizing should now work more reliably (and not only apply to tabs that were open when you first switched into compact mode. oops!) (#6670)
- We've reverted a glyph shaping-related performance improvement that caused a bunch of applications to look downright strange (#6665)
- Terminal will no longer rely on
PATH
lookup forcmd
andpowershell
. They ship as part of Windows, so we should know exactly where they are. (#6684)
DHowett released this
Preview has finally diverged from Stable! Rejoice!
Features
- Terminal can now pass raw modifier keys and other raw Windows input through to the connected application (#6309), bug fixes (#6431) (#6442) (#6461) (#6516) (#6517)
- This enables a number of PSReadline key bindings and the modifier-hold behavior of FAR Manager, ZTreeWin, and tens of other applications that were using traditional Win32 input records.
- COMPATIBILITY We have specified and implemented a new optional terminal input mode (specification)
- Terminal emulators on Windows (VSCode, PuTTY, ...) can implement the feature as specified and produce full-fidelity Win32 input messages
- Terminals that do not do so will not be impacted and should continue to function as normal.
- You can now right-click on a directory and choose "Open Windows Terminal here"! (#6100)
- However, due to a bug that's fixed in insider builds you can't do that from the "background" of that directory... (#6415)
- We're hoping that once this bug fix is tested, we can get it out in earlier versions of Windows.
- However, due to a bug that's fixed in insider builds you can't do that from the "background" of that directory... (#6415)
- We've added a context menu that will appear when you right-click a tab!
- You can now open a split pane from the menu by holding down Alt when you click it (#5928)
Settings
- You can now specify the default profile by name (!) (#5706)
- With this change, you no longer need to visit the GUID recycler to make a new profile. GUIDs are (pretty much) an implementation detail.
- Terminal will no longer complain if you leave trailing commas in your "JSON" settings (#6312)
- What even is JSON anymore?
- Yes, we perhaps chose a poor configuration format given that we expected users to have to hand-edit it.
openSettings
learned a new argument,target
(per-binding, enum"defaultsFile"
,"settingsFile"
) (#6299)target
defaults tosettingsFile
- We've added a new default binding (finally) to open the defaults: Ctrl+Alt+,
- You can now opt in to automatic startup with the
startOnUserLogin
setting (global, boolean, defaultfalse
) (thanks @jelster!) (#4908)- The first time you toggle this to
true
, Terminal will ask again for your permission to become a startup task - If you're one of the 0% of people running terminal unpackaged, this won't work for you.
- The first time you toggle this to
launchMode
now supports"fullscreen"
(#6060)- We've added support for a new
tabWidthMode
,"compact"
(#5787)- When compact sizing is enabled, only the focused tab will display its title.
- AltGr/Ctrl+Alt aliasing can now be toggled with the
altGrAliasing
setting (profile, boolean, defaulttrue
) (thanks @lhecker!) (#6212)- We learned that while some people want Ctrl+Alt to act like AltGr, others don't. If you're one of the ones that doesn't: rejoice!
- We now support
fontWeight
(profile, integer or enum, default"medium"
/400
) (#6048)
Command-line invocation, wt.exe
- Terminal can now be launched (through the
wt
execution alias)--fullscreen
or--maximized
(#6139) new-tab
andsplit-pane
now support--title
(which predictably overrides the application title) (#6296)wt
learned the--version
argument (#5501)
Terminal Basics
- conhost (and therefore, to an extent, Terminal) is now a more faithful VT52 emulator (thanks @j4james!) (#4789)
- We've added support for
DECANM
and a great number of VT52 input encodings.
- We've added support for
- conhost now supports 31 VT character sets (up from 2) and the
DOCS
sequence to switch to ISO-2022 mode (thanks @j4james!) (#4496)- There was also a persistent bug where tmux would occasionally
Shift In
/Shift Out
for what appeared to be no reason, corrupting the display- Better support for character sets = better support for
SI
/SO
= no more tmux graphical corruption!
- Better support for character sets = better support for
- There was also a persistent bug where tmux would occasionally
- You can now drag and drop snippets of text onto the Terminal and it'll do roughly what you'd expect (#5865)
Changes
UI
- Right-clicking the negative space between the tabs and the caption buttons will now open the system menu (#6443)
Windows Terminal (Preview)
is nowWindows Terminal Preview
¯\_(ツ)_/¯ (#6418)
Internal/VT/Conhost
- We've changed the internal representation for 256-color text (thanks @j4james!) (#5834)
- COMPATIBILITY It is no longer possible to combine VT and the legacy console API to "brighten" text.
- If you're going to brighten dark colors, do it with
FOREGROUND_INTENSITY
or go full-VT.
- Color conversions (24-bit/256->16) are now more efficient but do not take into account the active palette (thanks @j4james!) (#6358)
- It turns out that color conversion was utterly broken for
ReadConsoleOutputAttribute
and nobody ever noticed, but that's also fixed now too. I expect that of the 0 people who noticed it was broken, 100% of them will rejoice that it's been fixed.
- It turns out that color conversion was utterly broken for
- The dispatching of SGR sequences has been improved (thanks @j4james!) (#5758)
- Internal work is underway to support a "command palette" (#6351)
Bug Fixes
- The cursor will no longer obscure text, unless that text is the same color as the cursor (#6337)
- Known issue: underlines are now drawn on top of the cursor. Follow #6499 for updates.
- Text copied from the File Explorer's "Copy Address" option will now be pasteable (thanks @aldahick!) (#6146)
- Win32-OpenSSH 7.7 is here to stay, so we decided to fix the issue that allowed it to break mouse input (#6485)
- All tabs will now be created with a title so they stop looking so empty and vengeful (thanks @greg904!) (#6433)
- The keen-eyed among you may have noticed that the 6x6x6 xterm color cube was totally horked. Thanks to @j4james, this egregious sin has been corrected (#5999)
- Maximized terminal windows will finally put their tab strips right at the top of the screen. Unrelatedly, Paul Fitts called to let us know about this one weird law (#5881)
- The maximize/restore button now more accurately tracks the state of the window (#5988)
- Some of you thought it would be a good idea to close a tab while dragging it around. I couldn't figure out why you wanted to do that, but it will at least now not do something strange... (#5883)
- Every time the window was resized, we'd lose track of another GDI handle. Now, we don't (#6229)
- Our caption buttons now fade like everyone else's when you hover over them (thanks @AnuthaDev!) (#6303)
Performance
I'm going to let these changelog entries speak for themselves, as they've done the problem better justice than I could:
- (@skyline75489) "Skip glyph shaping analysis when the entire text is simple" (#6206)
- (@greg904) "Add fast path to til::bitmap::translate using bitshifts" (#6493) (#6501)
- (@greg904) "Reduce latency with DXGI 1.3 GetFrameLatencyWaitableObject" (#6435)
- (@greg904) "Throttle scrollbar updates in TermControl to ~one per 8ms" (#4608)
- "Improve perf by avoiding vector reallocation in renderer clusters and VT output graphics options" (#6420)
Bug Fixes in conhost
A number of bugs were fixed in the traditional Windows Console Host--you won't see them in Terminal, but they'll be coming soon to a Windows Insider Build near you.
- Cursor visibility will be restored when you're done with your IME (thanks @j4james!) (#6207)
- The IME will no longer draw lines (underlines, overlines, leftlines, etc.) incorrectly (#6223)
- If you launch conhost through a shortcut without an icon, we'll now go digging to find one for you (thanks @malxau!) (#6277)
Changes
- Windows Terminal now ships with Cascadia Code 2005.15.
- All emoji are now sized as recommended by Unicode 13.0. You will see some emoji that are smaller than you want them to be. That's just a fact of life. (#5934)
- Documentation for Windows Terminal has moved to docs.microsoft.com!
- Existing user documentation in this repository will be moving to a nice farm upstate in short order.
It will not escape your notice that there are two packages in this release:
WindowsTerminal
is the stable build of Terminal.WindowsTerminalPreview
is the preview version, which can be installed side-by-side with the stable version.
DHowett-MSFT released this
Changes
- Some of you reported that text would literally melt, so we added two new rendering options to help congeal your terminal experience (#5853)
- You can use the following (global!) settings to control various aspects of our rendering engine:
experimental.rendering.software
(boolean): when your graphics drivers won't stay in their lane, you can opt in for software rendering.experimental.rendering.forceFullPaint
(boolean): you can turn off the differential drawing optimization that we added--at the cost of speed, you can have full determinism.
- You can use the following (global!) settings to control various aspects of our rendering engine:
- We're now shipping the latest version of Cascadia Code (and Cascadia Mono), 2004.30 (#5867)
Bug Fixes
Terminal Competence
git log
(and other paged applications) should now copy with their lines wrapped (#5771) (#5870)- We should no longer leave old search result highlights laying around for you to step on like a small plastic block toy in the dark (#5798)
CSI 2 J
(the non-destructive "clear screen") will now correctly push the screen into the scrollback (#5683)
Rendering
- Box and line drawing glyphs now appear at the right sizes (and actually connect with each other) (#5743)
- This works in almost all fonts, but ones that do not actually have glyphs for that range will still have some unusual visual artifacting.
- Hundreds of emoji should now appear to be the correct width (#5795)
- A special exception was made for characters in WGL4, the old codepage 437 glyphs everybody knows and loves and also hates. They're still narrow.
Reliability
- Dragging a selection while resizing the terminal is not a reasonable thing to do, but it was even less reasonable for us to crash when you did so. We now don't. (#5855)
- We'll no longer crash when the clipboard gives us the classic "high five! too slow!" (#5856)
- Terminal is now more robust in the face of you trying to close the same tab multiple times (#5742)
- Closing a tab in fullscreen mode will no longer cause terminal to stop responding (#5809)
DHowett-MSFT released this
Changes
This is the first release of Terminal whose name doesn't have "(Preview)" in it!
That doesn't necessarily mean we're done, but it does mean that this is the first release candidate.
Rendering (Performance!)
- Terminal no longer renders the entire screen when something changes (#5345) (#5185) (#5092)
- This saves 30-40% of the time it took to print out your huge synthetic test files from #1064 and it makes
cmatrix
run even faster.
- This saves 30-40% of the time it took to print out your huge synthetic test files from #1064 and it makes
- RTL text should now be slightly more reliable (possibly readable! not necessarily "working" to any great degree) (thanks @schorrm!) (#5734)
Accessibility
- Narrator and NVDA should once again be able to read out search results (#5478)
Input & Interaction
- We've reworked how we handle titlebar dragging to not require us to cut a giant hole in the window (thanks @greg904!) (#5485)
Miscellaneous
- Terminal now ships with the CRT embedded, so it can be deployed in places where the Store doesn't exist (#5661)
- The terminal now has a minimum width (#5599)
- If that width is too big for you, I'd love to learn why you want our beautiful child to be so tiny.
- You can now click "Third-Party Notices" in our About dialog to see which OSS we're using (#5508)
cls
(cmd) andClear-Host
(powershell) will now properly clear Terminal's scrollback (#5627)- This required some ingenuity. These two applications "clear" by printing a bunch of spaces down on top of the screen or "scrolling" the buffer to an absurd location.
- The pseudoconsole host now detects these requests, only when they come from CMD or PowerShell, and translates them into the intended modern format of clear.
- New tab/min/max/close buttons now have tooltips (thanks @Chips1234!) (#5484)
Bug Fixes
- We fixed the bug where terminal wouldn't always scroll down to the bottom (and pretend it hadn't seen any lines below it) (#5630)
- Pasting HTML-formatted buffer contents into Outlook Web/Gmail no longer includes a stray "WINDOWS TERMINAL !!!" (#5595)
- When you request
cleartype
antialiasing over translucency, your text will now remain visible (#5277)- This comes at a performance cost.
cleartype
AA costs more when we have to compose it.
- This comes at a performance cost.
- For those of you who like to use Ctrl+Alt as AltGr, that works again (thanks @lhecker!) (#5552)
- The emoji picker should be better-aligned with your text (#5609)
VT & Translation
- Lines that begin with blocks of color no longer sometimes have their colors stripped (#5550)
Performance
- We now spend even less time constructing attribute runs and text render clusters (thanks @skyline75489!) (#5584) (#5644) (#5645)
Reliability
- Terminal would, for some people, always crash on exit. An exit is an exit, but a crash is also a crash, and that made our reliability numbers stink. That's fixed. (#5629)
- The backing console should no longer crash when you resize it when CMD is running (#5620)
- A selection crash has been fixed (#5551)
- Some accessibility scenarios involving the alternate buffer no longer cause crashes (#5399)
DHowett-MSFT released this
This is the first servicing release in the 0.11 line.
Bug Fixes
- When your settings need migrating (which they almost certainly will if you're coming from 0.10), we'll give you a more informative error message (#5597)
- The default font, which was once
Cascadia Code
, is nowCascadia Mono
for those of you for whom default-on ligatures were the end of the world (#5505) - We re-fixed the fixed crash you'd run into dragging tabs around as an Administrator. It turns out that's the one thing admins aren't allowed to do. (#5542)
- PowerShell can now read Ctrl+C when you set
IncludeKeyUp
(#5431) - Terminal will now respect Ctrl+C even if the application that launched it doesn't (#5472) (thanks @eryksun!)
- Control Flow Guard is now enabled for all Terminal components (#5453)
- The Tango Light/Dark color schemes have an improved contrast ratio (#5598)
- We've made various improvements to the schema (#5304) (#5549)
DHowett-MSFT released this
This is the last major update before 1.0! It's all servicing releases from here on out. There have been some breaking changes in settings. See below.
Features
- This is the first version of Windows Terminal that has support for non-English UI languages.
- We're not totally done with localization, so please bear with us.
- If you see any egregious translation issues, file a bug!
Changes
Accessibility
- Screen readers should now be able to read wide glyphs (#4946)
- Screen readers should now be able to read block selections (#4991)
- The "text cursor indicator" accessibility feature now follows the cursor (#4826)
- While we were doing this, we realized we were sending thousands of cursor events to UIA. Now we're not. (#5196)
Azure Cloud Shell
- The Azure Cloud Shell connection is now more robust in the face of errors and expired tokens (#5356)
- When there's an error, we'll actually tell you what it is instead of blaming your ISP
- Newly-added tenants will display their default domains instead of their GUIDs, as that's a lot more readable
- When your token has expired, we'll just make you log in again (instead of blaming your ISP because we thought there was an error)
Settings
- BREAKING CHANGE We've deleted a lot of legacy settings handling (#5190)
- Please see our blog post and our most recent status update for more information.
- If you had settings hanging out in the
globals
dictionary, you'll want to move them out.- Failure to do so will cause us to ignore your default profile, launch mode, etc., etc.
profiles.json
has been renamed tosettings.json
. This should be transparent to you as we'll rename it on first launch (#5199)- As a side effect, we'll finally stop resurrecting old pre-version-0.3 roaming profiles.
- If you don't specify a
splitPane
split
mode, it'll default toautomatic
(#5194) copy
's original and poorly-understoodtrimWhitespace
argument is now calledsingleLine
to indicate that it will, in fact, copy text as a single line (#5216)requestedTheme
has been renamed totheme
(#5265)- The default font for any profiles that don't specify a font is now Cascadia Code (#5121)
- FOR NEW USERS
- The default
settings.json
now contains a whole bunch of usability improvements (#5217), including:- Ctrl+C and Ctrl+V bound to
copy
andpaste
by default - Ctrl+Shift+F bound to
find
(as an example of how to write key bindings) - Alt+Shift+D bound to "open duplicate split of current profile" (as an example of how key bindings can have arguments)
- comments everywhere
- Ctrl+C and Ctrl+V bound to
- Your settings file will now indicate the version of Terminal that originally generated it (#5232)
- (If you want these settings for yourself, delete your
settings.json
.)
- The default
defaults.json
now contains more of the actual live defaults for reference (#5231)- Terminal now ships the
Tango Dark
andTango Light
color schemes by default (#5305) - You can now specify a
cursorColor
in a color scheme (instead of in your profiles) (#4651) - It is now possible to turn off HTML/RTF copy with the
copyFormatting
setting (default:true
; new user template default:false
) (#5404)- The "template" default differs from the real default so that existing users don't get this feature taken away from them.
- The default background color for the legacy Windows PowerShell profile is now black (#5432)
- The original blue background is available in the "Campbell PowerShell" scheme.
- This change was made for accessibility reasons.
Input & Interaction
- We've consolidated our input stack so that non-US-104 keyboard layouts work more reliably (#4192)
- Deleting a composition in progress when entering Chinese now no longer breaks input forever (#5109)
- Composing input should now look slightly better when it doesn't fit on the screen (#5005)
- We know this isn't perfect, but it's shippable.
- The composition field should more closely follow the cursor (#5135)
Miscellaneous
- We've revamped selection! No longer will a single click select a single cell -- you must drag to select text. Rejoice! (#5096)
- Touchpad scrolling on Synaptics touchpads should finally, mercifully, work properly (only on the terminal) (#5131)
- The box cursors should now more accurately represent double-width glyphs (#5319)
- Connected applications can now detect which profile spawned them by reading the
WT_PROFILE_ID
environment variable (#4852)
VT
- The console host now responds to
DSR-OS
, the "operating status report" request (#5300)
Debuggability
- We added an optional "debug tap" that you can enable to get a peek behind the curtain; see the pull request for more information (#5127)
Bug Fixes
- We've fixed another couple instances of line wrapping being ignored for resize and copy/paste (#5181) (#5294)
- Command-line arguments should now trigger more reliably in the order you expect them to (#5090)
- Your window borders will now reflect the theme you want, rather than the theme you have (#5105)
- Terminal will now issue the right error message when you, human that you are, use the wrong JSON value type (#4961)
- DOSKEY users, your time has come: the console won't crash when you use
doskey /listsize=0
to delete your CMD history - Search's Case Sensitivity button doesn't look like trash on High Contrast any longer (#5088)
- We'll account for padding when we try to figure out the launch size (#5091)
- VT parameters >32767 will now be clamped to 32767 (#5200)
- We should now restore the window properly when you have an auto-hide taskbar (#5213)
- Legacy applications hiding/showing the cursor should no longer make it revert to Vintage style (#5251)
- Using Shift to extend your selection when
copyOnSelect
is enabled should no longer perform a single-line unwrapping copy (#5346) - Menus and buttons in dialogs should reflect your application theme instead of your system theme (#5224)
- Terminal will look less terrible when you fullscreen it using Alt+Enter (#5046)
- Terminal will try to avoid leaving the cursor visible while it's doing off-screen manipulation
Console Compliance and Correctness
- Ctrl+Alt+Space should now work more "correctly" for VT input applications (#5208)
- The pseudoconsole can now pass application cursor keys (#5383)
- The pseudoconsole will now handle scrolling invalidation more correctly (#5122)
- Your arrow keys should now be more meaningful to legacy applications (like GOW nano and python, which acts strangely like a legacy application) (#5021)
- Tab stops should work more reliably (#5173)
RIS
(hard reset) will now switch out of the alternate buffer (#5248)
Rendering
- Those weird blurry lines between contiguous blocks of background color are now gone, GONE! (#5149)
Performance
- The PTY now wastes way, way less time re-rendering stuff that hasn't changed (#5024)
- We can now detect the width of a codepoint in even less time than before (#3727)
Reliability
- When your graphics card goes away for longer than you'd like, Terminal will now now bite the dust (#5353)
- Since we can't reliably tell when it's back, however, we'll prompt you to let us know. This should be rare.
- We no longer hang when closing a tab on an intransigent application (#5303)
- Terminal doesn't crash if you open the About dialog when you're running it outside of the MSIX package (#5274)
- It'll do one better, and give you a meaningful version number.
- The Terminal no longer crashes when you type before a new tab fully starts up, or use UIA sometimes, or really any number of other things caused by it not actually being ready (#5051) (#5225) (#5286)
WPF Control
Changes to the WPF control do not ship to the Windows Store, but they will appear in a future product.
- The WPF control now supports VT mouse mode (#5375)
- The selection changes noted above also apply to the WPF control
- It now supports double- and triple-click selection for words and lines (#5374)
- On x64, it should no longer crash when you scroll down (#5373)
- Selection will only be dismissed for real input (#5388)
DHowett-MSFT released this
This is the first servicing release in the v0.10 line.
Bug Fixes
- Resizing the terminal when you have an absurd amount of history should no longer result in us consuming all of the RAM in the known universe and subsequently crashing (#4964)
- I do mean "absurd" by 1980s standards: 32767 lines.
- Alt+Numpad input should now work (and not result in hundreds of copies of the number you typed) (#4965)
- (Ctrl+)Alt+[?/] are now encoded properly (#4947)
- Ctrl+1 through Ctrl+9 are now encoded properly (#4938)
- When WSL has fallen on hard times, we won't wait indefinitely for it to respond and hang the Terminal on startup (#4905)
- We'll no longer lose the rightmost character when an application updates the screen in a certain way (#4994)
- When you elevate Terminal, it'll finally tell you who's calling ("Windows Terminal"!) instead of "Unknown Program" (#4995)
- Closing panes in an order that doesn't match the order in which they were created should no longer leave huge holes in the terminal (#4953)
DHowett-MSFT released this
Features
- Mouse Support (for WSL and Windows applications using
ENABLE_VIRTUAL_TERMINAL_INPUT
) - A new profile setting,
antialiasingMode
, lets you configure whether you want text to be blurry or jagged (#4711)- The accepted options are actually not
"blurry"
and"jagged"
, they are"grayscale"
,"cleartype"
and"aliased"
- The default is
"grayscale"
, because grayscale antialiasing is most compatible with alpha blending
- The accepted options are actually not
splitPane
learned a new option,splitMode
, which accepts the value"duplicate"
(#4683)- Setting a key binding to
splitMode: "duplicate"
will make it open a copy of the current profile when you use it
- Setting a key binding to
- Resizing is so much better we decided to call it a feature, even though really it was just a hundred bugs wearing a trenchcoat (#4415) (#4741)
- We'll also try to maintain your position in the scrollback when you resize (#4903)
Changes
Accessibility
- Selection ranges now work properly (#4466)
- "Visible ranges" now work properly (#4495)
- The terminal control now has automation properties (#4732) (#4805)
- Minor refactoring to improve code sharing and performance--it turns out that selection and UIA are very similar (#4560) (#4578) (#4797)
- The cursor can now be hidden by client applications; there will be much rejoicing, but it will be invisible (#4902)
- Since the pseudoconsole hides the cursor when it moves it around, this should also hide some of the console host's weirdness
Azure Cloud Shell
- ACS is now insulated from Terminal's relatively poor VT implementation (all our VT magic is in the console host, which is a problem that nags us daily) (#4652)
- This means that PowerShell works inside ACS
- A bunch of other things work too, like mouse mode and vim and things people actually want to use
- ACS has received an input and UI/UX overhaul (#4756)
- You can now enter tenant numbers greater than 9
- User-enterable text will be highlighted to indicate actionability
- When you type before connecting, you can now see what you've typed and confirm it before hitting Enter
- Things you type after connecting but before you get a shell now get sent across the wire
- ACS now follows your shell choice set on shell.azure.com
Settings
- A keybinding's
keys
can now be a simple string (#4714)- This is intended to reduce confusion regarding key chords, which we do not yet support.
- All existing settings should work as-is.
- We've added a number of warnings for unexpected keybinding situations (#4746)
snapToGridOnResize
is now on by default (#4569)
Input & Interaction
- The touch keyboard will now show up when you focus/click the terminal (#4867)
- Emoji, Kaomoji and symbols should appear during composition (#4688)
- We now allow IME input in Search Box (#4723)
- We've made some changes to TSF input to compensate for Korean input methods not behaving the way we expected (#4796) (#4836)
- Touchpad and touchscreen scrolling will now go at a completely normal speed instead of jumping straight to plaid (#4554)
- If you've set
rowsToScroll
to1
, scrolling will now be weirdly slow for you. Remove that setting; we're considering removing it officially ourselves.
- If you've set
- When
copyOnSelect
is on, clicking, right-clicking, and click-dragging in terminals both focused and unfocused should act more reasonably (#4596) (#4819)
Miscellaneous
- Ctrl+Shift+Wheel will now turn acrylic on or off at 100% (#4853)
- An active selection will be deactivated when the window resizes (#4777)
- When the pseudoconsole sends something it doesn't understand, it'll now do so immediately so the Terminal can handle it (#4896)
- VT sequences that we didn't understand but it took us two reads to figure that out will be flushed as a single unit (#4870)
Bug Fixes
- When your system is in Dark theme (the one true theme), Terminal's window borders will now behave (#4817)
- Characters that would have rendered outside their cells are now being kept in line (aggressively) (#4671)
- When you press F7, it won't be snatched still-beating out of your clutches and taken away to Xaml land (#4807)
- We had slightly regressed writing UTF-8 to the console if you broke up the lead/continuation bytes, and now that's fixed (#4685) (#4798)
- We've fixed the leading two causes of there being a weird gray hole in the titlebar (#4829) (#4845)
- When the terminal is maximized or fullscreen, Windows will no longer think we're a game and suppress the taskbar and notifications (#4857)
initialRows
andinitialColumns
(if that's what we called them) should now be applied more accurately (#4825)- We'll no longer try to cut a hole in a fullscreen window so that you can drag it around (#4904)
- When the cursor's off the screen, but only by a little bit, we won't try to draw it (#4901)
- Terminal will now receive
RIS
(hard reset) from client applications (#4909) - Ctrl+Alt+X and Ctrl+Alt+Z will now be received by client applications correctly; previously they would be received with their Alt status stripped (#4940)
Rendering
- Sometimes we would decide that your font was 0.00001 pixels too wide and try to shrink it; we now don't do something so silly (#4861)
- We fixed a bug where sometimes we would break an emoji (or more importantly, a CJK ideograph) in half and render two copies of it, one big and one small (#4668) (#4731)
- When we have to shrink a glyph to fit it in a cell, we no longer shrink everything else on that line (#4747) (#4781)
- If you like retro scanlines and have a high-DPI display, those scan lines should now be way more visible and not cause visual issues at the right side of the screen (#4716)
- Fonts with glyphs with locale-specific differences should, when fallen back to, render as though they're in your system's locale (#4934)
Performance
- The VT renderer won't generate a bunch of formatted diagnostic strings unless somebody's really listening (#4594)
- We won't try to render more than once per frame (#3511) (#4698)
- The VT renderer will now keep a format buffer high water mark to avoid allocating and freeing memory tens or hundreds of times per frame (#4890)
- When an application changes the color but doesn't print anything using that color, we'll silently ignore it (#4877)
- It turns out cmatrix does this all the time, so now cmatrix runs a lot faster.
Reliability
- TermControl is no longer too strict about some of the pixel math done inside it (#4721)
- You can no longer reorder tabs while elevated, sorry (#4874)
- We are pursuing a fix with the platform
- ConptyConnection's had a use-after-free eliminated (#4871)
- Fixed a rampant crash in
TSFInputControl
when opening new tabs (#4830)
DHowett-MSFT released this
Features
wt
, our app execution alias, now supports commandline arguments! (#4023) (#4388)- The design is heavily inspired by that of the venerable and beloved GNU screen competitor, tmux
- You can
wt new-tab
,wt split-pane
,wt new-tab -p Debian ; split-pane -p PowerShell
until your heart's content. - You can also
wt -- ssh my@bastion.server
! - You can also do a lot more than that.
- If you're the sort of person who likes PowerShell, Terminal will now go to even greater lengths to find it on your system. (#4273)
- If you have so many PowerShells Core that your menu is inundated with them, now might be the time for quiet reflection.
- There's a new global setting,
confirmCloseAllTabs
(boolean, defaulttrue
), that controls whether you get that pesky "Close All Tabs ??!?" dialog (#4101) - You can now drag files onto the terminal and it'll do a close first approximation of what you're expecting! (#4323)
- If the first approximation is too rough, and you wished it was closer, and the way in which you wish it was closer was "if only it worked with WSL", and you file a bug about that: know that it is known.
- Accessibility: You can now navigate word-by-word using narrator and NVDA! (#4018)
Changes
- Shift+Ins and Ctrl+Ins are now bound by default to
paste
andcopy
(#4467) - You can now hold down Shift and click to extend your selection (#4404)
- You can now use the same key names for bindings that you use in VS Code (#4392)
- The pseudoconsole will now process mouse escapes, but it won't do much useful with them yet (#3963)
BEL
,BS
,TAB
andCR
are now dispatched at a different layer in both conhost and terminal; this should cause no ill effect (#4171)- Because of that, conhost's standard streaming text printer no longer needs to know about them! (#4289)
- When you click and drag in an unfocused terminal window or pane, we should do the thing you're hopefully expecting with your selection (#4506)
- Dev builds now have a slightly different icon (#4553)
- VT support changes! We now support...
DECAWM
(if you want to turn on or off auto-wrap mode as a VT application) (#3943)DECSCNM
(if you want the screen to be reversed) (#3817)HPR
andVPR
(cursor movement sequences that ignore margins) (#4297)CNL
andCPL
that are properly constrained by margins (#3628)FF
,VT
,NEL
andIND
(for when you need multiple ways to do a line feed) (#3271)
Bug Fixes
- Terminal should no longer taste clay when you provide a background image or icon path that is totally bogus (#4194)
- A persistent crash on shutdown has been replaced with a different crash on shutdown (#4337)
- Our various popup dialogs now have rounded and colored buttons (#4401)
- The search box now works properly in high contrast (#4406)
- When an application thinks that the cursor is invisible, we'll still properly update its position (#4372)
- A deadlock caused by misunderstanding half of a surrogate pair has been repaired (#4150)
- Terminal should no longer crash if it's launched with Narrator running (#4505)
- When an application printf
CSI 3 J
to clear the scrollback buffer, we will now respect that (#4433)- This doesn't extend to PowerShell or CMD just yet. They clear the screen in a different way.
- The console host will no longer crash when you use
FillOutputCharacterA
with a character that's not representable in your current codepage (#4309) - We've fixed the cause of an issue where the scrollbar would not work after you resized the terminal (#3344)
- Pressing backspace, where it would bring you back up to the previous line, should now put the cursor in the right place (#4403)
- Bounding rectangles for text ranges, as displayed by Narrator and Accessibility Insights, will not be in the right place on non-100%-scale displays (#4497)
- Terminal should no longer crash when closing the window (#4538), and it should crash less when closing a bunch of tabs very quickly (#4559)
DHowett-MSFT released this
This is the first servicing release in the 0.8 line. It contains the following bug fixes.
Bug Fixes
- Terminal should no longer crash when neofetch runs (such as when you launch WSL) (#3628)
- More generically, there has been a number of fixes to the VT cursor movement implementation
- Terminal should no longer hang when surrogate pairs end up at the right side of the buffer (#4150)
- Certain ligature sequences should render better (#4081)
- Background image and icon paths that are unparseable or invalid should no longer make Terminal taste clay (#4194)
- Formatted copy should have fewer stray carriage returns (#4190)
- Ctrl+Backspace should work a lot better (#3935)
- We will no longer run
C:\Program.exe
if an administrator has, for some reason, made that file exist (#4172) - We will now properly terminate shells hosted under the last remaining tab when the application exits (#4337)
- This will also improve a crash on exit seen in recent insider builds.
DHowett-MSFT released this
Features
-
First, the flashiest new feature: a retro-style CRT shader (EXPERIMENTAL FEATURE) (#3468)
- Enable this with
experimental.retroTerminalEffect
(boolean) in your profile. This one will only take effect on the next new tab you open! - Experimental features may be removed at any time. That’s why they’re in the
experimental.
namespace!
- Enable this with
-
There’s an all-new connection state manager! When a process exits, you’ll be confronted with the cold hard reality of the situation. (#3623)
- This behavior is now more configurable than ever. The venerable old
closeOnExit
still works, and still takestrue
/false
. That’s all fine and well. - In addition to
true
/false
, it now takes the string values"graceful"
,"always"
and"never"
.true
has becomegraceful
, andgraceful
means "if it exits without an error."never
andalways
are exactly what they say on the tin.false
now maps tonever
.
- This behavior is now more configurable than ever. The venerable old
-
We’ve shipped support for "default settings!" This lets you specify settings that apply to all profiles. (#3892)
- You can set almost everything in the defaults block, with the notable exception of
guid
. - Check out the sample below for more info.
- You can set almost everything in the defaults block, with the notable exception of
-
You can now search for
your lost keyssome really important output you might have missed! (#3590)- Search is, by default, bound to Ctrl+Shift+F in keeping with our mission to leave all Ctrl+ bindings available to commandline applications.
- It can be rebound with the
find
action. - This is not search's final form! Follow our future plans in #3920. In the long term, it should have blinking lights and moving platforms like any good boss fight.
-
Improvements to pane-splitting and tabbing key bindings:
- There is a new
splitPane
key binding that takes an optionsplit
(string,"horizontal"
,"vertical"
or"auto"
) that seeks to replacesplitVertical
andsplitHorizontal
(#3722)"auto"
splits in half along the larger dimension (#4025)
newTab
andsplit*
can now open specific profiles with option overrides, specified by ... (#3825)profile
(string, guid): a profile name or guidindex
(int): a profile index in the profile listcommandline
(string): a commandline to launch in the new profilestartingDirectory
(string path): the path to a directory in which to launch this profiletabTitle
(string): a custom title for the newly-opened pane or tab- Check out the sample below for more info.
- There is a new
-
You can now configure the number of rows that your scroll wheel (or touchpad) will scroll (#3575)
- Global setting
rowsToScroll
- Valid values are
"system"
(trust Windows) or any integer
- Global setting
-
We've landed the first hint of tab size customization:
tabWidthMode
(#3876)- It accepts two values:
"equal"
(DEFAULT): all tabs are the same size, and they shrink to a certain tolerance before scrolling"titleLength"
: the mode you know and love and also hate
- It accepts two values:
-
You may now opt in to grid-snapping resize with the
snapToGridOnResize
global setting. (#3181) (#4154)
Accessibility Features
- Terminal will now notify the accessibility subsystem, if it is listening, that the selection has changed -- but only when the selection has changed. (#2989)
- You can now navigate the contents of the buffer word-by-word using Narrator (and perhaps other screen readers) (#3659)
Changes
- Dev and Internal builds have shiny new icons (#4006)
- VT Improvements
- LF will no longer scroll outside of DECSTBM margins (#3704)
- Scrolling and erasing will now result in the correct text attributes (#3100)
- The horizontal tab character will no longer wrap off the end of the line (#3197)
- DECALN (
\x1b#8
) is now supported for when you want a terminal full ofE
s (#3968) - We've removed the VT52 movement operations to eventually go and figure out how to integrate them with proper VT modes (#4044)
Bug Fixes
- Punctuation (and other things) entered through non-keyboard input methods will no longer repeat hundreds of times (#4140)
- The tab row will once again get larger when the window does. Rejoice! Be free, tabs! (#4024)
- WSL consumers will now see the
WT_SESSION
environment variable (#4157) docker-desktop
distributions will no longer appear in the profile list (#4156)- If you had a distribution named
docker-desktop{something}
and can't find it:- I'm sorry.
- Why?
- Please file a bug; We'd love to see if there's something better we can do here.
- If you had a distribution named
- Applications that try to set the console buffer size without setting the window size will no longer wipe out your session (???) (#4021)
- The cursor will appear immediately when you focus the terminal (#4032)
- Fullscreen mode now works more reliably (#3721)
- Moving focus between grouped panes should now move in the way you expect (#3958)
- Heaps of crash fixes (#3806) (#3835) (#3936) (#3908)
- When you try to use VT to set color table entry 256 you won't be able to, but Terminal will at least not beef it when you do (#3938)
Pane-splitting and tabbing arguments
{ // Ctrl+Shift+U will launch the Ubuntu profile
"command": {
"action": "newTab",
"profile": "Ubuntu"
},
"keys": [ "ctrl+shift+u" ]
}
Default settings example
Old busted jawn
"profiles": [
{
"commandline": "cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "cmd",
"fontFace": "Cascadia Code PL",
"colorScheme": "Vintage"
},
{
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"name": "PowerShell Core",
"source": "Windows.Terminal.PowershellCore",
"fontFace": "Cascadia Code PL",
"colorScheme": "Vintage"
},
{
"guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
"name": "Debian",
"source": "Windows.Terminal.Wsl",
"fontFace": "Cascadia Code PL",
"colorScheme": "Vintage"
}
],
New hotness
"profiles": {
"defaults": {
"fontFace": "Cascadia Code PL",
"colorScheme": "Vintage"
},
"list": [
{
"commandline": "cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "cmd"
},
{
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"name": "PowerShell Core",
"source": "Windows.Terminal.PowershellCore"
},
{
"guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
"name": "Debian",
"source": "Windows.Terminal.Wsl"
}
]
},
DHowett-MSFT released this
This is the second servicing release in the 0.7 line. It contains the following bug fixes.
Bug Fixes
suppressApplicationTitle
should be way better at suppressing the application title, like it says on the tin (#3837) (#3859)- We've ironed out a bunch of crashes that could happen when tabs were closing, being closed, or out on their lunch breaks. (#3835) (thanks @mkitzan!)
- On the off chance that you wanted to do chunked word selection somewhere where there were a bunch of colors at the top left of the screen, you can now actually do that without Terminal buying the farm. (#3566)
DHowett-MSFT released this
This is the first servicing release in the 0.7 line. It contains the following bug fixes.
Bug Fixes
- Launching (or using, or thinking about) Windows Terminal when your display scale is set to something that isn't a nice round number will no longer crash. (#3784)
- Resizing the window, moving it to another monitor, or snapping it all over the place should crash a whole lot less. (#3832)
copy
andcopyWithoutNewlines
were accidentally swapped when we implemented key binding arguments. They aren't anymore! (#3823)- Our titlebar buttons fit in with the rest of Windows slightly better. (#3777)
DHowett-MSFT released this
Features
- Split Panes! The keybindings for splitting are now included by default. (#3585)
- Our window borders have gotten a significant makeover. THE BORDERS ARE NOW GREAT. THE THICKNESS IS GONE. (#3394)
- Known Issue: If Windows is set to dark theme, and you've got the "use my accent color on title bars" setting turned off, your window borders will be white. Really quite white. Even so, we think this is a significant step up.
- They will no longer hang over onto other monitors when you maximize Terminal.
- They will no longer accidentally blow up to gargantuan sizes like "an inch on each side."
- The resize handles are now, largely, exactly where you'd expect them.
- Huge thanks to @greg904 for working tirelessly to bring this one in!
- All input method editors (Ink, Emoji, Chinese, Japanese and Korean, as well as various others) now appear, appear in the right place, offer input feedback, and actually work. (#1919)
- You can now turn off dynamic titles with
suppressApplicationTitle
; when you do so, a tab will retain thename
ortabTitle
of its originating profile (#2814) - RTF data is now copied to the clipboard (#3535)
- We've finally caught up with the state of the art as it was in 1997, so more applications (usually the older ones) will receive colored content on paste.
- You can now set the background color of a selection using
selectionBackground
(at the profile level) (#3471) - Tabs can now be reordered! (#3478)
- Known Issue: You cannot reorder the tabs when running as admin. We're tracking this in #3581.
- You can try, but it will definitely crash.
- Known Issue: You cannot reorder the tabs when running as admin. We're tracking this in #3581.
- Fullscreen mode now exists and you can enter it using Alt+Enter or F11 (#3408)
- You can rebind fullscreen mode with the
toggleFullscreen
command.
- You can rebind fullscreen mode with the
- Azure Cloud Shell will now be offered on ARM64 devices (#3489)
- Key bindings now support arguments; check the default settings for some examples of how this works (#3391)
- As an example so you don't have to crack the settings open:
"command": "newTabProfile0"
is now better expressed as"command": { "action": "newTab", "index": 0 }
. It looks more verbose, but wow is it ever more flexible.
- As an example so you don't have to crack the settings open:
- A key binding, Ctrl+0, has been added to reset a terminal's font size to "default" (if you've zoomed it) (#3505)
- Rebind this with the command
resetFontSize
- Rebind this with the command
Changes
- The "Active Terminal" and "Focused Control" are now decoupled (#3540)
- We're a lot less likely to lose track of who is the terminal of repute in a multi-pane situation.
- Improvements to the Azure connection:
- All of its messages are now localizable (#3463)
- There's now more padding to the left of the tabs (#3513)
- Clicking the scroll arrow buttons will now move one line at a time (#3397)
- We've revamped how we launch processes to better support fixing #2563 (and others) (#3461)
- Various bits of internal refactoring; break everything out of App except Xaml platform init (#3465)
VT Improvements
- The Save/Restore Cursor sequences
DECSC
andDECRC
are now better-supported (#3160) - ... so is
HPA
(#3368)
Bug Fixes
backgroundImage
now expands environment variables (#3204)- Increase and decrease font size using keybindings works (#3629)
- Paste now replaces
\r\n
line endings with\r
(#3449)- Pasting content is now at least 98% less annoying.
- Alt+Arrow-Keys no longer print extra characters (#3117)
- When you’re scrolled up, pasting now scrolls down to the prompt when using snapOnInput (#3521)
- Terminal should no longer shuffle off this mortal coil when DWM buys the farm, like sometimes when your display topology changes (#3460)
- Quickly opening and closing tabs will crash less (#3256)
- Printing a binary file to your terminal using WSL won’t cause it to misbehave quite as badly (#3380)
- As a question, though, why would you do this? This came to us as a repro that was legitimately phrased as "Just run
cat /bin/*
".???
- As a question, though, why would you do this? This came to us as a repro that was legitimately phrased as "Just run
DHowett-MSFT released this
Features
- There's now a setting for launching the Terminal in a specific initial position on your screen or to have it maximized when it starts up (#2817)
- Set
initialPosition
to a string of the formatx, y
to force the terminal to launch in that position. Like,100, 200
. - The position specified is relative to your primary monitor. Negative values will be to the left of (x) or above (y) the primary monitor.
- Set
launchMode
tomaximized
to request that Terminal start up maximized on the monitor it would have landed on based on itsinitialPosition
- Set
- If you chose a color scheme that didn't exist, you got the wonderful black-on-black color scheme that was excellent for readability. Now instead, you get a warning that the settings couldn't find a valid scheme and we choose the default Campbell scheme instead so you can actually see things. (#3033)
- Terminal now also warns you about closing many tabs when clicking the X button on the window frame, like a browser (#3049)
- There are new keybindings,
increaseFontSize
anddecreaseFontSize
(bound by default to Ctrl+= and Ctrl+-) that help you increase and decrease the font size. (#2700)
Changes
- We've upgraded to the latest version of WinUI, 2.2! There's a bunch of improvements in our tab bar, including... (#3027)
- ... the ability to scroll your tabs with
<
and>
buttons - ... the ability to see all of your tabs
- ... a much more accessible color scheme
- A KNOWN BUG where the tab bar won't expand when you make the window wider; this is being tracked by #3300.
- (workaround: open a new tab)
- ... the ability to scroll your tabs with
- Performance improvements
- We now defer rendering the cursor until we know we're done printing text (#2960)
- We got a little excited about updating the cursor and would spend most of our time drawing the cursor blinking on and off or moving through the buffer, even while we were writing more text. Now, we control ourselves and only draw the cursor when done emitting a segment of text. This improves drawing and buffering performance.
- Things that change color in the middle of a line will now do so less slowly (#2937)
- Runs of simple characters will no longer incur an expensive layout pass (#2959)
- Re-instates text complexity check during text rendering to make simple/basic/ASCII text skip all analysis phases and render faster (less CPU!)
- We now defer rendering the cursor until we know we're done printing text (#2960)
- Characters of unknown width are now considered to be one cell wide (#2928)
- Improves layout of all glyphs that are "ambiguous" per the Unicode standard by forcing them to be narrow, as most other Terminals do. This should improve table/box drawing.
- If you see some emoji that have been crushed, smushed or smashed, please mention them by codepoint in #900.
- Emoji are almost all ambiguous, so this is troublesome.
Bug Fixes
- We'll no longer crash if you open a tab, close it, then try to draw some unexpected characters in any other tab (#2928)
- Weird enough, this was the same fix as the "ambiguous width" one above. Your homework is figuring out why!
- Text copied to the clipboard will, in a lot more cases, have the right number of line endings (#3239)
- Characters like
:
and'
will now make their way to legacy applications in a way they can understand (#3199)- (some old Windows applications, or new ones that are written to target consoles that have been dead and gone for tens of years, were trying to read the scancode out of a key event. Terminal wasn't putting the right one in sometimes.)
- correctly inform connection of resize events (#3228)
- Fix for Visual Studio 2019 preview embedded terminal component to relay resizing events correctly. - Revert "Patch fix for #1360 (#2924)" (#3212)
- See below. We tried fixing full-width characters at end-of-line and introduced a bunch of crashes, so this rolls it back to stop the crashes. - TermControl: force all ambiguous glyphs to be narrow (#2928)
- Improves layout of all glyphs that are "ambiguous" per the Unicode standard by forcing them to be narrow, as most other Terminals do. This should improve table/box drawing. - Replace ExpandEnvironmentStrings double calling with wil helper (#3198)
- Cleanliness fix. Turns out we don't need to jump through 12 hoops to expand environment variables because WIL has a nice helper. This makes us use it and stop the hoop jumping. - Defer cursor redrawing when writing the buffer (#2960)
- We got a little excited about updating the cursor and would spend most of our time drawing the cursor blinking on and off or moving through the buffer, even while we were writing more text. Now, we control ourselves and only draw the cursor when done emitting a segment of text. This improves drawing and buffering performance. - You can now use font names longer than 32 characters (#3107)
- We used to believe that font names could only be 32 characters or less because 32 characters would be enough for anyone. Now we believe that font names can be any length they choose to be.
- Two tabs emitting output at the same time will no longer corrupt oneanother (#3110)
- If you have a
globals
object in your settings file, it will no longer cause the rest of your settings to be ignored. - VT fixes
- Alt+Backspace followed by Enter will no longer result in the application receiving Alt+Enter (#2823)
- NUL will no longer show up in the buffer (#3015)
- Some applications spend a lot of time talking about nothing. We used to listen to them and broadcast their nothingness to the world. Now we ignore them and save everyone from having to hear that. (Applications that used NUL to waste time don't have an effect of inserting space into the buffer anymore.)
- The terminal will now know when the application wants to hide the cursor. It won't do anything about it, but it'll know. (#2829)
- The line above, but for extended text attributes like underline, strikethrough, and italics. Remember, the Terminal won't do anything with this newfound knowledge. (#2917)
DHowett-MSFT released this
Features
- HTML Copy! (#1224) (#2038)
- HTML copy is incontrovertible.
- If you want to paste plain text, the receiving application should provide that option.
- HTML copy is incontrovertible.
- There have been significant improvements to tab titles (#2373)
- tabTitle is no longer an override
- Any opened tab will default to being named after its profile (or tabTitle, if it is set)
- The shell can read and change this title.
- CMD likes to append the running command name to the existing title. It can now do that!
- You can now double-click and drag to continue selecting words (#2184)
- …and triple-click and drag to continue selecting lines!
- Your settings will no longer roam from machine to machine. (#2298)
- We always thought it’d be a good idea to roam settings, but really it ended up being a lot more trouble than it was worth.
- No longer will your WSL and PowerShell Core profiles from Machine A cause WT to fail to run on Machine B!
- We’ll migrate them to local storage for you.
- Even if you're using a symbolic link!
- You can now bind Ctrl+C to copy and it’ll still send a literal
^C
if you don’t have any text selected (#2446) - A new selection mode,
copyOnSelect
, has been added: Text will be copied to your clipboard when you select. Immediately. (#2152) - A broader range of settings errors will now result in useful diagnostics instead of useless diagnostics. (#2422)
- A new key binding action,
openNewTabDropdown
, has been added. By default, we bind it to Ctrl+Shift+Space.- As with all new default bindings, it will only be added for new users.
Changes
- Azure Cloud Shell no longer identifies itself as Visual Studio Code (#2219)
- (Dev builds only) Azure Cloud Shell only shows up if it would actually work on your build. (#2195)
- The settings file will never be rewritten once it exists. (#2475)
- (on 100%-scale displays) UIA text ranges will now appear in the right place on-screen (#2423)
Bug Fixes
- Powershell should no longer crash when you close its tab (#2198)
- Applications will now receive proper exit events when you close their tabs.
- Tab icons now flicker 100% less often (#2376)
- We won’t crash when you try to split panes for ants -- thanks @richardszalay! (#2450)
- Data copied to the clipboard will be kept once you exit WT (#2486)
- It’s a bit harder to accidentally detach the window from its dropdown menu. (#2438)
- The box cursor will be 74% less blurry and 100% more cool (#2491)
- Underlines won’t be in the wrong color any longer! (#2491)
- The windows key will no longer snap on input. (#2514)
- Azure Cloud Shell will no longer fail when it can't figure out a tenant's name (#2508)
DHowett-MSFT released this
Bug Fixes
DHowett-MSFT released this
Features
Accessibility Support
This is an early integration of our conhost accessibility work into the new Terminal. There's a number of downsides, like that the text range starts at the top of your entire buffer and that Narrator reads everything in it. (#2083) (#1691)
Azure Cloud Shell
New users (or existing users who delete their existing profiles; sorry, same old profile feature) will now have a cool azure cloud shell connection added to their list of profiles. (#1808)
Changes
General
- The UI is now much better. (#1948) (#1934) (#1898) (#929)
- [known bug] The “Maximize” cube won’t turn into the “Restore” icon when you snap or double-click the title bar.
- This is just cosmetic.
- [known bug] The “Maximize” cube won’t turn into the “Restore” icon when you snap or double-click the title bar.
- double- and triple-click selection now works, with customizable word delimiters! (#1197)
- New Panes Features
- You can now resize panes with the keyboard! First, you must add key bindings for
resizePane{Up,Down,Left,Right}
. (#1207) - You can now move focus between panes with the keyboard! You must add key bindings for
moveFocus{Up,Down,Left,Right}
. (#1910) - Panes key bindings will be set by default once we’re sure the feature is actually ready to ship!
- You can now resize panes with the keyboard! First, you must add key bindings for
- When your mouse leaves the window while you're selecting, the selection will continue. (#1523)
- Console Host now supports DECOM and DECCOLM! DECSTBM works better. (#1709) (#1331) (#1881)
- The About dialog now has links to really interesting stuff! (#1887)
Settings
- There's a new default key binding for
closePane
[*] (#2012)- Ctrl+Shift+W will close an open pane (or tab)
closeTab
is no longer bound by defaultcloseTab
closes all panes in a tab (without confirmation)
- There's a new set of default key bindings. [*] (#2014)
- Command line applications are important to us, and Ctrl+W and Ctrl+T are important to them.
- By default,
newTab
andclosePane
will be bound to Ctrl+Shift+T and Ctrl+Shift+W
- There's a new setting for background image alignment:
backgroundImageAlignment
(#1959)- Values:
center
,left
,top
,right
,bottom
,topLeft
,topRight
,bottomLeft
,bottomRight
- Values:
- If you leave the
guid
out of a newly-created profile, one will be generated for you. (#2117) - You can now map OEM keys (
{}\_+-=\\|/?\<\>:";'
) in key bindings! (#2067) - A new profile setting,
tabTitle
, was introduced for people who really don’t want to write code to set their tab titles. (#1358)- Writing code is the best way to put dynamic content in your title bar! It’s really, really cool. Most shells support it!
- You can now add key bindings for
copy
,copyTextWithoutNewlines
, andpaste
. [*] (#1093) - You can now add a key binding for
duplicateTab
[*] (#1685) - There is a new “Vintage” color scheme! [*] (#1901)
- You can now have a background image over top of acrylic or a solid color (#1107)
* New defaults won't be applied to existing profiles. You can either remove your existing profiles.json
or attempt to build a simulacrum of the new defaults.
Bug Fixes
- You can now open the settings file if you use the one true text editor, GVIM (or any other text editor that prefers the “edit” verb instead of the “open” verb.) (#1841)
- If you don’t have an editor bound for JSON files, we’ll mercilessly fall back to notepad.
- Complicated commandlines need a lot less escaping. Mostly, ones with spaces and quotes. (#1815)
- This may be a compatibility concern. Check your profiles to make sure they work!
- Padding no longer pads the scroll bar. Sorry about the padded scroll bars. (#1778)
- The terminal now works if you’re one of the six people who have enabled Use Legacy Console. (#1935)
- Pressing escape will only escape once, so you don’t escape twice (#1974)
- RTL text looks way less bad (#1873)
- You’ll no longer end up with broken Unicode sequences in long runs of emoji or other fancy text! (#1850)
- Your window will no longer overhang the edge of your screen in certain monitor shapes (elliptical, mostly) (#1921)
- Environment variables are now supported in
icon
. (#2050) - A number of crashes were fixed.
Other Changes
DHowett-MSFT released this
This release fixes some of the main issues identified in v0.2.
Bugs Fixed
- AltGr-modified keys weren't working
- A crash that occurred when snapping the Terminal to the side of the screen
- A crash in pane/tab closing
- Our binaries were built with the
APPCONTAINER
flag, which made them fail store certification - Windows Terminal didn't work anywhere that required Direct2D software rendering
- Solarized and Campbell color schemes weren't totally correct
- The version number in the About dialog could not be copied
miniksa released this
Merge pull request #418 from waf/fix-parser-and-registry-bugs-with-re… …factor Fix ColorTool parser and registry bugs, and refactor
Assets
3
Watchers:1301 |
Star:70847 |
Fork:6426 |
创建时间: 2017-08-12 02:38:22 |
最后Commits: 11天前 |
许可协议:MIT |
f3cdf68
Compare
Verified
This is a quick servicing release to address a couple annoying issues in the 1.5 preview release.
Bugs fixed in this release:
"tabSwitcherMode": "mru"
.backgroundImageStretch
wasuniformToFill
, but it was actuallyfill
. We've updated the code to make ituniformToFill
. (#8280)