FreeBSD, KDE, and Me


KDE splash

I’ve been a confirmed Mac Person since at least 1992, when I bought my first PowerBook, if not since 1984, when I first doodled in MacPaint.

But I’ve used a lot of different platforms over the years, from CP/M to MS-DOS to Windows to Classic MacOS to OS X. I play with other operating systems to retain perspective on MacOS’s strengths and weaknesses; to learn things relevant to my work as a web developer; to hedge my bets in case I decide to jump ship someday; and, of course, to waste time in classic geek fashion.

It was mostly in this last vein that I bought a 333MHz Pentium II tower at a yard sale last summer (with CD burner and nice video and sound cards) for $60.

I decided I would install FreeBSD on it, since I was familiar with it from my web work and knew that it shared some genetic material with OS X.  I created boot floppies and did a network install of the latest version of FreeBSD. I kept the box chugging for what seemed like a few days installing package after package from the ports tree. Oo, emacs! Oo, Apache 2!, Oo, PHP 5!

I also wanted to install a desktop environment, not just X Windows and a window manager. I was curious just how good the massive open-source projects like Gnome and KDE had gotten. I wanted to judge for myself how much of a threat to Microsoft open-source really is today.

My perception had been that it was good – but it seemed to involve a lot of posting to web forums asking for advice on recompiling your kernel to get your new sound card to work.

I decided to try KDE partly because it had a fresher version in ports than Gnome;  that kept me inside the happy world of the FreeBSD ports tree while fulfilling my mission of having everything be as bleeding-edge as possible.

KDE installed cleanly, and I was impressed with its performance given the antiquated hardware. I even ran it remotely via Apple’s X11 on my PowerBook. But I didn’t take it much farther than that. The box sat on the shelf, chugging along, not doing much.

My Titanium PowerBook had been exhibiting a nasty freezing tic for a while. I had been toughing it out, and it sucked. I lost unsaved work. I found myself crossing my fingers when rebooting. I developed overcautious, superstitious work habits. Just like the bad old days when I was a magazine designer running classic MacOS.

One day after a particularly inopportune freeze, I closed the PowerBook, put it aside, and dragged the FreeBSD box over to my desk. So began my six-week odyssey.


First, the relevant version numbers: KDE 3.1.4, FreeBSD 5.1-RELEASE, OS X 10.2.8 (before), OS X 10.3.1 (after).

Though I have written this like a review, it is more of a user report – an elaboration on personal notes that I made during and after my experience with FreeBSD and KDE. I was compelled to make these notes because of my interest in operating systems, interface design, and software development. My primary intended audience here is OS X users who share those interests.

My work as a web developer also colors my opinions and was a significant factor in my decision to try this experiment in the first place. If you are a video editor or a typographer my notes may be less relevant, though hopefully still of interest.

If this were a real review, I would also discuss Gnome, but I have not had the opportunity to test drive it. Perhaps when my next PowerBook dies. (Or maybe sooner – Gnome 2.4 has made it into the ports tree, and is compiling on my FreeBSD box as I write this.)

Finally, most of my comments focus on KDE rather than FreeBSD. The Unix layer is, frankly, pretty well sorted. On a day-to-day basis I suspect I’d be about as productive running Linux, FreeBSD, or Darwin underneath my GUI of choice. It’s on the GUI layer that the desktop wars are going to play out.

Day One

Stewart Brand once said that nobody should have to learn a new operating system after 30. I’m 35, and on my first day using KDE to accomplish actual work I was strongly inclined to agree. 

This had little to do with KDE per se. It was largely the pain of configuration and data migration. All the applications were there, and nothing was broken, but they didn’t have my working data and they weren’t set up to work for me.

(Interestingly, it was more challenging to go from OS X to KDE than the reverse, though partly this was because I knew my stint with KDE would be temporary and during that time I saved most data in web apps or highly portable forms.)

I posted to FA:OSX shortly after I was up and running:

One irony that strikes me is that I never would have done this if I hadn’t been using OS X for the past 2+ years. Apple did a tremendous job of making the OS perfectly usable and tidy while leaving the Unix clockwork there for inquisitive souls to play with. So now I know enough to really be dangerous. I’ve been using FreeBSD on web servers for years, but this is my first foray into the non-OS X Unix desktop world.

Shared Strengths

KDE and OS X have a number of things in common. Each is a comprehensive GUI over a freely-available Unix underlayer. (In the case of OS X, that underlayer is Darwin; for KDE, it might be Linux or Solaris or FreeBSD).

Both operate smoothly in that preemptive-multitasking way. Both are very stable. Both support multiple logins with discrete work environments for individual users.

They both offer good facilities for networking, printing, file management, and so on.

One specific commonality worth mentioning may surprise Quartz-proud OS X users: Both allow the creation of PDFs from any application’s print dialog. KDE’s implementation is arguably better, since it gives much more fine-grained control over PDF output.

PDF options in KDE

KDE/FreeBSD Strong Points

I went into my time with KDE in a state of anxiety. I had just lost use of my primary work computer and needed to immediately continue work on several important jobs. I missed my Mac. Even so, I found several things about KDE that I liked – or, in some cases, coveted.


I can say without exaggeration that OS X is about 100 times more stable than previous MacOS incarnations. But FreeBSD, for me, was even more stable. I didn’t experience one real crash in my six weeks of daily use. KDE itself had to be force-quit once.

Keyboard Control

In KDE, you can assign keyboard shortcuts to just about anything. I didn’t use this feature a lot, partly because there are many keyboard shortcuts present by default. But in the few cases where I wanted to add or change one, this was a huge relief.

Network transparency

OS X features unstable, read-only, FTP-only (no SFTP) access via the Finder. KDE, in contrast, features a network-transparent filesystem that allows virtually any protocol to be used from Konqueror or any file dialog – no need for a standalone FTP/SFTP client.

This is the way it should be. What would you think of a system that required a dedicated app to connect to a fileserver on your LAN? Dumb. So instead of imperfectly mimicking file browser activity in an FTP client, KDE builds the network client into the file browser. Smart.

I found working with remote servers surprisingly snappy – far more so than any FTP/SFTP clients on my PowerBook on the same network connection. Network lag aside, remote connections are essentially indistinguishable from local ones.

Network transparency also means that any location can be saved as a bookmark. Remote files can be previewed or renamed or opened just like local ones.  And splitting a Konqueror window between local and remote folders creates the world’s slickest two-pane FTP client.

Konqueror split window

Finally, to mention just one feature I have been wanting for years in Mac FTP clients: you can drag a file from one remote directory to another. Ahh.

Virtual Screens

When at my desk with my PowerBook, I connect it to an external 17" display to create one large, spanned desktop. Since my Pentium box only had one video card, I was restricted to using a single monitor with KDE, which I thought would be a hardship. It turned out to be OK, largely because of KPager, which creates multiple virtual screens that can be swapped in and out of your single physical monitor. I used two screens for client work, one for mail, one for system administration, and a couple others. Keyboard shortcuts for switching between screens, and for sending windows from one screen to another, made it even more useful.


KDE comes bundled with an impressive number of applications.

For me, Konqueror, a web browser, file browser, and “universal viewer application, " is the standout.

Konqueror is the source of the KHTML engine that Apple uses in Safari and WebCore. On days when I missed using my Mac I took solace in the fact that at least I was still looking at web pages through the same rendering engine. Simple pleasures.

As a file manager, Konqueror has several enviable features. My favorite for all-out forehead-slapping elegance is the ability to generate a new file from the clipboard contents by simply pasting.


Konqueror’s file previews are also very well done, and include “badged” folders that indicate the types of files inside. (I should mention that the Finder in OS X 10.3, does have improved previewing, though it’s not as extensive as Konqueror’s).

Konqueror also intelligently handles various file types; for example, if you insert an audio CD, it displays virtual MP3 and Ogg Vorbis files in addition to the native AIFF files that are actually there. If you drag an icon for one of the compressed formats to your hard drive, it’s encoded on the spot. If you have a folder of images, Konqueror can generate thumbnail galleries for you.

Konqueror thumbnail gallery

Quanta Plus, a web development tool, was very useful to me. Its editor supports code folding, syntax coloring for dozens of languages, indentation control, tag completion and other handy stuff. (It’s worth noting that many of these features derive from KDE’s standard text editing component, which means they are available in other apps as well.)

Quanta Plus

The KDE PIM suite contains a calendar and todo app, an address book that reads and writes vCards (I imported my 600-entry OS X Address Book with a little conversion work), and a Palm synchronization tool. This last does something I always thought would be a natural on OS X given the absence of a memo pad in the iLife suite – it synchronizes the Palm memo pad with KDE’s “stickies.” If you are a programmer who builds a conduit to do this on OS X, and I think you should, make sure you tip your hat to the KDE team.

One nearly faceless app that deserves major praise is the Klipper, a clipboard stack utility.  Every time you copy, your selection gets added to the Klipper, but the previous selection gets pushed down rather than discarded. Klipper also makes it practical to grab several different snippets of text or code in sequence. Clicking on the Klipper icon shows you the current stack of items, which you can select with the mouse. Of course, it’s all mappable to keyboard commands too. When using OS X, do you ever accidentally hit Cmd-C instead of Cmd-V? If you’ve selected the text you’re trying to paste over, this neatly replaces the important text you had on the clipboard with the useless text you wanted to get rid of. (I know there are third-party utilities that address this deficiency). Klipper eliminates this problem.

There are also edutainment programs, the expected utilities, and several games. It’s a lot of stuff, and I enjoyed exploring it all.

I closed my original KDE post to FA:OSX by noting that

…nothing on this machine is trying to sell me something else. I like that. A lot. I’m not being endlessly pestered to upgrade to Quicktime 17, or get a .mac account, or open my MSN Wallet, or pay my shareware fees.

This was one of the strongest, and most surprising reactions I had during my first few days with KDE/FreeBSD. Mac Persons like me tend to regard Microsoft as the leading perpetrator of embedded marketing, and perhaps they are. But OS X is a marketing platform as well. Using KDE just felt more, well, free.

KDE drawbacks

Because I like KDE (and FreeBSD) so much, I think about what it would take to market them as a turnkey product to novice users.  While some of these things are “a FreeBSD problem” and not “a KDE problem,” the imaginary naive user doesn’t care.  They just know that Windows and the MacOS do it, so why can’t KDE?

Uneven App Quality

While as I mentioned above I enjoyed poring through KDE’s big bundle of applications, their quality is uneven, and I found my initial optimism tempered by provided apps that were of beta or even alpha quality. Many apps in the KOffice suite crashed readily; others seemed only half-done.

If I were to suggest one thing that the KDE project do to improve their reception among non-technical end users (which I believe is a goal of theirs, and a critical one), it would be to take a hard look at the applications and bundle only those that are release-quality in terms of features and stability.

The Price of Freedom

The open-source nature of KDE and its host OS are a wonderful thing, but there were two major areas where it is a hindrance. One is Java. Whereas most of the 9000 items in the FreeBSD ports tree can be added to the system by typing “make install” in the appropriate directory, Java’s license requires a more convoluted path – one I must admit I never followed.

Flash seems to be absent for similar reasons. These days, a web browser without a Flash plug-in installed by default is, to many users, a broken web browser.

These issues are largely out of the hands of the KDE and FreeBSD developers, but it is an awkward situation nonetheless and something that serves to make OS X and Windows more appealing to nontechnical users.

Three Not-So-Easy Pieces

My working system was really a combination of three large and relatively independent open-source software projects: KDE, FreeBSD, and X Windows (XFree86). Configuration of the last two is not always possible from within KDE, which can be a major hassle. It’s especially frustrating with X, because with modern graphical OSs one is accustomed to being able to easily tweak screen resolution, color depth, and so on. This is a bit patchy with KDE (as of version 3.1.4) and was one of the things I found most opaque, given my utter lack of expertise in X configuration.

(I would include window managers as a fourth piece, but since KDE installs its own default window manager, called kwin, the regular user never has to think about this piece.)

Likewise, despite my love of the FreeBSD ports and packages system, installing, upgrading, and uninstalling applications is much more difficult than with self-mounting .dmg files and application bundles. (Though there are potentially more convenient solutions, such as Zero Install.)

Early in my experiment, I made a mistake with one of KDE’s graphical admin tools and corrupted FreeBSD’s master password file. I reinstalled and didn’t look back, doing further user management via the shell. If I hadn’t possessed (or been able to acquire) knowledge of how to work around this problem, my KDE experience would have ended right there. The system itself couldn’t help me.

Peripherals also sometimes fall between the cracks. My USB trackball plugged and played, surprisingly, and I got Palm synchronization working. But I never was able to use my CF card reader, or print to my LaserWriter. Was the problem with KDE, or FreeBSD, or somewhere in between? It wasn’t important enough for me to find out, but it did keep me from, say, setting up a box like this for my mom. And don’t even ask me about my sound card.

The lack of integration between these three subsystems is, I think, the largest barrier to adoption of open-source desktop environments by non-technical users. Unfortunately, it’s a difficult problem to solve, since the OS and desktop and windowing components are being developed by three independent teams. It’s possible that will play a constructive role in solving this problem.

OS X Strong Points

I was reminded when I returned to it that OS X is beautiful to look at, with uncluttered interfaces and excellent type rendering. It has a super-convenient system software update mechanism. It has great support for removable media and peripherals, most of which “just work.” Applications hide away their myriads bits using the package system, and the apps included in the system are comparatively polished and well-executed.

OS X Drawbacks

A few shortcomings of OS X stand in sharper relief after this experience.

One is poor keyboard customization. Though OS X does have a Keyboard Shortcuts tool buried in the system preferences, it is less convenient and powerful than KDE’s per-application controls.

Though OS X has better overall integration between the GUI and Unix layers than my KDE/FreeBSD system, it actually fares worse in some regards. One example of this is the incomplete overlap in functionality between symbolic links and aliases. Another stems from HFS’s historical use of the colon as path separator: you can’t type colons in filenames in the GUI. But you can type slashes – which get translated to colons in the shell, and vice-versa. Got that?

Home Again

Now I’m back using OS X on my new (refurbished) 12” PowerBook. As I wrote recently here, I love it.  I love the combination of Apple’s hardware design, the polish of OS X and the iApps, and the availability of mass quantities of open source software. When I’m sitting at a cafe table, working with my 4.6 pound webserver, listening to web radio via iTunes, I’m a happy camper.


I would really love to see some of my favorite KDE features – virtual screens, network transparency, a clipboard stack – incorporated into MacOS. But I also value the existence of KDE as a separate product, just like I value the presence of Mozilla (I’m preparing the final draft of this piece in Composer, in fact) even though Safari is my primary browser.

I enjoyed my time as a KDE user. It saved my butt during a difficult time, and it opened my eyes to some areas in which OS X could stand improvement. My $60 computer is still running, now a headless server. It still has never crashed. And I still haven’t recompiled the kernel so it will support my sound card.


Other pages that may be of interest