projects | github | twitter | rss | 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

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.