Mac OS X terminal emulation notes

Introduction

I've been having a very difficult time finding a terminal emulator in OS X that is on par with Eterm in Gentoo Linux -- what I was using last before switching. (Don't get me wrong -- some do have nice new features that I might like someday -- but they aren't what I need right now.)

This page is intended as a primer for my problems with the current state of OS X terminal emulation; I'll give it to anyone to read before they start suggesting solutions. I'm only going to list things that I know annoy _me_ (enough to write this page), and not a complete buglist or potential-annoyance-list.

So, without further ado, the issues:

Terminal.app

The emulator that comes with OS X. Can do focus-follows-mouse in 10.3.9 but not 10.4.x? (update: seems to be working in 10.5.5 after following these instructions again)

iTerm(.app)

The most popular emulator, behind Terminal.app. Can do focus-follows-mouse.

xterm in X11.app

The de facto standard X11 terminal emulator, withstanding the test of time. With enough tweaking, it's actually pretty good.

rxvt in X11.app

Keltor from freenode #irssi suggested I try this instead of xterm. They also suggested mxterm, but that looks old, and I can't find the latest version online or in Darwin Ports.

Eterm in X11.app

My favorite in Gentoo. Transparency/translucency is fake and probably won't work at all in OS X, but I don't care about that anymore -- I care more about things like deselect-on-output[4] being fixed.

PuTTY

SecureCRT


[1] a.k.a. if you do ls -lR / intentionally or by accident, be prepared to wait until you can do anything. Jump scroll might solve this somewhat, so let me know if you know of a way to turn it on (assuming it's not enabled by default). It may not be a complete solution if it doesn't fix the general latency issue (I've noticed that some terminal emulators have noticable time-to-first-character differences; I haven't measured it, but it feels like 20ms at least. See also: PuTTY vs. SecureCRT [where the latter seems faster -- and also non-free].)

[2] With small fonts, I prefer bright colors over bold text. A good terminal emulator should support 16 ANSI colors (if not the extended set of 256). To see how bad it looks in e.g. Terminal.app with Monaco 9, try this: echo '^[[1mm^[[0m' (use ctrl-V ESC to input each ^[) -- it should output a white blob which is actually supposed to be a bold/bright "m".

[3] The most usable monospaced TTF font I've found remains Monaco 9, and that's not as good as 6x10 (though roughly the same size?). (I've also tried some of the Proggy Fonts, and while I was really excited to find these, they look too weird to me for now. Maybe I'd get used to it, I don't know. Someone on freenode #irssi really likes them -- he uses -windows-proggyclean-medium-r-normal--13-80-96-96-c-70-iso8859-1 with rxvt.) UPDATE: dalius from freenode #screen suggests the Terminus font; this looks pretty good. Also see this StackOverflow post.

[4] Deselect-on-output makes it impossible to e.g. select URLs from a busy chat window -- or select any kind of text from anything that scrolls or updates, really.

[5] It'd be nice to be able to double-click or cmd-click (or something) on URLs to open them. Since I'm on a Mac, I should be able to do that, right? Check out ICeCoffEE, by the way -- it works on Intel Macs, now (thanks to Chris for the note). (Update 2007-12-04: not working on Leopard yet. Update 2009-02-01: 1.5b4 works on Leopard)

[6] This is a X11.app issue. The cutbuffer is not synchronized with the OS X clipboard. autocutsel is not the apparent solution. OS X -> X11 is automatic, but X11 -> OS X requires command-C. Even more interestingly, it seems that if your text gets deselected after pressing command-C but before switching to e.g. Firefox, it won't actually get into the OS X clipboard -- aggravating [4].

[7] When you double-click on a URL, for example, you should be able to select the whole URL including the : / . ~ % etc. characters. In good emulators, you can change what is considered part of the word. Some emulators (PuTTY comes to mind) let you define multiple character classes, allowing even greater control.

[8] Selecting text should invert the text and background colors underneath, IMHO. If only the background color is changed, then it may clash too much with the tex on top and become unreadable.

[9] Most emulators let you tune the color mappings. One that I always have trouble with is dark blue -- it's too dark on a black background.

[10] You should be able to select text and have it be automatically copied to the cutbuffer/clipboard without pressing command-C.

[A] BTW... anyone know how to get X11.app to see newly-installed pcf fonts, without restarting? I already regenerated fonts.dir.

[B] SSHKeychain.app is a great companion to any of these terminal emulators. There's others, but SSHKeychain seems the least flawed. (Let me know if you disagree.) Note: I haven't gotten SSHKeychain to work with DSA keys yet. Note2: Leopard has an SSH agent built in, obviating the need for SSHKeychain.

[C] Open Terminal Here is also good, although I'd rather have a context menu item for it. Along those lines, try Terminal Here or iTerm Here. I believe both are PPC-only as of this writing, but source is provided for Terminal Here, so you should be able to recompile it.


See also


$Id: terminal.html 727 2007-11-11 12:55:48Z tristan $