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..."
Does Gnome term compile with the OS X version of GTK? I was thinking that might be your best route.
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
Installing Linux :D
:D
Well, really, if a unix can't do proper terminal emulation, it shouldn't be called a unix
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
title says it all
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
Here's a screen shot of the NEXTSTEP Terminal.app
http://www.levenez.com/NeXTSTEP/Terminal.jpg
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.
iTerm has given me the one thing that I've found seriously lacking in Terminal.app: configuration of what colors are used to display ANSI "colors". No more screaming yellow or illegible dark blue for me, thanks.
Unfortunately, iTerm does have a few limitations and bugs:
- while the xterm-experienced will like PgUp/PgDown going straight through, and using shift for local scrolling, I'd really like to see this togglable.
- no Home/End functionality, with our without shift.
- no local Find.
- it "helpfully" doesn't include whitespace when copying out of its windows. Actually, I did want that linefeed, thanks.
- periodically decides it wants to just sit and suck all my cpu until I kill it.
- font settings don't stick between launches.
I've also found that Terminal.app's split-window function is surprisingly useful. And unique, in my experience.
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).
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
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...
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.
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?
This is a bit of a departure from the original topic, but since you raised the point, I'll continue with it. If you want "xterm mousing" in a high quality, free terminal app on Windows, and you want a more native-feeling application than a cygwin port of rxvt, you might want to try PuTTY. PuTTY is best known for its solid SSH capabilities, but it can also be used for telnet, rlogin, and raw TCP connections. It is not a truly generic terminal, since it cannot act as a display for arbitrary local programs, but that's very rarely an issue on Windows.
But my grandest creation, as history will tell,
Was Firefrorefiddle, the Fiend of the Fell.
Perhaps you could hack the GNUStep Terminal.app to compile with Cocoa. For those who don't know, GNUStep is a GPL'd implementation of the OpenStep Specification of yore.
I have used ZTerm on Mac OS 9 for a long time to comunicate with a Micro Processor via the Serial Port. I have tried ZTerm for Mac OS X and it is unable to correctly send text files through at full speed.
I was wondering what Serial Terminals for Mac OS X or for Linux people would recommend.
setenv TERM xterm-color
I didn't have to fiddle with stty either.
Yeah, that function of Terminal is odd, and hard to give a description or name, but surprisingly handy. It allows you to simultaneously see and interact with two arbitrary segments of scrollback within a single window.
This facilitates doing a variant on a long series of steps you did a while earlier, comparing previous output of an operation to current output, or just reading deep scrollback without missing new data. It's not a life-changing feature, but it is regularly useful.
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.
I had the same problem on my iBook. After several months of trying to find an usable terminal i decided to dump OS X and install linux.
"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"
Please take a minute and open a bug at bugreport.apple.com.
none Yet.
none Yet.
Oh great, GLTerm was not in the discussion because it was in the article. I guess I should be prepared for more Ask Slashdot's where the author asks a question, and then proceeds to answer it themselves. Whoops.
If you need to connect to a IBM 3270 (and similar mainframes I guess), there's a very nice free client that's running just fine in Mac OS X.
"I tend to think of OS X as Linux with QA and Taste", James Gosling, creator of Java
... is to have a nice complete file. It specifies what shows up when you type [tab].
/etc/SuSEConfig/complete.tcsh file from my SuSE Linux box, it worked straight away.
The basic configuration of tcsh (or your favorite shell) is not very userfriendly in Mac OSX (it only completes when there are no ambiguties). It's soo nice to have an inteligent shell that does half the work for you.
A nice example is when programming, typing "make [tab]" makes the shell search all the possible choices in the Makefile and complete.
I took the
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
The G4 I messed with at the Apple Store had X11 and xterm installed. Just use xterm dude.
Has anyone gotten the arrowkeys to work using python in Terminal.app? All I get is: ^[[A^[[C^[[B^[[D
It is so much easier to prototype code in Python when the arrowkeys are working. I've tried bash and tcsh.
WRQ is the industry leader in Solid Terminal/X/RDP emulations for many years. Their products have been getting better and better over said years.
Check it out.
Dolemite
_________________________
Save the World! Use a Quote!
if you don't need a lot of bells & whisles try NCSA Telnet, still a work in progress. http://www.mactelnet.com/
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.
To hell with tc shell. tcsh has always annoyed the living hell out of me. Get a real shell like Bash. Tab completion in bash is excellent. Even better, look into the Bash Programmable Completion Project. It's quite nice. Skip the csh, tcsh, and kornhole shells. Stick with what works well: bash.
This has driven me crazy for some time now. Is there anyway to get the default jaguar terminal app to save its last window location?
The only fully VT420 compatible terminal client for OS X that I've found (that works perfectly with DEC TPU and similar VMS applications) is dataComet (and dataComet Secure, which provides SSH support). See http://www.databeast.com/ .
It doesn't behave quite the way an OS X program should (the Preferences window is non-standard, for example) but the emulation is excellent.
YMMV.
MacTelnet, despite its name, can run local Unix apps on Mac OS X. It shares much of the same base code as old favorites like MacSSH, so it still has VT100, VT220 and TEK. However it also supports VT52 mode, double-sized text and most XTerm sequences, and has VT220-specific features like floating keypad windows.
:)
I should know, because I am writing its (open-source) code!
"Microsoft killed my company, I hold a personal grudge. I don't use Microsoft products and neither should you."-JWZ
cool!
Hi,
how can store the setting of all the toolbars? I just want to have the plain terminal without anything around, the settings are only for the current window and I do not see any option to disable them forever.
Hmm, as with all others there is no mouse support for stuff like w3m or at least I did not get it running over ssh to a linux box.
Why is it building the scripts menu each time I run mactelnet? The font list caching is nice...
I guess I will get the source later for kicking out the toolbars...
weeeee
Look in Preferences, General, Options for the checkbox to initially hide toolbars. This will be improved in the future.
The rebuild is done each time in case you have new scripts installed. One day I will improve that to cache the modification date or something so that it will not even display the progress bar.
"Microsoft killed my company, I hold a personal grudge. I don't use Microsoft products and neither should you."-JWZ
It's not actually Cmd-~.
It's Cmd-`
Sure, they're on the same key, but shift is required for the tilde.
It's not actually Cmd-~.
It's Cmd-`
Sure, they're on the same key, but shift is required for the tilde.