Is there a way to implement custom Console API backend? This decoupling will allow independent developers to implement their own console UIs which will be a dramatic improvement of the current situation I think: the many different developers the better.
Look at the way UNIX terminal emulators work: for each terminal session they create a master-***** pts pair and then the following happens (http://man7.org/linux/man-pages/man4/pts.4.html):
Once both the pseudoterminal master and ***** are open, the ***** provides processes with an interface that is identical to that of a real terminal.
Data written to the ***** is presented on the master file descriptor as input. Data written to the master is presented to the ***** as input.
In practice, pseudoterminals are used for implementing terminal emulators such as xterm(1), in which data read from the pseudoterminal master is interpreted by the application in the same way a real terminal would interpret the data, and for implementing remote-login programs such as sshd(8), in which data read from the pseudoterminal master is sent across the network to a client program that is connected to a terminal or terminal emulator.
Screen, TMux, etc. should now work correctly on recent Win10 Insider builds.
Anatoly Zaretsky commented
Is there a chance something similar will be available for "native" Win32 console applications? I.e. will it ever be possible to make Win32 console applications talk to a custom console backend instead of csrss.exe?
Михайло Падалка commented
tmux works, but what about screen? I find it more comfortable to use.
Nick Price commented
PTYs were implemented in the latest build and you can launch all the xterms you like now :)
Ken C commented
Support for xterm would definitely be nice, and might satisfy some of the people over at the [Support for X-server running in Windows...](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13250499-support-for-x-server-running-in-windows-on-the-sam) thread.
I agree that the console applications could use some improvements (such as keyboard shortcuts), but I would rather have them implemented in the official application than alternatives.
IMHO censoring the word s l a v e on a development website, if not in general, is strange and counterproductive.
Anatoly Zaretsky commented
I'm sorry for using censored language. I didn't mean to be offensive, of course. Unfortunately I don't seem to find any alternative terminology for this idea. "Frontend" and "backend" look good although I'm not sure what should be called what: I just used the term "API backend", but on the other hand these "API backends" would often be UI applications, and UIs are often called "frontends". Anyway, the terminology is secondary to the idea.