Muffinresearch Labs by Stuart Colville

Alternatives to terminal.app on mac OSX | Comments (18)

Posted in Apple on 23rd May 2006, 1:48 pm by Stuart

My new job at Multimap involves plenty of command line work and as I am working on a mac 100%, it’s been well worth trying to find a set-up that makes it easy to switch between shells on multiple servers and directories.

Initially I thought it would make sense to look at a terminal replacement that supported tabs so I could tab between my different connections and the first app I tried out was terminator.

Terminator

Terminator screenshot
Terminator is a java based terminal emulator that has the useful addition of tab support. Being a java app it takes a while to load up , and it’s lacking in a few of the features (like bookmarks) compared to it’s closest equivalent iTerm but it doesn’t seem to suffer from the same slowdown. It has UTF-8 support, allows drag and drop and best of all is released under the GPL. Being written in Java it will run on pretty much any posix environment, even windows (providing you’ve installed Cygwin).

The biggest downside with Terminator is that in-use it screwed up the colors of my BASH terminal and came up with some errors when trying to edit an html file with vim.

iTerm

iTerm screenshot
iTerm is another tabbed terminal replacement with plenty of configuration options, the most useful being that you can specify bookmarks which can run a command when opened. These bookmarks can be opened into a new tab so it makes it very easy to open a new tab for each connection. The only problem I had with iTerm was that it slowed down in the course of using it and becomes so slow that it was almost unusable. This is a shame as without the slowdown this would be worthy of a place on my most frequently used apps list. To counter the slowdown I tried reducing the scrollback and turned off every feature that I didn’t need but this didn’t help. On iTerms’s website there is a FAQ question that mentions the slowness but the response is to try the latest version. I was of course running the latest version but this is a indication that the developers are working hard to make iTerm faster with every release so it’s definitely worth keeping an eye on.

mrxvt

mrxvt screenshot
One criteria I had if i was going to replace apple’s terminal was that the replacement should be faster than terminal if anything. With that in mind I decided to look at running something inside of X11. This is certainly the more geeky approach as it involves installing the Apple developer tools to be able to compile apps on your particular machine. In addition to this you need to have installed X11 itself. If it’s already installed it should be found in the utilities directory of applications. You can download earlier versions from apple’s website or if you are running Tiger X11 can be found on the installation DVD. Once X is up and running, the next step is to download the source for mrxvt from sourceforge. Once you have unpacked the source you need to do is run in the newly unpacked mrxvt source directory:

./configure --enable-everything --disable-debug

make 

make install

Once this is complete the mrxvt binary has been installed to /usr/local/bin. To run mrxvt you need to invoke X11 and run it under X. X11 also allows you to put a link to the mrxvt under the X11 application menu. This makes it easier to run mrxvt when X11 is open. If you are really into using mrxvt then you can create an app from applescript that will invoke X11 and launch mrxvt all in one hit. Here’s my mrxvt starter app to get you started.

mrxvt is incredibly fast and this could be a useful set-up for many, though I found I had a few foibles with it. If like me you are working with several apps at once you can’t command+tab between those apps and mrxvt. What you have to do is switch to X11 and then focus mrxvt by pressing command+n where n is the number of the window in x. This is a massive pain in the neck and if anyone knows of any useful wrappers for X11 so that you can get round this please let me know and I’ll update this article.

Another minor annoyance is that to change the setting for mrxvt you have to edit a configuration file (here’s my .mrxvtrc file as an example). However, that’s to be expected given the origins of this app. It’s also worth noting that the latest version is supposed to have included Utf-8 support whereas the previous version 0.4.2 didn’t. Also version 0.5.0 boasts several other enhancements over the previous version so it is worth checking out. I must say that on my G4 powerbook I had problems compiling version 0.5.0 so if you get any joy compiling it on a G4 please contact me.

GLTerm

GLterm screenshot
GLTerm is a single window, lightweight terminal written in C++. It’s superfast because it use OpenGL to render X11 .bdf fonts. By not using mac fonts or providing glitz like anti-aliasing or transparency massively helps performance. It’s certainly worth considering as long as you don’t need tabs and you don’t mind paying $10. As this is a shareware release, naturally when un-registered, a nag screen appears from time to time. One downside with GLterm is that it doesn’t support unicode so if that’s a requirement for you then this may be one to avoid.

Screen

GNU Screen screenshot
GNU Screen is a command line program that takes control of your terminal so that you can simultaneously run several different sessions inside of your shell. To start screen type simply ’screen’. Once you have launched screen and dismissed the startup display you can open new terminal ’screens’ with a special keystroke. This keystroke is ‘ctrl+a’. To create a new window press ‘ctrl+a c’. To switch between the opened windows there you either can use the id of the window ‘ctrl+a 0′, ‘ctrl+a 1′ etc. You can also view a list of all open screens by pressing ctrl+a “. This is a very useful app but takes a bit of getting used to. If you don’t like tabs but would like to run several sessions at once then this could be the best solution. There’s far too much to screen to be able to cover every facet of it here, but if you would like a solid overview check out Johnathan McPherson’s article; ‘GNU Screen’.

Conclusion

Whilst all of these alternatives have something extra to offer since trying them all out I have decided to stick with Terminal. I realised that tabs were not the answer and I could be just as productive using screen or command+` to switch between terminal windows. Speed isn’t so much of an issue but GLterm is definitely faster. If it was free then I may have switched over to using that for an extended test, but it doesn’t offer enough of a advantage for me over terminal for what I am doing.

To make it easier to distinguish between which server I am on I have written a special .bashrc file that gives me different colour prompts for different servers. I will write that up in a future article. So indeed, Terminal it is for now!

Post Tools

Comments: Add yours

1. On May 23rd, 2006 at 5:57 pm Andy Hume said:

And your conclusion was?

Terminal, right? ;)

2. On May 24th, 2006 at 8:51 am Stuart Colville said:

@Andy: Good point, see the update above!

3. On May 25th, 2006 at 3:54 pm Shane Shepherd said:

@Stuart - Thanks for the overview. I came to the same conclusion myself.

4. On May 26th, 2006 at 2:49 pm John McKerrell said:

Screen all the way! Wonderful piece of kit especially when you really get used to it. You can “name” a screen session using screen -S so that if you have multiple screen sessions running at once on a machine you can find them easily with screen -r project1, screen -r project2. I’ve also got it updating the titles of the screens within a session with my current working directory, or current file open in vi so when I do ctrl+a ” I get a handy list of:

1 /projects/project1
2 src/foo/bar.js

Don’t forget that you also get the benefit of screen continuing to run in the background if you lose your connection to the server, a real godsend.

5. On May 26th, 2006 at 4:17 pm Lyle said:

I hope you’re using JellyfiSSH to make logging in to other machines quicker. I use it even to open local terminals, because it lets you set display characteristics in the bookmarks.

Nice review, BTW! Saved me from going through the drill again, as I’d done the same research a few months ago, and (obviously) reached the same conclusion.

Thanks!

6. On May 26th, 2006 at 4:48 pm Stuart Colville said:

@Lyle: I’d never heard of jellyfiSSH until you mentioned it. I actually use aliases in my .bash_profile to speed up ssh connections and I find this works fine. I’ll be covering this in an up-coming post in-case it’s useful.

7. On June 1st, 2006 at 4:23 pm Jordan T. Cox said:

Regarding the iTerm slowness… the solution to the problem of slowness is to NOT use the latest version. The latest version adds something the reduced performance riduclously by around 300%. When I can type faster than the characters can appear there’s something wrong. Hopefully you don’t have an Intel based Mac.

iTerm is what I use. It has tabs, supports keyboard shortcuts, and has great speed - if you don’t use the latest version. Good luck in finding a Terminal emulator that’s better than Terminal.app! If you find something better than iTerm (after you’ve tried the not-latest version) please update this thread!

8. On June 1st, 2006 at 4:26 pm Stuart Colville said:

@Jordan: What’s the specific version of iTerm that you are using?

9. On June 2nd, 2006 at 3:49 pm Jordan T. Cox said:

@Stuart: 0.8.0 running on a PPC mac mini. I know that 0.8.0 has speed issues on Intel based machines, so you’re still out of luck if you’ve got one of those.

10. On June 15th, 2006 at 4:56 pm Khalid Hanif said:

Pressing Command + left/right arrows will cycle through all your active Terminal windows - handy if you have several open like I do most times.

Khalid

11. On June 24th, 2006 at 5:06 pm Chip Seraphine said:

I’m using 0.8.2, which was released just a few days ago, on my intel-based MacBook. No performance problems yet!

The only thing I really find myself missing about Terminal is the ability to ’split’ the vertical space so that I can refer to something in my scrollback buffer while typing at the bottom of it. (That’s really handy for complex shell commands, SQL queries, etc.)

12. On July 3rd, 2006 at 6:58 pm CraHan said:

0.8.2 was released at the beginning of 2006. Sourceforge has it tagged as 2006-02-21 17:22.

13. On July 27th, 2006 at 11:47 am Andreas Schweizer said:

Thanks for this overview of different Terminals. Saved me a lot of time to search all those replacements for Terminal and testing them and finally ending up using Terminal as I already do.
One handy helper might be where you can setup different profiles (title, colors, initial command) for each Terminal window. Supports as many profiles as you like and its freeware.

14. On May 25th, 2007 at 2:08 pm tom said:

I’m also using the terminal app but I’m having problems because the terminal app doesn’t seem to support keys like Home or End keys.

How do you deal with these issues?

thanks,
Tom

15. On May 25th, 2007 at 2:45 pm Stuart Colville said:

@tom: Set terminal prefs so that option(alt) + click will position the cursor. This is found in window setting / Emulation

16. On October 5th, 2007 at 1:03 pm Matt Rozz said:

I am a Linux -> Mac user, so I’m in search of less “pretty” and more “function” in most apps. I love the whole Mac experience, but the keyboard configuration, along with the lack of ability to change it, is driving me nutz.

I am completely satisfied with iTerm. Tabs, keybaord shortcuts work well, and… the “Home” key takes me to the beginning of the command I’m typing!

17. On May 12th, 2008 at 9:54 am Tim Hunter said:

How can you stand the lack of copy-on-select with Terminal? It’s driven me to iTerm, which is driving me nuts with intermittent crashing and allowing me to accidentally quit with command-Q.

18. On July 25th, 2008 at 3:00 am JetteroHeller said:

I was hoping that you were going to come up with a better alternative than Terminal! I spend most of my time on a Linux workstation with KDE4’s great Konsole app, and am so used to being able to deal with split screens and tabs, that it just hurts having to work on the Mac, which is my laptop.

Man, do I wish there was a way to run either konsole or gnome-terminal under OSX!







XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Inspiring a Sense of Ownership|(0)

Former colleague Mike West talks about how inspiring a team’s sense of ownership around a project is the key to great things happening: http://mikewest.org/2008/11/the-inspiration-of-ownership. Quality stuff.

VMware Server: Convert Fixed Disk-images to Growable|(0)

Quick tip if you ever want to convert from a fixed disk image to an expandable one then the following command should do it:

sudo vmware-vdiskmanager -r source.vmdk -t 0 expandable.vmdk

Just replace “source” and “expandable” with your disk image file names. For more on what vmware-vdiskmanager can do for you type vmware-vdiskmanager -h

Photos on Flickr

© Copyright 2004-08 Stuart Colville, all rights reserved. May contain traces of Muffin. Powered by WordPress. Hosting by 1&1 This page was baked in 1.155s.