Although Steve Jobs didn't mention it in his Macworld keynote yesterday, Apple announced its own implementation of the X Window System for OS X that runs alongside Aqua: X11.

X11 is based on XFree86 and is integrated with Quartz, giving it a powerful advantage over similar projects like OroborOSX and XDarwin. X11 is easy to install, launches quickly and looks beautiful. Windows are interlaced with Aqua and can even be minimized to the dock.

Several X11 packages are available at OpenDarwin including GTK+, Qt, and The GIMP.

Virtual Desktops

Many window managers and graphical environments provide "virtual desktops" which allow the user to spread open windows out among multiple virtual workspaces. The user can then switch from one workspace, or desktop, to another with only one or two windows open on each one. This feature is a luxury that quickly becomes a necessity once you've used it for a while.

Unfortunately, Aqua does not have native support for virtual desktops, making the transition from an X11 window manager such as WindowMaker more painful than necessary. Fortunately, there are a couple of third-party virtual desktop applications.

Space.app is an open source virtual workspace implementation distributed free of charge under the terms of the QPL. It has limited functionality and although it has potential, it is not quite ready for prime-time IMHO.

I've settled on CodeTek's VirtualDesktop although it is closed source and commercial software. VirtualDesktop has all the features you could ask for including a transparent, skinnable pager that has mini-window representations of the open windows on each desktop. For me, the key feature is the ability to bind hotkeys to jump directly to a specific workspace. It is also possible to bind a hotkey to hide all desktop icons. Clear that virtual clutter!

Posted by jlh at 12:19 PM | Comments (0)
Magical Macintosh Key Sequences

As you may have guessed by reading some of my previous entries, I am obsessed with keyboard shortcuts. Dave Polaschek has compiled a table of many useful key sequences for the mac.

Posted by jlh at 01:05 PM | Comments (0)
Why Unix Matters to Mac OS X

Many Mac programmers are using Unix for the first time now that it's available on Mac OS X. Many Unix programmers are using the Mac for the first time now that their favorite tools are available on the platform.

In his stellar article on O'Reilly's MacDevCenter entitled Why Unix Matters to Mac OS X, Daniel H. Steinberg discusses the special relationship between OS X and Unix by summarising the O'Reilly Mac OS X Conference keynote speeches by two well-respected members of the Unix and open source communities.

Tim O'Reilly talked about three stages of technology evolution and "urged Mac developers to think about the architecture philosophy of Unix." Jordan Hubbard provided a brief history of Unix and explained the benefits that OS X brings to the Unix community (why OS X matters to Unix!).

Posted by jlh at 01:19 PM | Comments (0)
Ti's backpack

Spire makes a great computer bag designed with the Titanium in mind: the Icon Daypack. I've had mine about a week, and yesterday I noticed a small hole in the seam where the zipper is sewed on. So I went to the site and found a link to live customer support. I logged on and chatted with a friendly Spire employee who heard my story and quickly told me a replacement bag is on the way. Service!

Posted by jlh at 11:46 AM | Comments (0)
Desktop screensaver

Mac OS X Hints has an article which explains how to run a screensave module as your desktop wallpaper! Just open Terminal (Applications:Utilities:Terminal) and type the following (make sure to remove the line break):

Contents/MacOS/ScreenSaverEngine -background

This launches your currently selected screensaver. To explicitly select a different one, use -module:

Contents/MacOS/ScreenSaverEngine -background -module Flurry

Posted by jlh at 12:18 PM | Comments (0)
Unix software

One of the factors that sparked my initial interest in OS X is the ability to compile and run the open source applications without which I can't work and play.

Thanks to two extraordinary projects--XDarwin and Fink--I can easily install and run my favorite free software such as gaim, Mutt, GnuCash, Window Maker, GKrellM and The GIMP on Ti.

I'll also be keeping a close eye on the DarwinPorts project.

Posted by jlh at 11:56 AM | Comments (0)
That unused enter key

The problem: to save valuable real estate on the tibook's keyboard, the page up and page down keys are shared by the up and down arrow keys. To page up or down, you have to hold down the function key with one hand and hit the arrow keys (on the opposite end of the keyboard) with the other--not very convenient when one hand is tied up holding a cup of coffee or the tibook itself.

The solution: that unused enter key and DoubleCommand. Using DoubleCommand, I remapped the enter key (located underneath the "." key, two keys to the right of the space bar and conveniently adjacent to the arrow keys) to turn it into another function key. Ah, now I can page down with my right hand as I read Google News while holding my maté gourd in my left hand.

Posted by jlh at 06:44 PM | Comments (0)
Keyboard shortcuts

One of the first things I did after taking the tibook out of the box (after installing Mozilla of course) was figure out how to set up some keyboard shortcuts. In general I loath having to use the mouse; I would much prefer to train my fingers to quickly type arcane key combinations to do things like switch applications or hide a window than waste time fumbling with the mouse/trackpad. :-) What I found:

Youpi key is a flexible automation utility which can run an action based on an event such as a key sequence being pressed. I use it to launch applications from the keyboard and to provide consistent behavior accross all apps for menu items--such as Hide Others, which some applications bind to the Command-h keyboard shortcut, but not all applications bind the shortcut. With Youpi key, it works everywhere.

This page provides useful information, examples and links about customizing key bindings in OS X. As an emacs user, I was delighted to discover that emacs-style bindings can be set Cocoa-wide. This allows me, for example, to use M-c (Option-c) to capitalize a word in any Cocoa application, such as TextEdit and Word. The sample DefaultKeyBinding.dict file is based on the one that comes with Mike Ferris' TextExtras, a great package that "adds cool features to the text handling of all Cocoa applications." This is another must-have if you do any text editing or programming.

Posted by jlh at 05:21 PM | Comments (0)
Welcome, friend.


Today marks a noteworthy milestone in my evolution as a binary machine enthusiast: I received my first Mac. When I arrived at my office this morning the FedEx guy had already delivered the package, which was sitting on my desk waiting to meet me. Please say hello to Ti, my new Titanium PowerBook G4. Stay tuned as I explore the TiBook and Jaguar and record my discoveries here...

Posted by jlh at 11:58 PM | Comments (0)