Windows runs command line applications (such as CMD, PowerShell, and TCC) in a character-mode window called the Windows Console. Unfortunately, the Windows console has always been seriously lacking in even the most basic features compared to what is available in GUI apps. And the Windows console UI hasn’t changed significantly since its first appearance in Windows NT 3.1 (way back in 1993).
This is the first in a series of posts that will compare and contrast JP Software’s Take Command with Windows (and Linux) console replacements. Hopefully we’ll also find some inspiration for new features in the next version of Take Command!
Over the next few weeks we’ll take a look at:
- Mintty
- Console
- PromptPal
- PowerCMD
- Gnome Terminal
- KDE Konsole
and any others that we can find (or that you suggest!).
Today we’ll take a look at Mintty, a console replacement and terminal emulator for Cygwin and MSYS. Mintty takes a minimalist approach to replacing the Windows console — the first impression is that nothing has changed:
Despite appearances, Mintty is actually a GUI app, based on the PuTTY 0.60 code. Mintty is not a replacement for the Windows command prompt; it is only a wrapper for command line programs (like CMD, TCC, Bash, etc.). Mintty uses pipes to handle the console application’s input and output, which results in fast output and scrolling. The disadvantage is that console programs that have interactive input, colorized output, or use screen positioning (i.e., anything other than vanilla tty output) will not work with Mintty.
Mintty adds some features beyond what is available in the standard Windows console:
- An easier copy & paste (which is also line oriented rather than column oriented as in the Windows console)
- Drag & drop
- Xterm-compatible terminal emulation
- Transparent window option
- Faster output
- Open files and URLs with Ctrl+left click
Let’s take a look at the Take Command window. (The Take Command Explorer-style Folder and List View windows, and the common Command Input window are set to Autohide in order to show a more straightforward comparison with the Mintty window.)
Take Command includes all of the Mintty features listed above (with the partial exception of the Xterm terminal output — see below).
Now let’s look at a few of the Take Command features that aren’t available in Mintty. (The full Take Command feature list runs into the tens of thousands; far too many to try to list here).
Features | Take Command | Mintty |
Price (single new copy) | $99.95 | Free (GPL) |
Tabbed Windows UI | ||
Multiple tabbed windows for console applications | ![]() | |
Run simple GUI apps in tabs | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Customize menu accelerator keys | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Customize tabs location (top/bottom/left/right) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Multiple display themes | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Horizontal / vertical tab groups | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Attach and detach console windows | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Optional command input window | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Cut and paste block and/or line selection | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Continuously variable transparency option | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Integrated GUI file explorer | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
User-defined startup tabs | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Programmable tabbed toolbar | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Configurable status bar | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Full text search in tabbed console windows | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Context-sensitive help for all commands and variables | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
32-bit and 64-bit versions | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Display Speed | Take Command | Mintty |
dir /s c:\windows (in seconds) – Windows console: 38.5 | 19.5 | 17.8 |
Command Prompt | Take Command | Mintty |
GUI IDE w/ batch file debugger | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Aliases (command and directory) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Regular Expressions in filenames | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Wildcards in pathnames and/or filenames | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Enhanced command line editor | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Enhanced filename completion | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
GDirectory Navigation | ![]() ![]() | |
ANSI X3.64 text output | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Built in batch file editor | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Direct FTP / HTTP file access (including SSL & SSH) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Network file system access (OpenAFS) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Active Scripting (Perl, Python, VBSscript, Javascript) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Scripting Language | Take Command | Mintty |
Internal Commands | 182 | 0 * |
Internal Variables | 177 | 0 * |
Internal Functions | 291 | 0 * |
*Mintty doesn’t include a command interpreter.
Take Command is slightly slower than Mintty in displaying text output (though it is still twice as fast as the standard Windows console). But unlike Mintty, Take Command supports all console applications, including those that write directly to the screen, use colors, or which have interactive input.
The only area where Take Command doesn’t match or exceed Mintty’s features is in the Xterm terminal emulation. Take Command does have internal ANSI (VT100) support, but Mintty adds Xterm and vt220 support. (This wouldn’t be too difficult to add to Take Command, though thus far nobody has ever asked for anything beyond the existing ANSI output.)
Next time: Comparing Take Command and Console.
I’d be interested to see the open source iTerm2 for OSX added to the list.
It now has built in integration with Tmux; triggers based on console output regexp matches; silly coprocess stuff (http://www.iterm2.com/coprocesses.html#/section/home); visor style system hot-key drop downs, and more more more. http://www.iterm2.com/#/section/features/instant_replay
I think it’s somewhat inappropriate to compare TCC to apps like MinTTY as they – more or less – provide a “Terminal” replacement. You wouldn’t compare bash with Terminal either. What about a comparison with TCC and zsh?
I agree — but I’m not comparing TCC and MinTTY, I’m comparing Take Command and MinTTY, which both replace the Windows console interface.
After doing the Take Command / MinTTY / Console / PowerCMD / PromptPal / Terminal / Konsole / iTerm2 / etc. comparisons, I intend to do another series comparing TCC to other command processors (CMD, PowerShell, bash, tcsh, zsh, etc.).
I will add iTerm2 to the list. I hadn’t heard about it before; it does look interesting (though unfortunately some of its features aren’t doable in Windows).
You say that Mintty does not have Cut and Paste block and/or line selection. I am running mintty 1.0.3, which does have Cut and Paste block and/or line selection. The man page says;
Copy & paste
Screen contents can be selected by holding down the left mouse button
and dragging the mouse. If Alt is held down before the left mouse but?
ton, a rectangular block instead of whole lines will be selected. The
selection can be extended by holding down Shift while left-clicking.
Double-clicking or triple-clicking selects a whole word or line,
whereby word selection includes special characters that commonly appear
in file names and URLs.
The man page has more on Copy & Paste.
While Take Command also does this, with use of Ctrl instead of Alt, thought that I would just point this out.
You’re correct about the current Mintty and block and/or line selection; I’ve corrected that in the comparison table.