Decent Terminal Emulation on Mac OS X? 115
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 (Score:5, Informative)
http://fink.sourceforge.net/pdb/section.php/x11 [sourceforge.net]
you could use Rxvt (Score:5, Informative)
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.
iTerm (Score:4, Informative)
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.
rxvt (Score:3, Informative)
As a heavy user of cygwin on a slow desktop PC, I was delighted to see that someone had ported rxvt [rxvt.org] 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
Eterm (Score:4, Informative)
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.
PuTTY (Score:5, Informative)
(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 [debian.org]).
Java Options (Score:3, Informative)
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...
Re:you could use Rxvt (Score:5, Informative)
Re:ANSI color customization (Score:3, Informative)
Terminal crashes and character encoding (Score:5, Informative)
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.)
MacSSH (Score:3, Informative)
I went looking, and the only one that would do decent vt100 emulation was the OS 9 app MacSSH [wanadoo.fr].
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!
Re:Gnome term? (Score:3, Informative)
Re:Terminal crashes and character encoding (Score:3, Informative)
seriously, you can get vim (Vi IMproved) from fink, darwinports, or gentoo soon (console & X11 version).
even better, you can get gvim with a carbon gui at
this site [swdev.org]
I primarily use the carbon gvim now in OS X. I only use my fink version when I log in remotely to my OS X machine. Once you try vim, you will shudder at the memory of using 'vanilla' vi
Re:Gnome term? (Score:3, Informative)
Re:TERM environment variable make a difference (Score:3, Informative)
alias dock='echo -n "[2t"'
alias lower='echo -n "[6t"'
alias raise 'echo -n "[5t"'
Here're [mac.com] some more.
'jfb
My two solutions: DataComet and Eterm....[+] (Score:5, Informative)
There are very few clients (puTTY [greenend.org.uk] and Powerterm [ericom.com]) 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 [eterm.org] -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 [djedwhite.com]
DataComet [databeast.com] -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 [djedwhite.com]
Here's a random screenshot [djedwhite.com].
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....
Point Drawoc to Google? (Score:1, Informative)
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.
Re:you could use Rxvt (Score:4, Informative)
I'd say it was an awesome move. I SSH into a box at work to attach to a screened BitchX session. Can't beat it with a stick.
Have you tried (Score:4, Informative)
Re:TERM environment variable make a difference (Score:2, Informative)
- /usr/share/terminfo/41/Apple_Terminal
works great. Arrows and _PROPER_ vim syntax coloring.And if you were to use teh One True Edit0r [vim.org]
sorry about that. It just sorta came out.
The *Best* terminal I've found.. (Score:1, Informative)
Re:Terminal crashes and character encoding (Score:3, Informative)
I guess what I really want is an editor with the power and flexibility of vi (navigation, REs, editing commands), but with full support for character encodings and proportional fonts. (Yes, for code too. I know, I know, I can hear the screams of "Heresy!" already. But if the code is formatted properly, I find it easier to read in a proportional font, just like English text. I'm surprised no-one else seems to find monospaced text ugly and awkward.)
(* It took me a while to work this out: you hit 'u' for the first undo, but then further 'u's just toggle redo/undo. So what you do is hit 'u' once, and then use '.' (redo) to undo further levels. Probably done that way for backwards compatibility, I guess.)
vttest - VT100 (and more) test suite (Score:3, Informative)
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 [vandyke.com], 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.)
export TERM=ansi (Score:3, Informative)
Re:Terminal crashes and character encoding (Score:3, Informative)
Use undo ('u') again! 'u' toggles between undoing and redoing, and '.' continues undoing or redoing, whatever you last did. It sort of makes sense.
Re:you could use Rxvt (Score:1, Informative)
You can run multiple instances of most OS X apps -- its Unix(like) after all. It's just the Finder, a totally optional application, that prevents it. From your first terminal, enter
%
If you like it, soft link Terminal to
Eric