Apple PowerBook G4 12"

My new 12" PowerBook arrived yesterday. I've been wanting to switch (back) to a PowerBook for a while to have working niceities such as Bluetooth, Firewire, iMovie, Automator, etc. The 15" PowerBook i had before was too big for me to carry around everywhere, so I figured a 12" would be somewhat comparable to my X40.

The first thing I did when it arrived was re-partition it to make a 6GB partition for OpenBSD and reinstall Mac OS on the large partition. I played around in Mac OS and got everything setup, but when I tried to install OpenBSD in its partition, the disklabel was occupying the entire drive space (even though the OpenBSD partition was only 6GB in fdisk) and it decided to format the entire drive. By the time I realized what it was doing it had already screwed everything up.

So I re-partitioned again and setup Mac OS again. I opted to format the Mac partition as "HFS+ (journaled, case-sensitive)" even though lots of things I read told me third party software will break with a case-sensitive filesystem. So far the only thing I've run into that might be related to this is StuffIt Expander crashes on startup. Oh well.

I haven't tried to reinstall OpenBSD again because I'm now comfortable in Mac OS. Tt took some work though:

  1. Enable security settings (System Preferences -> Security) such as "Require password to wake this computer from sleep or screen saver", "disable automatic login", and "use secure virtual memory"
  2. Change login screen (System Preferences -> Accounts -> Login options) to display only name and password fields
  3. Change my default shell to tcsh (why/when did Apple switch from tcsh to bash?)
  4. Enable sshd (System Preferences -> Sharing -> Enable "remote login")
  5. Remove most of the silly apps from the dock, add X11, change the dock size to something smaller and make it automatically hide
  6. Disable Dashboard (Terminal -> defaults write mcx-disabled -boolean YES, remove from dock
  7. Turn off Bluetooth for increased paranoia

Something I never tried during my previous Mac OS usage was running X11 in root-less mode and using a window manager to keep xterms running, as opposed to keeping a bunch of terminal apps open (Mac OS terminal sucks, as do most of the alternatives). some essential apps i have running now:

  • Xcode (all ~700 megs of it) for GCC and CVS
  • Firefox 1.5 beta is looking nice; Safari is nice but I'm comfortable with Firefox and need a few extensions:
  • sshkeychain to store my SSH private key passphrase in keychain, as well as automatically establish and maintain an SSH tunnel to my server that acts as my anonymizing web proxy
  • Desktop Manager for virtual workspaces with some pretty workspace-switching animation (can do cube-rotating like the fast-user switching, sliding, fading, etc.), though it doesn't re-focus the X11 app when switching back to that workspace for some reason, works fine on all other apps on other workspaces; I have keys bound to make Apple+1 go to workspace 1, Apple+2 to workspace 2, etc.
  • fKeys to turn the Caps Lock key into a Control key
  • startupsound to mute the stupid chime that is made when the machine is first powered on (I still have no idea why Apple doesn't include an easy way to mute this, it's obnoxious in public)

I installed fink but got annoyed with it quickly, so I switched to Darwinports. Although it is TCL based and has a nasty port makefile syntax, it is somewhat usable. It takes things like Fink and Darwinports to make one realize how clean and efficient the OpenBSD ports infrastructure is. Just little things like being able to build ports as an unprivileged user and have make install automatically call out to sudo only where needed. or using real makefiles instead of some TCL look-alike that doesn't really work the same.

The default X11 window manager is quartz-wm which seems lightweight and supports synchronizing the copy-and-paste buffers between Mac OS and X11. Unfortunately, it has a very stupid new window placement policy and just stacks new terminals right on top of each other with plenty of open space on the screen. Worse, its default key bindings to cycle windows cannot be changed.

So of course, back to ratpoison I go, where I am ridiculously efficient in window management.

I quickly made a Darwinports port for ratpoison and included a patch that strips 25 pixels from the top of the screen so that it won't get stuck under the status bar that mac os has at the top.

With ratpoison installed, I setup an .xinitrc file to run it instead of quartz-wm as the window manager. Luckily quartz-wm has an "only-proxy" mode to let another window manager take over but still synchronize copy-and-paste buffers between X11 and Mac OS.

# be quiet
xset b off

# sync copy-and-paste
quartz-wm --only-proxy &

exec /opt/local/bin/ratpoison

For PHP 5 I installed the entropy distribution which includes support for gd and stuff. I will eventually have to recompile it to enable the sybase_ct/mssql extension but for now it can run most of the PHP scripts I need for web development on the laptop.

With ratpoison, virtual desktops, and an ssh agent, I am now back to operating as quickly as I was in OpenBSD and can get work done without having to poke around in GUIs.

Questions or comments?
Please feel free to contact me.