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
rxvt 2.7.8-2 VT102 emulator for X11
rxvt-ml 2.7.8-2 VT102 emulator for X11 with multi-language support
this too is X windows unfortunately.
personally I actually like apples terminal with one scarey exception: it runs in a single process so if the terminal app crashes you lose ALL of your terminals! yikes.
Some drink at the fountain of knowledge. Others just gargle.
I've been using iTerm lately. The version in CVS seems to fix some of the performance issues, though occasionally it gets screwed up and starts using as much CPU as possible. When I notice that, I start closing remote shells until it gives up the CPU. Its pretty annoying.
Unfortunately, the tabbed interface iTerm has is so compelling to me that I can't switch back to the stock Terminal.app.
I agree with the original poster about X. Running Gnome term or any other X-based terminals isn't great, since X doesn't quite integrate seamlessly with Aqua.
For now I'm sticking with iTerm and checking CVS every so often. Maybe I'll even think about looking at the code.
blog
As a heavy user of cygwin on a slow desktop PC, I was delighted to see that someone had ported rxvt to that environment. It gives quite a lot of the top-class features of xterm, and little of the unnecessary bells, whistles and complete brass, woodwind and percussion sections that come with xterm.
However, for your purposes, it can also be installed and used without X11, as in the case of the cygwin environment.
What's best about rxvt is it supports what you describe as "xterm mousing". This feature alone is why I always stuck with xterm until I discovered rxvt. That rxvt has it is why I won't use any other terminal emulator for a long time into the future.
Mind you, none of this is useful if rxvt hasn't been ported to Mac OS X, but it certainly is worth checking to see if it is.
Ãibhear
If you're a fan of Eterm (I am), you have two options available to you:
Having the latest Eterm running under Apple's X11 is nice, though I still haven't been able to get it to link with imlib2 successfully (note: I am incompetent at this stuff, YMMV) The only porting really required is to change the typedef for socklen_t to int, or include the appropriate header file (sys/socket.h?). Either works.
Good luck.
Random and weird software I've written.
Everyone's favorite SSH/Telnet program for Windows, PuTTY, is a possible future option. A MacOS port is forthcoming. If you're brave, preliminary support is in CVS right now.
(In other Non-MacOS-related PuTTY news, you can also get a PuTTY-based xterm replacement for X if you fancy its emulation better: pterm).
I've been happy with Apple's Terminal.app since 10.2 (export TERM=xterm-color :-)
I know that there are a few Java terminal emulators (check sf.net). I alwyas liked mindterm for ssh connectivity. I know they closed source, but there's a fork out there somewhere from the last open version.
Anyway, could you post a followup to your article when you settle on something - just a comment would be nice.
I wonder if the editors would let you update the article...
click the little widget on the right hand side, just above the scrollbar and below the title bar, and voila.
I hit this one a LOT. It's a real annoyance.
Why, I hear you ask? Well... [fx: takes a deep breath] Most of my text files use the Windows Latin-1 encoding (the same as the default ISO Latin-1, but with curly quotes and other useful control characters in an otherwise-unused range). No problem for the Terminal: you can set the character encoding in Window Settings->Display.
I use the vi editor; you can tell it the character encoding through the $LC_CTYPE environment variable. The only problem is that although Mac OS X comes with several character encodings (in /usr/share/locale), it doesn't come with one for Windows Latin-1 (aka CP1252). So I've created my own (with the mklocale(1) command. I've even submitted the result to Apple in the hope that they might include it with future versions... though I haven't heard anything back.)
So, with both Terminal and vi set to use the right encoding, it all works: I can see all the extended characters, and edit them in the usual way. EXCEPT that there's some bug or incompatibility lurking there. Every so often, when I'm editing in vi, the Terminal will suddenly quit for no reason. It happens often enough to be fairly sure that it's related to the extended characters and to vi - it's never happened when editing plain 7-bit ASCII files, nor when using extended characters in the shell. I suspect it may be related to extended characters appearing at the extreme right or bottom of the screen, and/or to the VTwhatever formatting codes (which I don't really understand).
Since I do a lot of editing, I find Terminal crashes several times a day... MOST annoying. So, if anyone has any idea what might be causing these crashes, or can shed any light on this stuff, please let me know!
(BTW, since Mac OS X 10.2.5, vi has stopped taking any notice of $LC_CTYPE! I'm not certain why, or what's changed, but it's easy to download the vi source from Apple's Darwin page, and recompile with a one-line fix I found to restore that functionality. I've raised a bug report with Apple about this, but - again - haven't heard anything yet.)
Ceterum censeo subscriptionem esse delendam.
I went looking, and the only one that would do decent vt100 emulation was the OS 9 app MacSSH.
We need it to access a VMS machine, and no other term emulators would work as flawlessly as MacSSH. I would LOVE to be proven wrong, if someone can point me to a term app that allows me to use the function keys and the keypad correctly!
What, me worry?
It does -- in fact, the Fink project has it precompiled for you -- but it's really quite slow and suffers from the same workflow diconnectedness as xterm. Stick to xterm if you like OS X X11.
TANSTAAFI: There Ain't No Such Thing As A Free iPod.
I think he meant the native Aqua gtk. I am pretty sure nothing gnome is compiling with this yet. Also, it is only gtk 1.2.x, so no tabbed gnome terminal.
Terminal.app also emulates DEC's tres-cool dtterm. Just set your TERM variable to dtterm. It's a superset of xterm-color functionality, as near as I can tell. As it happens, you can make Terminal.app do all kinds of wacky things with escapes. For instance:
alias dock='echo -n "[2t"'
alias lower='echo -n "[6t"'
alias raise 'echo -n "[5t"'
Here're some more.
'jfb
To spur "enterprise Linux," Big Bang, the distributed two-phase commit.
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
Looks like Drawoc needs to use Google a bit more after reading all the comments.
;) LOL
Actually XDarwin isn't that bad (I run it) and I'm also running (just playing with it) the Apple beta for X11. XDarwin provides a host of opportunities for Term apps and what's this "doesn't fit in the workflow very well" jazz all about? Has he tried it? Not from the sound of it.
Lots of good ideas but I thought I'd stand up for XDarwin. Quite frankly I don't use it much but do run X11 sometimes alongside OSX and OS9, all concurrently.
Personally I use Apple's weak kneed Term app and find it adequate. It sounds to me like ole Drawoc is nitpicking some stuff many (including heavy users) could care less about. Maybe he's wedded to PC habits. The OSX Term app offers some nifty features of its own although Mac interface is obviously limited.
But as long as I can cut/copy/paste to/from it and handle by Griffin Power Mate to scroll it *quickly* (you can program this thing to grill hotdogs I suspect) then maneuvering around is no biggy and I sort of like having four or five Term app windows open and handy in my second monitor.... no CPU usage to speak of and with two G4 1.25 GHz CPUs I'm not used to seeing beach balls when in terminal mode.
none Yet.
- /usr/share/terminfo/41/Apple_Terminal
works great. Arrows and _PROPER_ vim syntax coloring.And if you were to use teh One True Edit0r
sorry about that. It just sorta came out.
QA implies some kind of quality to begin with.
Is GLTerm it is opengl accelerated (woopee), and has support for some popular linux fonts, including ones that actually contain high ascii chars so you can irc in beautiful color.. it's shareware though, but the guy who writes it is really cool, so I shelled out the $20
Of the programs mentioned in this thread that I've looked at, there's not a one that passes all the relevant tests. And Terminal.app does better than most at some of them, like the character set test and Xterm window-modify features.
My favorite terminal emulation program, PC-compatible only alas, is VanDyke's SecureCRT, which does well on vttest and comes with a nice terminal font set. (Luckily I'm at a school with a site license; regular individual price is $99.)
Full screen vim with PgUp/PgDn now work fine for me.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.