By Marcel Gagné
This article was originally published in the February 2005 issue of Linux Journal.
Mon Dieu, François? You look a little green. What is wrong? Ah, you were playing with the 3D desktop switcher and got a little motion sickness. Perhaps with your delicate condition, we should stick to the more classic desktop pagers. Not at all, mon ami, I am not making fun of you. You are just more of a down to Earth kind of waiter and things zooming through space, toward you, or away from you, are obviously not for meant for one such as yourself. Get yourself together, François. We certainly don’t want you dropping the wine on our guests when you serve it. Speaking of our guests, they have just arrived.
Welcome, mes amis to Chez Marcel, the world’s finest Linux French restaurant and the home the greatest wine cellar in the world. Please sit and make yourselves comfortable. I’ll have my faithful waiter run down to the wine cellar immediately. Steady, François. Let me see . . . the 2003 Casillero del Diablo Chilean Chardonnay would be excellent with this menu. Fresh pear and green apple flavors and just the right acidity, mes amis. Very refreshing. Ordinarily, François, I would tell you to hurry, but take it easy on the way up!
Despite using a model we’ve come to think of as normal, many programmers and users are looking for alternatives to the standard panel, pager, and system tray. What’s interesting is that much of the hard work being done on these panel replacements (or enhancements) involves some kind of eye-popping, 3D effects, the kind that has made François a bit unsteady on his feet.
One of these alternative panels is Stephano’s KXDocker project which owes some inspiration to the Mac OS X Docker, but as Stephano explains is “more powerful“. The effect created leaves your system with a collection of icons representing various applications (including your program launcher menus) running along the bottom. Running your mouse across these icons in sequence creates an effect much like an icon wave making its way along the bottom(see figure 1).
Figure 1 : KXDocker does the wave with your panel icons. (To view full size screen captures, click the inline images.)
The first step to getting KXDocker working for you is to pick up a copy from the official project website.
http://www.xiaprojects.com/www/prodotti/kxdocker/main.php
Ah, François, I see you’ve returned safe and sound. Please pour for our guests.
You’ll find several precompiled packages for an impressive number of the major distributions here. Source is also available should your system not happen to be listed. There shouldn’t be too much more to tell you about here but on the download page, there is also a resources package available. This isn’t necessary with the latest builds but it does include some additional theme support so you may want to install it as well (just run the install.sh script). Building from source is a fairly straightforward extract and build five step.
tar -xjvf kxdocker-0.23.tar.bz2
cd kxdocker-0.23
./configure --prefix=/usr
make
su -c "make install"
You’ll notice that I included a prefix to the standard ./configure” step. That’s because you’ll want to install the KXDocker program into the same hierarchy as your current KDE installation.
To use KXDocker, just run kxdocker. The dock will appear at the bottom of your screen. It’s probably a good idea to move the KDE Kicker panel out of the way (just drag it to the top for now). While KXDocker is designed as a replacement for the default KDE kicker, it will work happily in conjunction with it. In fact, KXDocker will even disappear into your system tray where it can be activated with a single click on its icon.
To change the default operation, included icons, themes, and so on, right click on the panel and select “Configurator” (this can also be done by right-clicking the system tray icon). The configurator is a tabbed dialog (eg: objects, themes, icons, plugins, etc) from which you can modify a number of items to make the dock work the way you want it to. One setting you may want to change right away is listed in the Window tab as “Auto send to background” so that the dock isn’t automatically obscured by running application windows (like my word processor). Once a change has been made, click the save icon and assign a name to this configuration. When asked whether you want it loaded automatically when you restart KXDocker, accept.
François, this would be an excellent time to refill our guests’ glasses. You might also want to serve up a little smoked salmon and double-butter brie.
If the idea of improving your panel experience is starting to sound interesting, mes amis, don’t stop there. Another project in this vein that is well worth investigating is the KSmoothDock Team’s KSmoothDock. KsmoothDock works in two different zooming modes. The default is simply called the “normal” zooming mode. As you move across each icon in the new panel, the icons zoom to offer a larger view. The effect is clean, offering a nice smooth zoom effect as the name implies (see figure 2).
Figure 2 : KSmoothDock in normal zoom mode.
This is only the beginning and the most basic of KSmoothDock’s settings. I’ll get to the others shortly, but to get KSmoothDock working for you, you’ll need to get youself a copy. Although the official hosting site for KSmoothDock is SourceForge, your best bet for the latest and greatest on the project is the KDE-Look website link below.
http://www.kde-apps.org/content/show.php?content=6585
From there, you can get precompiled binaries for a few different releases. Source is also available from which you can install on any system running KDE 3.2 or later. The process, once again, is the classic extract and build five step.
tar -xzvf ksmoothdock-3.5.1.tar.gz
cd ksmoothdock-3.5.1
./configure --prefix=/usr
make
su -c "make install"
Start the program by running ksmoothdock. A window will appear suggesting that KDE’s default Kicker panel should be moved to the top, out of the way. The dialog will offer to do it for you at this time. When the ksmoothdock program is running, everything gets iconified (except the pager for the virtual desktops) including running tasks. The icons for these are the default icons for the application.
The second mode is called parabolic zooming mode and is more like the effect created by KXDocker. In the normal mode, virtual desktops are represented by numbered squares representing the workspaces, but they do not zoom. This changes in the parabolic mode as seen in figure 3.
Figure 3 : Users familiar with OS X will find this look familiar.
To switch to parabolic mode, right click on the dock’s program launcher (far left) and select “Switch to Parabolic Zooming Mode” (figure 4). Changing modes like this does however, require that you then exit the program and restart it for the changes to take effect. This is true for switching back to normal mode if you find this too dizzying.
Figure 4 : Right-click to switch zooming modes.
That menu has two other interesting items here. The topmost item lets you change the Quick Launch menu. Those are the four default icons to the right of the virtual desktops. Doing so will open a Konqueror window from which you can create links to applications. The second is a Preferences dialog. In the Preferences menu, you can select which components are visible in the dock such as the clock and whether the taskbar icons are to be included. Another interesting option is the level of opacity which lets you define how much of your wallpaper is visible through the dock.
In all of these cases, the one thing that stays more or less the same is your pager and its virtual desktops. Nothing really fancy there other than some simple representative icon zooming. To address this, I’m going to offer you a rather rich dessert and pull out all the stops on system performance with some of the best eye candy I’ve seen in a long time. I’m talking about Brad Wasson’s 3D-Desktop, OpenGL program that gives you a very slick way of switching from one virtual desktop to another. You will definitely need a 3D accelerated video card for this one.
Before I tell you how it works, I think François needs to refill your glasses. You may find yourself needing more than some of you still have in your glasses. Here’s how 3D-Desktop works.
When the program starts, your screen shifts to 3D mode. You current virtual desktop appears to drop away and the whole thing zooms out so that all all your screens are seen floating in space. It’s an amazingly cool effect that you just have to try. By default, the 3ddesktop default view is a carousel with all of your virtual desktops assembled in a circular presentation (figure 5). Left and right cursor keys let you move from one desktop to the other. When you have the virtual desktop you want, press the spacebar or the Enter key. The virtual desktop you’ve chosen zooms back in and the screen shifts back to normal view. It’s cool. It’s fun. And it’s useful too.
Figure 5 : The 3ddesktop default is a carousel.
To experience 3ddesktop, you need to get it on your system, so head on over to http://desk3d.sourceforge.net and pick up a copy. Source packages are available from the site as are a couple of different binary packages (SUSE and RedHat) as well as a source RPM. You are likely to find it on the contrib site for your particular distribution as well but if you need to build from source, it isn’t difficult. You’ll need the Mesa GLU development and Imlib2 development libraries but aside from that, this is another example of the classic extract and build five-step.
tar -xzvf 3ddesktop-0.2.7.tar.gz
cd 3ddesktop-0.2.7
./configure
make
su -c "make install"
Running the program is just a matter of typing “3ddesk“. However, for the first time, you should run the program with the “--acquire” flag. Starting the program this way serves two purposes. The first is to see whether the server portion of the program (3ddeskd is running and to start it if it isn’t. The second is to literally acquire images of all of your current virtual desktops. A lot of people tend to run four virtual desktops. I run eight. This process only takes a second or two. Immediately after, the magic happens and your 3D switcher is running.
Once you have chosen a virtual desktop and returned to your work, you’ll find yourself having to run 3ddesk again next time. To get around that, map an unused function key to run the program. I used F2 in KDE so that pressing F2 switches me to the 3D-Desktop view with a single touch. Different desktop environments do it differently but I’ll show you how it is done with KDE (the 3D-Desktop website has suggestions for other environments).
Right-click on the big “K” (application launcher) and select “Menu Editor”. When the menu edit window pops up, navigate down the side to your application of choice (you may need to add a 3D-Desktop menu item by clicking File followed by New Item on the menu bar). Click on the entry for 3D-Desktop and look down on the right hand side near the bottom of that window. See the “Current shortcut key” button. It probably says “None”. Well, click that button. A window will appear waiting for you to enter a keystroke. Press “F2” (or whatever sequence amuses you), then press Apply. You can now close the menu editor.
You may want to play with some of the command line switches. While the default carousel view is my personal favorite, there are other interesting modes including linear, flip, and others. For a taste of childhood nostalgia, try the viewmaster mode by typing 3ddesk --mode=viewmaster. Just type 3ddesk --help for more examples.
It appears, mes amis, that closing time has once again snuck up on us. I’m sure, however, that I can convince François to top up our guests’ glasses one more time. Merci, François. I must confess that this wine is particularly good. It’s making me thin that a plain flat real desktop is really what we need at this time. Just a good solid surface to rest our wine glasses, non? Until next time, mes amis, let us all drink to one another’s health.
A votre santé! Bon appétit!
Resources
3D-Desktop
http://desk3d.sourceforge.net/index.php
KSmoothdock
http://www.kde-apps.org/content/show.php?content=6585
Kxdocker
http://www.xiaprojects.com/www/prodotti/kxdocker/main.php