Cygwin and pty related issues

I have many false reports about cygwin behavior in ConEmu.

The problem is that when cygwin’s applications detect real win32 console, cygwin’s core process all ANSI sequences internally instead of bypassing them to terminal. In other words, ConEmu does not receive any ANSI sequences at all.

Sample issues: gh-608, gh-590, old-issues#879, etc.

Yep, users say: ‘It is working in mintty’.

Answer is simple: mintty is not a ‘real’ console, all its magic is done with pipes.

On the one hand - cygwin detects POSIX compatible ‘pipe’ mode (that mode may be named ‘pty’ or ‘cygwin terminal’) and do not process ANSI internally, but just bypass them to terminal.

On the other hand - many console applications fails in mintty (most known to me - PowerShell and Far Manager).

ConEmu is hybrid terminal. It support all functionality Windows offers to console applications and is able to process ANSI sequences. All magic is done by hooking Windows API.

But cygwin do not know about ConEmu abilities and I do not know any way to force cygwin to do ‘right’ things (send ANSI to ConEmu consoles).

May be in future I’ll find a way to combine pty and real console features, but at the moment, may be, better and faster way is request the ‘feature’ from cygwin developers.

cygwin/msys terminal connector

Experimental approach to implement POSIX-compatible terminal (pty) emulation is on the go.

Well, in fact, cygwin/msys connector is a simple tool which forces cygwin/msys core to disable ANSI processing and let it just pass ANSI sequences to terminal unmodified.

Why the terminal application must create special hacks to disable ANSI processing? I have not idea… Just a simple switch would be enough, but it does not exist.

Anyway, anyone may go to cygwin/msys connector, download fresh test release, update ConEmu to the latest ALPHA version, change your cygwin/msys task startup command and use console tools in ConEmu’s native way.

Some links