now | writings | rss | github | twitter | contact

my mac os x setup

posted to writings on jun 30th, 2009 with tags ipv6, mac, macbook, nerd, and openbsd, last updated on jul 8th, 2009 and commented on seven times

3 years ago, i was using mac os x as my full-time workstation operating system on a 12" aluminum g4 powerbook. i eventually got annoyed at some hardware issues with the powerbook and some software issues with mac os x, which prompted me to switch back to a new thinkpad x40 running openbsd (and then to a thinkpad x200, then random netbooks running openbsd).

a few weeks ago, i purchased a new 13" macbook pro and immediately tried to put openbsd on it; not so much because i'm an openbsd zealot, but more so because i'm so much more productive in it than in anything else and i quickly get fed up when i can't get something done (and can't fix it).

however, after a short while of using openbsd on the macbook, i realized that i wouldn't be too productive on it and deleted the openbsd bootcamp partition. the macbook's broadcom wireless card isn't supported under openbsd and can't be swapped out, and openbsd is still quite far off from working acpi suspend. those two things are pretty important on a laptop, and while i've been used to not having a suspendable laptop since my x40, lack of wireless is crucial. there are a few other things that steered me back towards mac os like lack of accelerated x and having to give up the nicely integrated backlit keyboard, ambient light sensor, trackpad gestures, etc.

i've been using mac os x exclusively for a few weeks now and can confidently say i'm back at my level of productivity that i was with openbsd. the giant trackpad was cause for concern, but after configuring it properly, i'm quite comfortable with it. the two-finger tap for right-click is a huge help, as is the two-finger sliding for scrolling. i leave my thumb on the bottom of the pad where the big mouse button used to be on my powerbook and it feels quite natural. firefox 3.5 has improved scrolling with the two-finger sliding, and gains a three-finger gesture to quickly scroll to the top or bottom of the page. the rewind/pause/play/forward functions on the f7-f9 keys are a welcome change. no more having to use a menubar app to control itunes from another workspace.

as for all of the other tweaks, many of them are the same as what i had to do 4 years ago. not surprisingly, a few things that i needed external software for before are now integrated into mac os, like sshkeychain, turning caps lock into a control key, etc.

  • disable dashboard because i never use it:\

    $ defaults write mcx-disabled -boolean YES
    $ killall Dock
  • disable spotlight and replace it with quicksilver. install address book, clipboard, firefox, ical, and itunes plugins.

  • system settings

    • security
      • require password to wake this computer from sleep or screen saver
      • disable automatic login
      • use secure virtual memory
      • disable remote control infrared receiver
    • accounts
      • login options
        • automatic login: disabled
        • display login window as: name and password
        • disable fast user switching
    • sharing
      • disable everything
      • enable remote login (ssh)
    • trackpad

      • one finger
        • only secondary click on bottom right corner
      • two fingers
        • secondary click
    • keyboard & mouse

      • keyboard modifier keys
        • turn caps lock into a control key
  • use ipartition to convert the disk to case-sensitive hfs+.

  • after freaking out at the outrageous price compared to openbsd's free crypto softraid, reluctantly purchase and install pgp whole disk encryption. encrypt the entire system drive and the usb drive being used for time machine backups. yes, i know about truecrypt but i don't trust it.

  • disable suspend-to-disk which pgp says wde is supposed to do:\

    $ sudo pmset -a hibernatemode 0
  • install apple developer tools.

  • install a newer xquartz that has better clipboard syncing for and doesn't need the proxy.

  • install fink and some basic utilities that the apple developer tools didn't include. i'm not sure what i didn't like about fink before but it's much better now. the dpkg/apt-get system with basic port specification files is much closer to openbsd's ports/packages than the darwinports tcl crap.

  • install ratpoison. i was using my version on openbsd for virtual workspaces but since i'm using mac os' spaces and effectively making all of workspace 1 with ratpoison and just putting other non-x11 apps in other spaces, i don't need virtual workspaces inside of x11/ratpoison.

  • install mutt with some of my little hacks and the sidebar patch. i don't think i'll ever switch away from mutt.

  • setup my imapbiff perl script to run at startup. it uses growl to alert me of new email in certain imap mailboxes when i'm not staring at mutt.

  • install scriptsaver and set it as the screen saver. make scriptsaver run an applescript which pauses itunes if it's playing and run ~/bin/lock which runs ssh-add -D among other things. this makes ssh-agent forget my private key passphrase when i step away. \ \ i experimented with keychain access' settings to automatically lock the keychain after 20 minutes and to lock when sleeping, but found them very annoying. the setting in the system preferences security pane to require the login password to disable the screen saver and my ssh-add -D invocation seem sufficient. the added settings in keychain access end up requiring a password to unlock the screen saver, then the same password again to unlock the keychain, then the ssh key passphrase.

  • install sleepwatcher to run the same script when the machine is suspended (because sleeping doesn't trigger the screensaver).

  • install the awesome icalviewer to put my ical calendars on the desktop. make it display 3 weeks on the desktop, go left, show relative times, show time remaining, disable special events list and todos, and set finish line color to white with an opacity 0 to effectively disable the finish line.

  • install firefox 3.5. safari is fast, but i just have too many add-ons that i need to be productive doing web development.

    • adblock plus - duh
    • add n edit cookies - useful for testing security of web apps
    • cs lite - i'm one of those users that wants to see and confirm/deny every cookie that sites try to send me, so this add-on helps out with that
    • delicious bookmarks
    • firebug - a very nice javascript debugger, but i don't really like anything else about it
    • fission - for in-the-location-bar-progress-bar like safari
    • full screen - why does mac os' firefox still not have this natively?
    • greasemonkey - i like changing things
    • keyconfig - for vi key bindings for navigation
    • pearl crescent page saver basic - for making png's out of long pages
    • refcontrol - to hide my silly google searches
    • selenium ide - disabled, but enabled when i have to automate things in development
    • showip - i like seeing what sites are using ipv6
    • switchproxy tool - for enabling tor when i go on secret missions
    • tamper data - essential for watching ajax requests, http calls inside of flash applets, changing form data to test web app security, etc.
    • web developer - too many tools to list, but lately i've just been enabling its toolbar to see when pages trigger messages in firefox's error console (that aren't specifically javascript errors that firebug can debug)
  • install some other random applications:

    • adium - i had some hacks to pidgin on my openbsd laptop that i might carry over
    • growl with growlnotify from the extras directory on the dmg for command-line growl notifications (like from my imapbiff perl script)
    • iscrobbler because the official app is just awful bloated crap
    • little snitch satisfies my curiosity
    • menucalendarclock just to get the date in menu bar
    • meteorologist sadly makes me visit less
    • perian for the weird xvid or other encoded movie
    • sequel pro is nice for quickly browsing complex mysql schemas
    • smcfancontrol for manually turning up the fan when the wrist pad gets kind of hot
    • vlc to play anything quicktime can't with perian
    • vuze is powerful, it's just such a shame they keep piling all of this crap on top of it; with enough tweaking it can be configured to work like azureus used to

the result of all that is this.

Comments? Contact me via Twitter or e-mail.


Seth Milliken (authentic) on june 30th, 2009 at 22:40:23:

Nice writeup. I noticed you listed keyconfig for vi navigation bindings, but no vimperator. Don't like it? If you haven't looked at it yet, I recommend you don't throw it out until you've at least given hint mode a proper try.

Snow Leopard should make menucalendarclock obsolete. Finally.

Other things you might find useful or at least interesting:

  • Bind Ctrl-Shift-' to "Move focus to the dock" to give you fast typeahead-find app selection. (I still use Quicksilver for general purpose script keybinding, but it seems too slow and buggy these days.)
  • Bind Ctrl-Shift-; to "Move focus to the menu bar" for typeahead-find menu navigation.
  • For All Applications bind Cmd-Option-M to "Minimize" and "Minimize Window" and bind Cmd-M to "Zoom" and "Zoom Window" to give Cmd-M more useful function.
  • If you use Spaces to group apps by task, you might want to bind Cmd-Option-` to "Move focus to the active window or next window" to give you similar functionality to Cmd-`, but lets you cycle through all windows from all apps in the current Space.

joshua (authentic) on july 1st, 2009 at 05:08:10:

seth - i tried vimperator a while back before just going to the vi-navigation keys with keyconfig. i think it was just a matter of not using any of the other vi-like things.

as for the other key commands, i have a hard time forcing my fingers to learn new key commands. by the time i remember which three keys to hold down, it's usually quicker to just keep command+tab'ing until i find what i need. it took me forever to finally learn command+` to cycle between windows of the same app.

that was also my problem with a lot of other tiling window managers. by the time i used some wonky keystroke to try and find some specific window, i could have just cycled through them all to find it. in ratpoison i'm usually just doing control+a,space a bunch of times.

z0mbix (authentic) on june 30th, 2009 at 23:18:39:

Interesting post, thanks. How do you get Firefox to display the favicons on the bookmark toolbar?

Cheers z0mbix

chris (not authenticated) on july 1st, 2009 at 01:06:37:

how did you slap a sidebar to mutt? afaik, mutt doesn't come with a sidebar but there are some patches floating around the net. did you patch yours?

joshua (authentic) on july 1st, 2009 at 05:11:43:

z0mbix - for unix, it just works. on mac os you need the stylish add-on and a style - see

it's basically just bookmarks up there with the name deleted so all you see is the favicon.

chris - it's a popular patch - download here. i still don't understand why the mutt guys won't integrate it, it's been around for years and has to constantly be updated with every new mutt release.

Mike Clark (authentic) on july 1st, 2009 at 07:38:14:

Cool setup, I've been using PGP WDE for a few years now on 90+ laptops and I have to say it is the most stable product ever. I love the self decrypting archives to send to people instead of zipping.

maple (authentic) on july 2nd, 2009 at 10:34:19:

switch from a macbook pro 15" 3,1 to a macbook pro 13" 5,5 today. looked at the x200 and the t400 to run openbsd but i'll have only one computer now and sometimes gotta have the niceties of the mac.

i'd like to hear your impressions on that pgp wde when you get some use out of it.

moving to china in a bit and definitely want to encrypt the drive while im there but would rather use wde over filevault and be nice to have it work with time machine as i see your using.

keep us updated