UPDATED: Terminal Nirvana with TotalTerminal (Snow Leopard, Lion)

August 29, 2011 1 Comment by Ben

It’s been a while since I wrote up how I achieved Terminal Nirvana on Snow Leopard using SIMBL and Visor. Since then, some things have changed:

  • TotalTerminal has replaced Visor
  • Mac OS X Lion has been released

TotalTerminal changes up the way it launches Terminal — instead of being automatically injected via SIMBL, it manually injects the plugin into Terminal.app. Well, I wasn’t going to let this deter me.

Getting back to Nirvana after installing TotalTerminal is not all that bad. Most of the steps haven’t changed from my original post so I will only go into detail about the new steps here.¬†Briefly, here are the steps I followed.

  1. Remove TerminalColours.bundle SIMBL plugin — per the TotalTerminal FAQ, it injects its own version and having TerminalColours.bundle installed creates a conflict. (~/Library/Application\ Support/SIMBL/Plugins)
  2. Fix the Home / End keys (see original post)
  3. Copy Terminal.app to VisorTerminal.app (see original post)
  4. Install TotalTerminal
  5. Modify TotalTerminal to use VisorTerminal.app instead of Terminal.app

That’s right, there’s really only one thing to change, and it’s very simple

TotalTerminal.app has a simple, compiled AppleScript which launches Terminal and injects itself. The compiled file is located at /Applications/TotalTerminal.app/Contents/Resources/Scripts/main.scpt. But, we don’t want the compiled binary version, we want the original so we can make it use VisorTerminal.app.

Fortunately the uncompiled source file is available in the TotalTerminal repo on Github.

Only one change is necessary.

--- TotalTerminal.app/Contents/Resources/Scripts/main.applescript
+++ TotalTerminal.app/Contents/Resources/Scripts/main.applescript
@@ -1,4 +1,4 @@
-tell application "Terminal"
+tell application "VisorTerminal"
        delay 1 -- this delay is important to prevent random "Connection is Invalid -609" AppleScript errors 
                event BATTinit

Once that is done, you just need to compile the script and replace the one that shipped with TotalTerminal.

$ osacompile -o main.scpt main.applescript
$ mv main.scpt /Applications/TotalTerminal.app/Contents/Resources/Scripts

That’s it.

You should be good to go. Put TotalTerminal.app into your user startup applications if you wish (I do), or launch it manually by launching TotalTerminal.app.

Enjoy the restoration of terminal nirvana.

For the lazy…

My modified and compiled main.applescript is available for download.