I've been off the BeOS / Haiku radar for some months now. I still am not officially active in it anymore, but that doesn't mean that I don't keep thinking about Haiku or coming up with ideas that could make it better. Computers are still quite an active part of my life, but finding time to do anything that I used to classify as "productive" is a difficult proposition right now -- mostly limited to the weekends. I've decided to start a blog which is still Haiku-oriented, but not limited to Haiku or even necessarily computers in general. Yep, this is my own little, relatively-insignificant corner of the Web.
To start things off with some actually useful content, I'll start with a project I've been twiddling with for the last couple of weeks that has actually increased my productivity under Linux somewhat. You might have heard of a person who made Xubuntu look like Windows Vista and then later, OS X Leopard. Well, that got me to thinking about how it could possibly help something that I'd done: work on designing the 3D-accelerated desktop experience for Haiku R2. The experimenting led somewhere, and I can't say that I didn't learn anything, either.
Xfce 4 is Really Tweakable
I've heard it mentioned that the Xfce desktop environment that Xubuntu is based on is quite configurable. I'll agree with that. I could have done most of this stuff in GNOME, but if you asked me, Xfce is like a good compromise between GNOME and KDE after going on a diet. The big thing was the panel. Originally, I thought that completely getting rid of the Deskbar was the way to go. I was wrong. Instead, what really needs to happen is expand its capabilities to enhance the desktop's needs. The panel concept common to Xfce, GNOME, and KDE fits the bill: small, useful widgets which are useful, but not visually distracting.
Believe it or not, the panel was quite carefully thought-out. First of all, it is in the bottom left corner to allow people to keep a habit from Windows: throw the mouse to the bottom left corner and click to open the main menu. It also allows the user to develop habits for other items in the panel because it only grows in one direction.
Beside the main menu is a visual separation between it and the next section... Places. One thing that this feature is missing is Tracker's filesystem menu. A proper Places item for Haiku would utilize Tracker's filesystem navigation menus or an appropriate replacement. It should be divided into two sections and the bottom section is dedicated to the Recent [Documents / Applications / Folders] menus, user bookmarks, and for a menu item to allow the user to edit the bookmarks.
The fast launcher sits beside Places. In the screenshot, there is just FireFox, but obviously, there could easily be others. The weather applet is just there for fun, and the timer is for helping me maintain good computing habits and stave off RSI issues. The CPU graph is good feedback for the user in knowing how hard the computer is working, and the clock.... well, no one likes to have to look down at their watch. ;-)
One other tweak that only the more perceptive readers would notice is the bigger icon sizes. By default, Xfce uses some tiny icon size for its menus. I think it's 16 pixels, but it might be 20. My computer is runs at a resolution of 1280 x 1024. At that resolution, it's hard to navigate the menu because of the small size. While I have experimented with as large as 32 pixels, 24 seems to be much easier for higher resolutions. Even the largest menu (Settings) doesn't take up more than about 75% of the vertical screen size. Perhaps there should be something about a possible method for computing menu item size based on screen resolution, so that people with smaller screens don't have massive menu items, but better equipped computers don't require users to have the coordination of a 3D-shooter tournament champion in order to run a program.
The main driving force behind the 3D desktop on Linux is the whole Compiz / Beryl thing. I have a hard time following the different soap opera that go on, but Fusion is the result of the reuniting of the efforts of the Beryl and Compiz teams. Their efforts are promising, but at the moment, buggy enough to not be useful on the desktop at the moment.
Some of the desktop effects, such as painting on the screen with fire, are just novelties, but some have the capacity to be really helpful. They're not overly complicated, either. Here's a list of the desktop effects that I put into place:
Desktop Wall: This adds a slide transition when switching workspaces and additionally shows the location in the workspace grid along with the direction travelled. This is really helpful for keeping context for power users.
Expo: A keypress zooms out to see a live overview of all workspaces. If a movie is playing -- you guessed it -- you could theoretically watch it from this overview. You can select a new workspace just by clicking on one or using the arrow keys and Enter. This would make a good workspace switcher for more novice users.
Show Desktop: This plugin is a direct copy of the same feature in OS X. Quite helpful, especially when you have applications minimized to the desktop.
Animations: A multi-effect plugin. Even though there are some neat ones, most of them are more distracting than helpful. A few were nice to have to provide additional feedback on the actions of a particular window -- a curved fold on close (window folds in on itself and disappears), a fade effect when a window is brought to the front of the stack, and some zooming effects for minimizing and opening windows.
Window Snapping: This is also called Edge Resistance, originally named "Snap and Go" and mentioned in my 3D Desktop RFC.
Application Switcher / Ring Switcher / Shift Switcher: These were plugins for different methods of changing between open applications. Application Switcher was the easiest for me to use, but the others could be valid alternatives.
The only feature that I couldn't properly test was Minimize in Place because the Shelf plugin is not currently stable. However, Xfce's window manager has a mode where all minimized apps show up as icons on the desktop. Almost as good.
Just for fun I changed the background, icons, main menu icon, and splash to be Haiku-themed. I only wish that I could've had all the 3D-Accelerated goodness with a BeOS-related window decorator. KDE does have a BeOS-like one, but it's ugly and no amount of tweaking that I did made it look decent... only less ugly. Xfce has a very good one, but, sadly, it can't be converted to a metacity theme and there isn't a decorator plugin for compiz that works with xfwm's themes, though I wish there were.
Was it Worth It?
I'd say yes. While Windows XP is my primary OS out of necessity and being the path of least resistance, after all that tweaking, I found that I preferred to work in Linux because of all the extra niceness. It's difficult to describe in words, but the extra effects impart a feel-good kind of quality that makes working somewhat more enjoyable -- kind of like the difference between a regular just-for-going-to-work beater of a car and the same car with a Bose sound system and leather seats: not absolutely necessary, but it makes the experience nicer. If anyone would be interested in trying this out, too, I probably could post the config files or at least the "recipe" for proper tweaking and the media files.