Saturday, December 09, 2006

Mac OS X: Not just Unix with a pretty face

...and I mean that in a bad way.

I was issued a Macbook Pro when I started work, and I've been using it pretty regularly for the past few months. I had a choice of either a Macbook or a Thinkpad, and I chose the former because I hoped that it would be a more "real" Unix than Cygwin under Windows.

And the friction's certainly less than it would be under Cygwin. Just off the top of my head:

  • The OS X filesystem behaves like a real Unix filesystem, so you don't have to remember a mental mapping between native filesystem paths and paths as seen by your *nix applications (as you would under Cygwin).
  • Fink's package management tool more closely resembles apt or yum, and is therefore easier to use, than Cygwin's GUI package browser.
  • Fink includes ports of most big complex *nix software packages, whereas KDE (for example) simply isn't stable under Cygwin yet.
  • Xquartz "rootless" window mode works better than Cygwin's XFree86 (although Reflection X, if you're willing to pay for it, is better than either).

Still, there are a few nagging issues that make OS X distinctly inferior to a native Linux installation:

  • Copy and paste between native ("Aqua") applications and X applications is spotty to nonexistent. Googling reveals at least one tip for working around the problem --- keep xclipboard perpetually open --- but I don't want to keep an extra app open just to make my clipboard work.
  • Option-tab switching among X applications and native OS X applications is broken. The Quartz window manager just doesn't raise X applications to the front when you Command-Tab to them. You have to Command-Tab to X11, and then Command-backquote to cycle among X11 windows. Extremely disruptive to my workflow. Exposé only partly compensates for this problem.
  • I cannot figure out any combination of Xquartz, Xmodmap, System Preferences -> Keyboard, KDE Control Center, and xemacs/init.el settings that makes the Command key behave like Meta in XEmacs and Alt in KDE applications. Through some twiddling, I have managed to map Option to Alt and Command to Meta, but it's pretty annoying to switch between using Option-[key] under Konsole and Command-[key] under XEmacs.
  • There is no insert key, which makes Shift-Insert (a common keyboard shortcut for "Paste") impossible.

Rumor has it that some of the above problems may go away if I install a different X server, but I suspect that doing so will merely cause other things to break.

Anyway, don't get me wrong, the Macbook is a very nice machine: it's fast, it's well-designed (except for the single mouse button and lack of Trackpoint pointing device), it's sturdy, and the UI is pretty. But I was hoping that the Macbook would be strictly superior to Linux on my old Thinkpad --- that I'd have everything I used to have, plus some additional nice stuff --- and that's not the case. My next personal workstation will most likely be a Linux box, like the main workstation in my office at work.


  1. Of course, I'm a Thinkpad bigot, but if money is no object, then it seems that the best setup is dual booting XP and Linux on a Thinkpad, and/or with a VNC Windows image running in your linux partition for when you need to run windows quickly.

    The thinkpads generally have excellent Linux support, and you get the trackpoint and the awesome keyboard.

  2. Actually, my personal machine is a Thinkpad T42 dual-booting Linux and Windows XP. But, of course, dual-booting is itself a form of friction and complexity; you have to cut your hard drive into at least two partitions, and moving data in between Windows and Linux apps remains a headache.

    I was hoping that running one Unix desktop on a Mac would be better than dual-booting. Alas, it's not... at least not yet, anyway.

  3. Just curious; why are you running so many X applications on your Mac? Is it because you are used to them, or because there is no good native Mac substitute? I've found the native Mac builds of GNU Emacs to be fairly usable, but I don't know about XEmacs. It'd be great if Apple just did the work to make X apps play nice with everything else.

  4. I actually don't use that many applications, and I actually believe that the ones I use are mostly better than the alternatives. IMO Konsole, KMail, and XEmacs beat any other client-side software of their kind, free or non-, Mac or non-.

    It's also extremely handy to have a fully functional Konqueror, if only because of the many ioslaves. Try typing man:bash or info:emacs or sftp://localhost into a Konqueror URL bar sometime. Mac users rave about Transmit, but after using KDE for years it seems barbaric to have to download and install a separate application just to do something as simple as securely copy a file between two computers.

    I don't remember all the reasons I stopped using GNU Emacs, but one of the big ones is the broken (lack of) tab-completion for M-! commands. I haven't investigated whether the Cocoa port of XEmacs is stable enough to be my main editor, but truthfully that also seems like a pain that I shouldn't have to deal with. It's so much easier to tell Fink to get XEmacs. Once again, Linux distributions have made me lazy.

  5. Mac users rave about Transmit, but after using KDE for years it seems barbaric to have to download and install a separate application just to do something as simple as securely copy a file between two computers.

    I'm new here and no doubt my needs are different from yours. When I need to copy files between computes I've used SFTP with a shell script and called it a day.

    Like you I'm not real hep on installing (and buying) a whole new application just to copy files.