Pimp Da Kitty
I have been converted. After having preferred Windows on the desktop for the past 15 years, after six generations of
Yet Another Way To Screw Up The Control Panel,™
I felt the urge to try something else. Something thatJust Works.™
Those fifteen years were an interesting ride but for some reason the pride and satisfaction of finding just the right combination of registry settings that would let me mount a Samba share had worn off. I want to spend my time on something creative. Defragmenting the registry, scanning regularly for malware, and trying to find anti-virus software that doesn't take five minutes to load is fun and all, but how about an operating system that doesn't need any of that? You guessed right, I have become a Mac user. Enough of the trivialities, in this article I would like to list a handful of very useful Mac OS X applications and utilities I couldn't live without anymore. Some of them are shareware, some freeware and some open source.
MacPorts
First and foremost, there is MacPorts. It is a package manager for Mac OS X that opens the gate to the world of open source Unix applications. Type
sudo port install lighttpd
and 2 minutes later you have the web server that powers YouTube on your Mac. There *are* a two gotchas: Fristly, MacPorts requires XCode to be installed - a free but rather huge download of Apple's Developer Connection site requiring registration. Secondly it installs packages by downloading the source and compiling it on your box. Although this takes orders of magnitude longer than extracting a tarball with binaries, it does have certain advantages. Updated ports (the MacPort lingo for a package) can be released quickly when there is no need to distribute any binaries. It also allows the user to enable or disable certain features per port just like with Gentoo's use flags (in fact both MacPorts and Gentoo Linux are descendants of FreeBSD's Ports system). I also think that a source-based package manager is both more flexible and robust than its binary opponent because compile/link time dependencies are generally less rigid and brittle than the runtime dependencies between an exectuable and its shared libraries.
Witch
Witch by Many Tricks is a replacement for the built-in Mac OS X ⌘⇥ (command tab) task switcher. It displays the window titles along with icons, unlike the built-in ⌘⇥ optionally includes hidden windows, optionally groups windows by application, sorts windows by title or activation order and many more. I bought a license (it's free but there is mild nagging) because I love using it. I have two complaints though: at times, Witch is a bit slow because it has to wait for each window to return its title before it can display the task switcher UI. If the system is busy, this may take a couple of seconds (rarely longer) causing an annoying delay. I can't believe there aren't any workarounds (think threads, timeouts, placeholder titles, ...). The other complaint is that it can't be set to the ⌘⇥ hotkey because that is apparently hard-wired to the built-in switcher. My brain having just undergone a major rewiring of hotkey bindings from Windows to Mac OS X this would have been a show stopper for me. Luckily APE and PullTab (the former being a requirement of the latter) do the trick of letting you override the ⌘⇥ binding.
Quicksilver
This one is a little harder ro decsribe. Think command line gone graphical. Think Spotlight on steroids. In fact, if you use Spotlight a lot, Blacktree's Quicksilver might just be for you. It cataloguizes certain aspects of your computer like installed Applications, commands previously entered in Terminal, the Spotlight index, etc. in the background and after a hotkey is pressed pops up a GUI that lets you search the catalog with type-ahead and smart auto-completion. You then either hit return to perform the default action (usually Open) on the selected item or ⇥ to do another assisted search for available actions. I exclusively use Quicksilver for launching programs and keep no aliases in the dock in order to maximize the available dock space for showing running applications.
Nocturne
Another gem by Blacktree, Nocturne, inverts your screen colors such that most of your srceen is displayed in white on black. This is great for working in the dark and is a good match for the MacBook Pro's backlit keyboard. There is no noticable performance penalty and it even has an experimental mode for inverting the screen while maintaining the hue of colored elements.
SynergyKM
Although SynergyKM hasn't been actively maintained for a while now, it still works well under Leopard. SynergyKM is a graphical user interface for (and port of) the Synergy virtual KVM. A KVM lets you use one mouse and keyboard to control more than one computer. A KVM really is nothing more than central, multiplexing switch with wires going from it to every connected computer. They can be crude (a $20 two-way mechanical switch for sharing one mouse and keyboard with two computers) or very elaborate: hotkey-controlled sharing of a mouse, a keyboard, screen, speakers and printers by hundreds of computers. Synergy does most of that for free and in software without the need for additional wiring as it uses the computer's network connection. The computer whose keyboard and mouse are shared becomes the server and all other computers are clients. When you move the server's mouse off an edge of the server's screen, mouse movements and keyboard input are redirected to the client that is configured for that screen edge. It's just as if all computers running Synergy were one big computer (hence the name) with multiple displays attached to it. Synergy also unifies the clipboard of all computers, something a hardware KVM can't do. You can copy text on one computer and paste it into another one. Synergy has been ported to Windows, Linux and Mac OS X. The screen links between the connected computers are controlled through a text file with a somewhat convoluted syntax and only the Windows version of Synergy has a graphical user interface for configuring screen links. This where SynergyKVM comes in, it's a System Preference pane for Mac OS X that assists in running Synergy as a server or a client and in setting up screen links. It has support for Bonjour but I haven't played with that yet. Command line fetishists will be please to hear that there also is a MacPort for Synergy (not SynergyKM).
KeePassX
KeePassX is a GTK2 and Cocoa port of Keepass, my favorite password manager for Windows. I am still pondering the idea of switching to Mac OS X's native keychain and or maybe additionally 1Password but for now KeePassX is fine. It can open the password files written by its Windows cousin and vice versa which is why I initially went for it.
Zooom/2 and Window Wrangler
These two make moving and resizing windows a breeze. Zooom/2 (trialware) is from a different source than Window Wrangler ($5 donation), yet the two play nice together. The former lets you move and size windows anywhere in the window using the mouse while holding a configurable combination of modifer keys. The latter lets you move and size windows using only keyboard keys. I have set Zooom/2 to use ⌃⌥⌘ as a modifer for moving and ⌃⌘ for sizing windows with Zooom/2. Similarly, I use the cursor keys together with ⌃⌥⌘ for moving and ⌃⌘ for sizing windows with Window Wrangler. On my MBP, the ⌃⌥⌘ keys are located next to each other in a single row such that the middle finger of my left hand makes the difference between sizing and moving. My right hand is free to use either the trackpad or the cursor keys to perform the motion. A few neat little details: Witch lets you choose a shortcut for maximizing the top-most window and I set it to ⌃Z⌘. The Z key right above the ⌥ key, making it an intuitive left-handed combination, especially as there doesn't seem to be a built-in shortcut for this frequently used function (I maximize most of my applications).
SSHKeychain
If you use SSH a lot, SSHKeychain is for you. It loads you SSH private keys automatially when it starts and optionally stores the passphrases to those keys in your keychain. You don't need to load keys manually anymore and you won't have to ⌃C out of ssh if you forgot to run the agent and load your keys before invoking ssh. Obviously, this convenience comes at a price. If you enabled the option to store passphrases in your keychain and you keep your keychain unlocked permanently, someone getting physical access to your computer will be able to use your primary keys. Therefore, SSHKeychain by default removes the keys and locks the keychain upon certain events such as the activation of the screensaver or the computer entering sleep mode.
Adium
There is not much to say about Adium as you probably already have it. It is the most widely used chat client for Mac OS X. Everyone I know that owns a Mac uses it. It supports just about every protocol there is.
Growl
Another must have, Growl is the standard notifcation agent for Mac OS X. The Growl website has a list of applications that can send notifications to Growl. When receiving an event display a popup window in a screen corner of your choice. The popup window disappears automatically after a configurable timeout unless you click it in which case it will execute an application-specific action that relates to the messages. My biggest grief with Growl is that disabling notifications for a subset of an application's events is a bit tedious. An application can be disabled at a global level but if you want notifications for only one out of 20 event types for an application you would have to perform three mouse clicks per event totalling to 57 mouse clicks. There has to be a better way. Otherwise, Growl is very useful.