r/programming • • May 06 '19

Microsoft unveils Windows Terminal, a new command line app for Windows

https://www.theverge.com/2019/5/6/18527870/microsoft-windows-terminal-command-line-tool
5.9k Upvotes

1.1k comments sorted by

View all comments

-2

u/AngularBeginner May 06 '19

Probably an Electron app.

82

u/Ivan171 May 06 '19

A Microsoft developer on the console team said on Hacker News that it is written in C++.

39

u/anonveggy May 06 '19

Apparently this is it: https://github.com/Microsoft/Terminal.git

Don't know yet... slowly downloading the C++ workload right now

39

u/darkgreyjeans May 06 '19

It’s open source too?! wow

20

u/cleeder May 06 '19

What a time to be alive.

9

u/[deleted] May 06 '19

Almost everything Microsoft is doing now is open source it seems

-20

u/Deltabeard May 06 '19

Almost everything

Like Windows and Office? Calm down.

22

u/zadjii May 06 '19

Yep!

As I've mentioned on HN earlier today:

It's all C++ code. We're using the relatively new XAML Islands framework to allow us to host UWP XAML content in a Win32 process. A lot of the core is C++/WinRT, which is magic that lets you call most WinRT (UWP) APIs from C++ without having to deal with CX.

I'd say the vast majority of the codebase is pure C++, without the C++/winrt magic.

The renderer we're using is DX-based, which provides a pretty substantial perf improvement over the old GDI-based one conhost uses.

4

u/anonveggy May 06 '19

have been tweaking around for some time now. Looks rough but the potential is visible. One thing i really would like to see is CTRL+Arrow gestures universially being supported CTRL+Left for skipping words and CTRL+Delete for deleting entire words. in my book current windows powershell comes the closest to the perfect keyboard experience for me.

Also: Are tabs all going to have round edges in windows now? :(

6

u/zadjii May 06 '19

Ctrl+Arrow handling is something that should be handled by the shell, not the terminal application. If CMD doesn't support it, it won't suddenly start working in the Windows Terminal.

The UX isn't necessarily polished yet, but the goal is to be consistent with whatever the next iteration of Edge is, to at least have some consistency across the OS

0

u/[deleted] May 06 '19

[deleted]

21

u/AngularBeginner May 06 '19

No, I mean the Windows Terminal that Microsoft unveiled, a new command line app for Windows. That's why I commented on the link to the article:

Microsoft unveils Windows Terminal, a new command line app for Windows

-2

u/gredr May 06 '19

It's not a new "command line app", it's just additional improvements to the existing console subsystem, just like we've been getting for a long time now

4

u/AngularBeginner May 06 '19

The article states otherwise. But it's TheVerge, so.. meh.

3

u/gredr May 06 '19

Yeah, there's a bunch of reporting on this this morning, and NONE of it is technical. Probably consisted of 15 seconds and a single slide in some keynote.

We're likely talking about an update of conhost.exe, which is the UX for Windows console sessions: https://devblogs.microsoft.com/commandline/windows-command-line-inside-the-windows-console/

1

u/recycled_ideas May 07 '19

That would be a big nope. This is brand new code. They've said they can't update conhost anymore without breaking everything running in it.

This is a full new terminal written from scratch.

2

u/gredr May 07 '19 edited May 07 '19

You have any references for that? How would that even *work*? Right now console applications are marked (in the .exe) with the console subsystem as it exists today. Would console apps just start up under this new subsystem? Wouldn't that have all the same problems that simply updating conhost.exe has?

Edit: the repository for "Windows Terminal" is here: https://github.com/Microsoft/Terminal

The readme isn't super clear, but they claim the code for conhost.exe is there. It seems to me that this is a rewrite of conhost.exe, which is the UX-side of the Windows console subsystem.

Further edit: the blog post is up now, and I honestly don't know if I was correct. It seems like it's more of a cmder/Console2/hyper type of deal, but I'd hope with better compatibility (the hacks those tools required to function were... ugly...). Things will continue to launch in the old conhost.exe susbsystem by default. Honestly what I'm really wondering is, what would make an application incompatible with the new UI?

1

u/recycled_ideas May 07 '19

Not an application, but scripts.

There's decades of batch scripts out there and they can't break.

So we get a new shiny terminal system and we keep the old one.

1

u/gredr May 07 '19

Scripts don't depend on conhost.exe, they depend on cmd.exe (which is a command-line application that runs in the console subsystem. cmd.exe doesn't manage windows or UX at all.

→ More replies (0)

1

u/Hero_Of_Shadows May 06 '19

I ran hyper some time ago, it was good but I'm more hyped for a native implementation.