Thursday, December 14, 2006

Desktop on KDE - confusing metaphors

Desktop on KDE is a really confusing metaphor. It can mean a folder for personal files (~/Desktop), a program menu (launcher icons), a notification panel (to indicate removable media), a viewport for a group of window panels ("switch desktop") and so on.

Some of these roles are historical and anachronistic, as in using it as a folder for personal files and folders. This worked fine when disks were small and personal files were few. Today, the number of files have far exceeded the capacity of screen area to display them. Nested folders become tedious to use after about two levels. Bookmarks and Links do help but they are a 'dumb' feature and put the burden of keeping them current on the user. Konqueror is a much better visualizer for personal files, if only its start up time can be kept below two seconds. On my desktop, "Desktop Access" button throws up the Desktop folder in less than a second, while clicking "Home" button takes more than four seconds. With preloading turned on, it drops to about two seconds.

The same issue also dogs Desktop as a program menu. The number of programs available to a user have far exceeded the capacity of even the 'noodle menus' let alone a plain folder. Kmenu does a much better job in lauching programs, so Desktop as a launcher doesnt contribute anything significant.

Kicker already has System Tray and Storage Media (aka media applet) applets for notifications. When a new media is inserted, the device icon placed on the desktop is likely to be obscured by open windows. Also, not all notifications make it to the Desktop, so we still need the System Tray. Desktop, as a notifier, doesnt really make the cut.

The best role for Desktop is as a viewport for window panels. This is also consistent with other appliances with a large display panel like televisions, game consoles etc. Mac OS X, as usual, took the lead with its liquid windows, alpha transparency and Dock. I am really excited about the emerging combination of OpenGL, X and accelerated video. We can finally get smooth, flowing display panels and elements using standard APIs.

So what if we get rid of kdesktop and merge any residual feature into kwin? On my system:

$ awk '/rw-p/ {sum+=$5}END{print sum/(1024*1024)}' /proc/$(pgrep kdesktop)/maps
22.8024
$ awk '/r--p/ {sum+=$5}END{print sum/(1024*1024)}' /proc/$(pgrep kdesktop)/maps
5.47393


That's about 23MB of writable RAM and 5.5MB of text area or about 10% of my total RAM. Quite a windfall in startup footprint!

No comments: