The situation for terminal emulators is still bad on Windows.
Those web-based ones have no problems with fancy font features like powerline icons or ligatures but they still have a limitation when it comes to color support. [1] Fluent seems to be affected from this as well.
The other important feature for me is tmux with mouse support. To my knowledge, only WSLtty [2] does this right. It lacks support for font ligatures but I value a functional tmux more than some ligature eye candy.
I still hope that Microsoft will improve their own conhost.exe in further updates. Also, the upcoming 1903 update will improve the color support those web-based terminal emulators.
I tried out Alacritty [1] yesterday - it seems to work pretty well. It's the only one I've found so far that uses the new ConPty API. It's font rendering doesn't seem quite as nice as conhost though.
wsltty is absolute crap. Not only it is very very slow with long lines or fast output, it also freezes often with applications that have GUIs like irssi.
Looking at the source code, this appears to be a UWP wrapper around the xterm JavaScript library loaded in a system web view. It uses a WebSocket connection to facilitate communication between the embedded web environment and the application. I’m not sure how comfortable I am with that from a security standpoint.
Personally prefer ConsoleZ over conemu. Its more stable and does fewer strange things when i last evaluated it. Fluent i guess has better themes support and UWP might be some sort of advantage.
My only gripe is the delay after opening a new terminal. If it takes > 5s after launching to actually get a shell where I can type things, we have an efficiency problem.
It's all the python behind the scenes. The dev chose simplicity over speed.
And this terminal is "based on web technologies" so I doubt decent speed is really achievable.
It's almost ironic that web developers are creating terminals.
You're correct that it is _based off_ ConEmu, but it has a bunch of additional sluggish Python code to load in a fancy lamba symbol for the prompt and some aliases that try to be unix commands.
I believe the slowdown is due to the clink prompt running external programs in order to find git status etc. I run clink without ConEmu (cmdr is a pack of both with some config) and recently redid the prompt to make it less functional but MUCH faster.
I basically changed the config.lua file to use clink.get_cwd() instead of pwd(), and to
local HEADfile = io.open(git_dir.."/HEAD")
if not HEADfile then return false end
local git_branch = HEADfile:read():match('ref: refs/heads/(.*)')
HEADfile:close()
return colors.git_dirty .. " (" .. git_branch .. ")"
to find the current git branch if any. Less functional and more potential for errors (detached heads or such) but for my case it's very worth it.
I used to use ConEmu but it was too buggy for my liking, especially when using docker > nano/vim. Text was displayed in the wrong place all the time.
I started using fluent when this was posted (3 days ago) and I quite like the experience so far! I haven't had to switch back to regular CMD for anything so far!
I wouldn't call ConEmu the MVP (if you mean most valuable rather than minimum viable) - there's a number of unfixable bugs due to the insistence on Windows XP support.
Breakdown of Windows Terminals
# Top Quality (supports line editing, history, scrollback, copy on select, right click paste, tabs, iterm colors, everything else you'd expect from iTerm2 or gnome-terminal)
- Fluent Terminal (native, lightweight)
- Terminus (electron, so heavier, but also excellent and stable)
- Hyper 3 Canary (electron, in beta as Hyper 2 has serious bugs, but a massive plugin ecosystem)
# Minimal (no tabs but fast and stable)
- Powershell 6.2's inbuilt terminal
- Alacritty
# Windows XP apps (UI has everything everywhere, some unfixable bugs)
> A Terminal Emulator based on UWP and web technologies.
I understand the hate for electron apps and the demand for native. While I do use VSCode as my daily editor, I've also seen some electron apps that definitely don't make the cut.
That said, I don't understand the growing trend of using the native web view and calling it "native". (Meaning it can't be ported to other platforms, so it must be native?)
If you're building it with web technologies, you might as well just go with electron for the more modern browser[1], easier portability, and isolation from browser version changes.
[1]: I haven't looked much at the windows web view since edge came out. I was going to say perhaps this doesn't matter as much if you can select edge, but now that edge is becoming chromium anyway, I suppose the point is moot. Hooray for monocultures I guess.
>If you're building it with web technologies, you might as well just go with electron for the more modern browser[1], easier portability, and isolation from browser version changes.
You wont get something that feels like a modern Windows app if you make it with electron, also the app will balloon by 80 meg and portability again isn't an issue if your goal is to make something that feels like a modern Windows app.
I really appreciate the work of the people behind FluentTerminal and honestly had no idea it had web under the hood till I looked at the source because building it on UWP makes it feel like a first class windows app.
> A Terminal Emulator based on UWP and web technologies.
Yes. UWP is Windows' native development platform and has been for years now. There's some Web tech too, but it's still more lightweight than Electron. What's your point?
The Cmder website tells you this if you scroll down, but doesn't make it obvious. 'clink' in particular is of dubious utility - if you're using Windows, powershell is the default terminal, and powershell is one of Windows' best features.
Is there a good reason why running this requires you to install a certificate authority?
I get that this might be because of software signing requirements on Windows, but in that case you should bundle a script that generates+signs the build using a local certificate instead of loading a random CA into the system trust source.
UWP apps are signed. To sideload, you either need to enable developer mode (allow installing untrusted app signatures), OR install the signing CA (but don't enable developer mode).
Your proposed individual CA model does seem like an improvement for that route, but I just enable developer mode.
Interesting. If turning on developer options also allows you to run unsigned software, I don't see any advantages at all for installing this random certificate authority. Thank you for your explanation.
Do you know of any examples offhand that use the method you describe?
It sounds super interesting. I've actually been looking for a way to deal with certificates (and ditch the warnings from Windoze) for internal C# tools at work.
You can generate your own CA using common open source software (openssl is often used) and use that to sign your packages (and sign any intranet websites you can't be bothered to set up letsencrypt for). This website has a nice intro into running your own CA: https://roll.urown.net/ca/index.html
You can use the CA itself or an intermediary to sign your software. However, be aware that this will only work on computers with your personal CA installed in the trust store.
I'm pretty sure network admin related versions of Windows also have tooling for operations like this but I have no experience with those.
Be warned though, a self-signed CA can be dangerous if someone else gets their hands on your private key. I myself have set up intermediary CAs to deal with HTTPS certificates or code signing certs so I can store the CA private key somewhere safe.
When I'm forced to use Windows (which is pretty much just at work), I run an X server through Cygwin then use URxvt with GNU screen. I haven't found a Windows console application that doesn't play nicely with this when run through winpty, so for me it's the best of both worlds. I have used ConEmu and Cmndr, but I found them both to be nowhere near as reliable as my current setup (much like how WSL still can't touch Cygwin for my use case).
But the X server is annoying too, because for some reason setting -dpi doesn't work for me, and the fonts render like crap. If I set fonts really small they aren't as bad.
I just use PuTTY into a local or remote sshd as it's the least bad of everything I've tried so far. Wish it supported tabs natively tho.
If this thing supports mouse, copy-paste, good fonts, and doesn't steal or disable any of my key mapping, I'll take it
Author here. The main reason is that I already had some experience with 'hybrid' approaches and xterm.js made it possible to build something usable without spending too much time writing a vt parser. I'm planning to start working on a 'native' renderer next to get rid of some limitations and also improve the performance.
Interesting. I have been using ConEmu for a very long time and every time I try something new I always end up going back to ConEmu... and I have tried many others such as Hyper, MobaXTerm, Terminus and others which names have fled the hallways of my mind. I will give this one a try. I am also going to try out cmder which I hear is built upon ConEmu.
They were going to have tabs in native terminal (which is otherwise pretty good asides from this) via Sets until that feature was cancelled. Hopefully Rich etc has a backup plan.
Theoretical question: what would be more effective rallying support for this:
1. Having 3000 developers on LinkedIn privatemessage developers working on the windows OS apps team to have this bumped up in priority
2. Having 30 000 developers on twitter tweet @SatyaNadella and other prominent figures in the MSFT world, who could rally support and make things move at the top so the orders come down the chain to get this terminal thing settled.
no I don't cause most are from recruiters, but if i keep seeing ones popup with the subject 'hi im random mark from atlanta, what are your thoughts on redesigning the terminal experience on windows' ... i'd maybe consider it. especially if i get to work and 30 of my coworkers are complaining about the same mysterious messages arriving in their inboxes
My entire workstation is an Ubuntu VM hosted at my office. I just need a simple SSH client that works well on Win10. Nothing has been as good as the chrome extension Secure Shell. I've used conemu, putty, mobaxterm, and countless others. But I always come back to secure shell. I hope this one is good enough to replace that because I just want to get rid of chrome.
Those web-based ones have no problems with fancy font features like powerline icons or ligatures but they still have a limitation when it comes to color support. [1] Fluent seems to be affected from this as well.
The other important feature for me is tmux with mouse support. To my knowledge, only WSLtty [2] does this right. It lacks support for font ligatures but I value a functional tmux more than some ligature eye candy.
I still hope that Microsoft will improve their own conhost.exe in further updates. Also, the upcoming 1903 update will improve the color support those web-based terminal emulators.
[1] https://github.com/zeit/hyper/issues/1968
[2] https://github.com/mintty/wsltty