What’s new in Windows Console in Windows 10 Fall Creators Update


With Windows 10 Fall Creators Update (FCU) releasing on October 17th 2017, we thought it time to post the list of improvements coming to Windows Console in FCU.

Note: For fans of our sister project, Windows Subsystem for Linux (WSL), please also read our post on "What's New in WSL in FCU".

The Windows Console team have been hard at work during the FCU product cycle. Some of their work is highly visible (and even audible!), and there's been a lot of under-the-covers work underway. Read on for details:

Windows Console Accessibility Improvements

For users who are blind and/or have visual difficulties, the command-line presents a unique set of challenges. Try this out for yourself - open a Console window, close your eyes (no peeking), and try to use the command-line. Many among you might enable Windows Narrator, but you'll find that it doesn't do a good job of reading the Console's contents.

Historically, Windows Console has not done a good job of supporting screen readers like Windows Narrator. 3rd party screen-readers like FreedomScientific's JAWS, and NVAccess' NVDA jump through some pretty complex hoops to read the Console's screen.

We wanted to change that and help make Windows just a little more accessible to our users.

One of the most visible ... and audible ... improvements made to Windows Console in FCU, is that Windows Console's contents can now be read by Windows Narrator and any other screen-reader or tool via the Windows UI Automation infrastructure (UIA). UIA allows applications to navigate Windows apps' UI controls and their contents programmatically. Because Console now exposes each line of the Console's contents to UIA, tools like Narrator and now interrogate Console windows and read their contents to the user.

The video below is a very quick demonstration of this feature in operation.

We'll be following up with a much more detailed post, and demo video soon. Stay tuned!

Improved Text Rendering and VT Code support

Building atop the major improvements to the Console in Creators Update, the Console team also made several important improvements to the Console's text rendering and VT handling.

The net result is that the Console should now render text even more like one would expect on a Linux or Mac console. For example, the Console now correctly renders vim color themes correctly, does a better job of reflowing text when the console windows is scaled, and should render text more quickly in some scenarios.

 

We're not done here though: There are several important input, text, and other VT improvements planned for future releases of Windows Console.

New Default Color Scheme

The default Console color palette has remained unchanged for more than 30 years. And it shows! The original deep navy blue renders far too dark on LCD screens, and many colors are oversaturated and contrast poorly.

In Fall Creators Update, the Console's default colors have been improved and modernized to render more clearly on modern high-resolution displays.

In particular, the deep navy blue has been replaced with a lighter shade of blue. Similarly several other colors have been tweaked and modified to render more clearly, as has the background color which has gone from pure black to a dark shade of charcoal to help soften color contrast a little.

The new default color palette was selected in partnership with the Windows Accessibility and UI Design teams, and has been tested using internationally recognized color & contrast analysis tools.

We encourage you to read the announcement blog, and hope you like the new default color palette. If not, you might like to customize your Console's color scheme using our new tool …

Custom color schemes using ColorTool!

One of the most common asks of the Console is to support custom color schemes. While it'll take a while for us to build formal support for custom color schemes, we have recently released an open-source ColorTool to allow you to import custom color schemes into your Consoles.

Console with Solarized-dark scheme

Console with Solarized-dark scheme

For more details, please read the announcement blog for the ColorTool, and give it a try! We look forward to seeing your pull-requests containing your suggested improvements.

Overhauling the Console's internals

Back in April 2016, we teased the Twitterverse with what looked like a joke, but was actually a (much simplified) overview of the critical work necessary to overhaul the Windows Console's internals:

Console Re-architecture Plan

Console Re-architecture Plan

We are currently giving the Windows Console its biggest overhaul in more than 30 years, injecting new life into one of Windows' most essential, and oldest longest-serving features, and into the Windows command-line ecosystem as a whole.

The team began implementing this plan during Creators Update, and has continued the work during Fall Creators Update

Console re-architecture plan

We have a plan! SHIPIT!

The modernization effort is not quick, nor simple. The overhaul requires significant changes to the Console's internals; replacing legacy/out-of-date code with modern, well-tested replacements; and improving support for many user and customer requests. And all this has to be done without changing existing behavior, and without breaking the world. The Console, it turns out, is one of the most used apps on Windows, second-only to the browser! And its used for many critical tasks and roles, not least of which is building Windows itself, and running every command-line application on every machine world-wide.

Alas, much of this work is not really visible to the end-user, but it is essential for us to complete so that we can start working on high-value end-user-visible features that many of you are asking and waiting for us to deliver!

This work continues, but we're nearing the end of the major re-architecture work: Bear with us as we work to deliver the world-class Console experience that you deserve!

So, what's next for the Console?

The team are already beavering away on the features and fixes for the next Windows release after FCU! These improvements will start to appear in Windows 10 Insider builds in the coming weeks, and will appear in the next major Windows 10 release in several months' time. As always, we'll continue to announce new features and improvements via this blog, and on Twitter via @richturn_ms, so stay-tuned for all the Console and command-line related news!

For those keen to ride the wave of new features, be sure to subscribe to the Windows 10 Insiders fast-ring builds, and be sure to let us know if you find issues!

 

Sincerely, the Windows Console & WSL engineering teams


Comments (34)

  1. Jesse says:

    You got me on board the hype train!

    1. Welcome to the party 🙂

  2. Keith Hill says:

    Is there a way to use colortool to set the colors for a WSL console? If not, what is the easiest way to customize the color scheme for a WSL console?

    1. Not at this point. Most Linux tools manage their own colors and specify colors using 4/6/8-bit RGB VT sequences which bypass terminal/Console color palettes completely.

      Bingle examples of how to configure colors for bash, tmux, vim, etc.

      1. Richard Fuhr says:

        Help me understand this a bit better. With the release of the Fall Creators Update, after installing a new instance of the Windows System for Linux from the Windows Store, will the default colors for that WSL as seen in the Terminal be more readable than they have been up until now?

        1. If you clean-install Fall Creators Update, you should see better colors in Cmd and in any Linux commands/tools that request palette colors (rather than specifying RGB colors). PowerShell modifies its shortcuts, so by default you’ll still get PowerShell’s defaults, though you can update your PowerShell shortcuts to use the new defaults if you wish.

          1. L. says:

            Is there a simple way to reset the colors to what they would be after a clean install, without reinstalling?

      2. L. says:

        Changing the color palette in the shortcut used to start bash.exe would still customize the 16 base colors in the WSL console, wouldn’t it?

  3. Craigaloewen says:

    Can’t wait for the update!

    1. Hey Craig! Excited to see some of your hard work appear as shipped features in Windows 🙂

  4. Kinda: Use the -d flag. This will reset the default colors in the registry. However, if you’re launching Cmd/PowerShell from a shortcut, note that the shortcut may contain its own colors which override the defaults. In which case, run `ColorTool.exe campbell`, open Console properties and hit Ok (don’t need to change anything) – this should write your current color choices to the shortcut.

  5. L. says:

    Does this overhaul enable switching to DirectWrite, or is this still for the far future?
    The main reason I’m waiting for this is that the current Console is very bad at displaying unusual characters, e.g. text fragments in foreign languages that are outside the code page and selected font.

  6. Earth McFlat says:

    I’ve been using OS X since 10.4 (Tiger). Windows command prompt has always been my main issue with the platform. All the updates since Win10 have been a game changer for me and I use Windows more than ever 🙂 Thanks!

    Off the top of my head, the worst remaining offender is loosing history between command prompt relaunch. Shipping with a *few* unix tools or aliases (ls, grep, vim) would be pretty welcomed as well.

    I love you guys and what you are doing. <3

    1. Thanks 🙂 Glad we’re making Windows more usable for you 🙂

      Persisting command history between restarts is on our backlog – bear with us 😉

      I strongly encourage you to start exploring PowerShell which comes with many command aliases for common *NIX commands/tools. See this thread for a discussion from earlier this morning on this very subject 🙂 https://twitter.com/richturn_ms/status/919960569238642688

  7. gr33nbits says:

    Loving this new color scheme, thanks MS. <3

    1. Woohoo! Great to hear you like it 🙂 Thanks for letting us know!

  8. Jon says:

    I just tried running colortool from a PowerShell window that had the default blue background. It turned the background to purple. Any idea why that is? I don’t know why you didn’t just upgrade the colors by default. You wipe out firewall settings and desktop background colors. I don’t know why the console colors should be any different. It seems odd that one must download a separate tool from GitHub to do this, and pretty ridiculous that you otherwise have to do a clean install.

    1. It’s because PowerShell did some strange things to the default palette: Specifically, they not only modify specific colors, they also change the default colors used for the background and foreground colors.

      Thus, PowerShell uses color[5] for the background, and color[6] for foreground. Then they change these colors to dark blue and yellow, respectively.

      ColorTool doesn’t know what shell you’re running though, and just tweaks the default color palette a little.

      So when you set the palette using ColorTool, it sets color[5] and [6] to tweaked-magenta and tweaked-yellow, resulting in PowerShell using magenta for the background.

      To fix this, open the PowerShell properties, and set the default background to color[0], for example.

      1. Jon says:

        Thanks. So, are the new colors going to be set by default on future upgrades? I want my PowerShell colors set to whatever they are in the FCU like they are if you do a clean install.

        1. The PowerShell team are working to fix their colors in PowerShell v6, though Windows PowerShell will likely retain their custom colors: https://github.com/PowerShell/PowerShell/issues/4266

  9. guest says:

    Hello.

    If use “internal” Microsoft tool from 2000, named CDIMAGE.EXE, from console to the name of created ISO image located some unwritten symbols.

    For example CDIMAGE.EXE -lVS2017.4_BuildTools -h -u2 -oc -os -m VS2017.4_BuildTools VS2017.4_BuildTools.iso
    If I mount VS2017.4_BuildTools.iso I got disk label like this – VS2017.4_BuildTosii06ac4b7a5ba37

    CDIMAGE is very useful to compress duplicate files, however change in Windows console it seems not very well for it. Also while run there are several messages that indicate that clear console do not was called ( support.microsoft.com/en-us/help/99261 ).

    Thank you.

    P.S.
    I was upgraded from 1511 to 1709, so I do not know when this happen, may be in previous releases (1703, 1607) was same situation.

    1. CDImage is no longer supported and there are FAR better options available for archiving files, e.g. 7Zip, WinZip, etc.

      1. guest says:

        Thank you Rich.
        Probably you right.

        However even iso with fresh version of Windows from care.dlservice.microsoft.com contains magic string indicate that they build with CDImage.
        I understand that modern deploy used ESD, so perhaps ISO was for different cases, for example – backward compatibility, if such required.

  10. Alex says:

    The update made windows-native VIm totally unusable for me. I’ve tried both GoW and vim-win32 version, from powershell and cmd.exe, with or without ConEmu & CLink: same story.

    It’s hard to describe, but it behaves totally crazy: echoing input at random places on the screen, not changing modes reliably, exiting at random times, not understanding escape, not exiting by either :q! or zZ.

  11. guest says:

    Hello.

    In both Creator Updates – with Fall and without in the name – there are different font size depend if we open PowerShell directly or by right click of mouse in folder with Shift key down – simply “Open PowerShell in this folder”.

    Thank you.

  12. Miguel Ripoll says:

    I’d like to see some margin around the console text, right now it’s literally touching the borders and doesn’t look as nice as it could be. Thanks <3

    1. So would we! 🙂 This is on our backlog and will be one of our goals when we build a new renderer.

  13. cey says:

    It is been what 3, 4 year and windows console do not have an unlimited scrollbar and hide scrollbar like sane terminal app in Gnome or KDE or OS X.

    Totally disappointed. Just port the god damn Gnome-Terminal to Windows. You are not going to be able to write a good one, because past 3 years has shown that.

    1. Polite request: Please keep communications civil. Thank you.

      We’re currently overhauling and modernizing not only the Windows Console “terminal app”, but also the entire command-line infrastructure underpinnings within the Windows OS and kernel … while trying not to break every command-line script & app that’s been written in the last 30 years.

      We’re a small team (~2.5 dev’s) with A LOT of work on our plate, and we appreciate your continued patience.

  14. James says:

    Great! I’m really happy about this, I’ve done a lot of work in the past using the Windows Console and I’m glad it’s getting some upgrades.

  15. Benjamin B. says:

    Really excited about getting a more and more decent console here. There are still some bugs here and there.. But you are doing a really good job here with this (really) old piece of code. Thank you for thinking about all the devs out there <3 Please keep up the hard work !

    Btw i like how you guys are communicating on your projects like this. That's a great change toward your comunity 🙂

    1. Thanks so much, glad you’re liking our approach and work. We’re really excited to be getting towards the end of our “having to eat peas and carrots” phase of the process and getting onto more user-facing features. Great stuff on the way.

  16. Ryan Erwin says:

    @Rich Turner

    Fedora is so slow to release their WSL package…
    Why not work with the CentOS people on a CentOS WSL distro package?

    Also, maybe provide some official documentation on building our own WSL packages?

    Might use these as a starting point…
    https://github.com/RoliSoft/WSL-Distribution-Switcher
    and
    https://msdn.microsoft.com/en-us/commandline/wsl/install-on-server

    1. Please ask @mattdm & @Fedora, and @ on Twitter – he’s working to get Fedora into the store – your question will help him 🙂

      We’ve also begun conversations with Karanbir @CentOS. He’s been OOF of late, but is returning to work soon and should get the ball rolling again.

Skip to main content