Decent Terminal Emulation on Mac OS X?
Drawoc Suomynona asks: "After settling into Mac OS X over the last four months, I'm generally impressed. However, due to the sort of development work I do, I spend a great deal of my time in a terminal. Unfortunately for me, decent terminal emulation seems to be one area where Mac OS X is quite lacking. What's your answer to the state of terminal emulation on the Mac?" Drawoc summarizes the currently available offerings and their drawbacks, below.
"Take, for instance, the following options:
- Apple's Terminal is slow (though performance has been better in 10.2.x), doesn't support xterm mousing, and for some reason refuses to send PgUp/PgDn through to any applications running in the terminal (gah!). Sure, transparency is nice, and with some hacking about (when was the last time you had to force "stty erase"?) you can get decent enough color xterm emulation, but... what's with the lack of PgUp/PgDn?
- The open source iTerm is slightly better, but, it's awfully slow (it grabs as much as 30% of the CPU per terminal instance... now imagine a full-screen vim session at 1600x1200... it's utterly unusable). It also neglects to support xterm mouse reporting.
- The closed source GLTerm ($10) is probably the best of the three "native" options, from a certain perspective. It manages to sidestep the CPU usage/UI responsiveness issue by rendering the entire terminal using OpenGL (yes, the characters are actually textures on GL primatives). It supports xterm mouse reporting. However, font choices are limited, it works only on supported video cards, and it has a very annoying "fuzzy text bug" if you set your terminal to the wrong size.
- Finally, you've got xterm :) But, it means you need to run X11 (either XDarwin or Apple's X11) and it doesn't integrate as nicely into the OS X workflow..."
Fink has a handful of terminals ported to OSX. You've still got the issue of having to run X11 though.
http://fink.sourceforge.net/pdb/section.php/x11
Mmmm, -funroll-loops
The TERM environment settings for Terminal.app make a big difference in its behaviour. Normally with Terminal it's useful to have the TERM environment variable be 'xterm-color'. This will enable lots of interesting things, amongst them ANSI color. But, as described, this has it's drawbacks, including the fact that scrollback doesn't work as expected. Sometimes it's useful to launch any apps that need that functionality prefixed with 'TERM=vt100'. I run screen this way( 'TERM=vt100 screen') and it works much better as a result.
Alas, this doesn't affect speed but it does enable improved functionality.
Look into a UNIX utility called screen. I'm not sure if it's included in OS X, but I use it all the time on Debian and OpenBSD and it's wonderful. You can detatch and reattach sessions, so if Terminal crashes, you can just open another one and run screen -R to pick up where you were. It also supports creating multiple windows in the same terminal, and a whole ton of other features that I haven't even tried yet. I've even used it to start a process locally, then ssh in later and automagiclly take control of the process. It should compile without problems on OS X; there might even be binaries available.
There are very few clients (puTTY and Powerterm) on the PC that can handle our product. The Mac situation is much worse. It took me a few months to find an appropriate solution for working with our clients from my Mac. The winners are:
Eterm -free- Get version 0.9 through Fink. It's much faster than Apple's terminal application and is much more configurable.
Here's a shot of a typical Eterm on my machine
DataComet -not free- but worth it. This program is similar to Powerterm on the PC side. It can handle just about any emulation you throw at it. Powerterm and DataComet both include their own font suites which allow for full PC-ANSI emulation, for example. Very comprehensive package. It integrates with the built-in shell and even handles my company's software.
Here's a screenshot of DataComet on my system
Here's a random screenshot.
Note: There is a Powerterm for Mac OSX, but it's fairly expensive, and DataComet performs as well. Hit me up if you have any questions....
Edmund White
http://flickr.com/ewwhite