Saturday, August 23, 2014

Kill Your Manager! (Desktop Manager, That Is)

For over fifteen years, I have been using some form of  the GNU/Linux open source operating system for both personal and professional use. One of the many reasons why I wanted to start using Linux was that I did not like being forced to use a desktop environment that was starting to change in ways that I did not like (e.g. Windows XP's "Fisher Price" default theme, and the systematic devolution of the Windows desktop shell with every iteration of Windows thereafter). To my surprise, the open source world has just as bad of problems with desktop environments as does Windows, albeit a little different. These problems have been enough to prevent me from using any major desktop environment for the past ten years.

While Windows does have a more unified and consistent look, feel, and feature set in its desktop manager, consistency only goes so far. If it is consistently annoying, I simply won't use it. The open source options offered various different ideas of what a desktop manager should be and how they should look, feel, and behave. Unfortunately, none of the ones I have ever tried provided enough features, functionality, and customization without getting in my way in one way or another.

One of the most disappointing things about of all desktop environments I had tried was the level of customization of the desktop manager's window manager. Almost all desktop manager's decided to re-invent the wheel for their own purposes, which resulted in a minimal implementation of something that really needs powerful control. 

The other problem with the desktop managers I tried was that they all seemed to include a bunch of other applications encompassed in a desktop environment ecosystem, attempting to provide a consistent look and feel across all desktop applications. Again, the result of these ecosystems was an underdeveloped desktop manager and a bunch of underdeveloped software with minimal functionality that merely attempted to re-invent the wheel when there were plenty of de-facto standard alternatives (web browsers, file managers, music players, video players, etc). I never wanted those extra applications in the first place. And while I could, of course, trim those desktop environments down to the few parts I needed, what was left never impressed me much. It simply was never worth installing the entire GNOME/KDE/etc. ecosystems (even the minimal installations).

I always felt that, at some point, someone would develop a desktop manager that did not try to be an all-encompassing ecosystem, but rather, attempted to simply be a really powerful desktop manager. That time never came. It seems that with every iteration of the major open source desktop environments, the wheel was being re-invented again from scratch and the idea of how things should look, feel, and behave kept changing unnecessarily. They rarely provided any improvements that I felt were positive.

So, if I am not using any desktop manager, what do I use? First of all, I remove the default window manager and replace it with a highly customizable window manager called Sawfish. Sawfish is a very customizable window manager (via themes, keyboard/mouse shortcuts, customizable menus, and scripts). It focuses on being a great window manager and does not attempt to be anything else. It easily exceeded my expectations of what a window manager could be. So, I switched to Sawfish about ten years ago and have never looked back. I have a very customized configuration that minimizes distractions and maximizes my productivity. I use the same configuration across every single GNU/Linux desktop system that I use and have been very happy with it.
  
Along with the Sawfish window manager, I use a really nice program called superswitcher (a workspace switcher that I have activated by pressing the CAPS LOCK key). It's not visible when I don't want or need it and is easily accessible by holding down a single key. For everything else I do, I use  the reliable xterm terminal emulator. That's about it.

By sticking to this small set of tried and true tools, I don't have to worry about what the latest desktop environment trend happens to be. I don't have to worry about what features will be missing when I upgrade my system. I don't have to worry about all the new dependencies required. I don't have to worry about increasing resource requirements. I don't have to worry about whether my video card can handle the latest whiz-bang eye candy "feature" that provides no actual useful purpose. I don't have to worry about comparing the pros and cons of various desktop managers. Life is good and I am very productive. Thank you to all of the developers of the powerful open source tools I use!