Skip to content
Pre-release

@DHowett DHowett released this Jun 30, 2020 · 70 commits to master since this release

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 for cmd and powershell. They ship as part of Windows, so we should know exactly where they are. (#6684)
Assets 3

@DHowett DHowett released this Jun 30, 2020 · 210 commits to master since this release

This is the first servicing release to the Windows Terminal stable release train.

Each of these is a backport from the preview train (v1.1). Thanks for selfhosting the preview and helping us determine what to backport!

Windows Terminal 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

  • 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.
  • Win32-OpenSSH 7.7 is here to stay, so we decided to fix the issue that allowed it to break mouse input (#6485)
  • Our caption buttons now fade like everyone else's when you hover over them (thanks @AnuthaDev!) (#6303)
  • Text copied from the File Explorer's "Copy Address" option will now be pasteable (thanks @aldahick!) (#6146)
  • Every time the window was resized, we'd lose track of another GDI handle. Now, we don't (#6229)
  • 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)
  • Right-clicking the negative space between the tabs and the caption buttons will now open the system menu (#6443)
  • 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)
  • You can now drag and drop snippets of text onto the Terminal and it'll do roughly what you'd expect (#5865)
  • 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)
  • Terminal will no longer rely on PATH lookup for cmd and powershell. They ship as part of Windows, so we should know exactly where they are. (#6684)

Performance

  • We've added a couple fast paths to things that the profiler told us were taking more time than we expected. (#6493) (#6501) (#6420) (#4608)
Assets 3
Pre-release

@DHowett DHowett released this Jun 18, 2020 · 7 commits to release-1.1 since this release

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.
  • We've added a context menu that will appear when you right-click a tab!
    • You can now assign a color to a tab (thanks @gbaychev!) (#3789)
    • Tabs can now be renamed! (#5775)
      • Tab names override application titles and will be durable until cleared or closed.
  • 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 to settingsFile
    • 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, default false) (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.
  • 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, default true) (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 and split-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.
  • 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!
  • 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 now Windows 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.
  • 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)
Assets 3

@DHowett DHowett released this May 19, 2020 · 18 commits to release-1.0 since this release

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.
Assets 4
Pre-release

@DHowett-MSFT DHowett-MSFT released this May 13, 2020 · 210 commits to master since this release

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.
  • 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)
Assets 3
Pre-release

@DHowett-MSFT DHowett-MSFT released this May 5, 2020 · 210 commits to master since this release

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.
  • 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) and Clear-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.
  • 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

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)
Assets 3
Pre-release

@DHowett-MSFT DHowett-MSFT released this Apr 28, 2020 · 266 commits to master since this release

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 now Cascadia 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)
Assets 3
Pre-release

@DHowett-MSFT DHowett-MSFT released this Apr 22, 2020 · 266 commits to master since this release

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 to settings.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 to automatic (#5194)
  • copy's original and poorly-understood trimWhitespace argument is now called singleLine to indicate that it will, in fact, copy text as a single line (#5216)
  • requestedTheme has been renamed to theme (#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 and paste 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
    • 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.)
  • defaults.json now contains more of the actual live defaults for reference (#5231)
  • Terminal now ships the Tango Dark and Tango 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)
Assets 3
Pre-release

@DHowett-MSFT DHowett-MSFT released this Mar 20, 2020 · 402 commits to master since this release

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)
Assets 3
You can’t perform that action at this time.