ProjectLookingGlassUsability
Summary
Project Looking Glass (LG3D) is Sun Microsystem's three-dimensional desktop for Unix/Linux. It is freely available under a GPL license.
Although it has officially had a 1.0 release, and it has Ubuntu packages available, there is still a lot of work to do. From a usability standpoint, Looking Glass still is more like a tech demo than a complete desktop environment--some basic features are still missing. In addition, although Ubuntu packages are available for Looking Glass, they are not yet ready for inclusion in Ubuntu.
In short, the user experience while installing and using LG3D is lacking.
For Summer of Code 2007, I want to attack the problem from three directions: overhauling the LG3D "start menu", adding a system clock, and bringing the LG3D packages closer to Ubuntu's guidelines.
Rationale
Although it is officially at the 1.0 stage, LG3D's usability leaves something to be desired. It still feels more like a tech demo than an actual end-user product.
For some time now, Ubuntu has essentially been the primary distribution for Project Looking Glass. Ubuntu is the only Linux distribution that LG3D makes packages available for. Unfortunately, those packages aren't really "complete", and have not been accepted into Ubuntu.
The Ubuntu packages do not yet adhere to the Debian file hierarchy guidelines. The package is also quite monolithic--it includes some libraries already available in other Ubuntu packages, as well as numerous applications that are not part of LG3D proper.
Use Cases
- Jack has heard about Project Looking Glass, and wants to try it. He looks through the Ubuntu packages, and discovers that Looking Glass is not there. He visits the project's website, and gives up after discovering that the Looking Glass core package is 60 MB. If Looking Glass was is Universe or Multiverse, Jack could have simply selected the appropriate packages in Synaptic containing the parts of Looking Glass that he needs, and they would be automatically installed.
- Jane is excited about having a three-dimensional desktop. She successfully installs Looking Glass, and sets up her computer to use Looking Glass as her everyday desktop environment. After one day, she is surprised that there is no system clock, and disappointed that the menu is difficult to navigate. She finally switches back to Gnome for her daily work. With a little more work, Looking Glass could actually be useful to people like Jane.
Scope
This project entails both improving the usability of the LG3D desktop environment itself--specifically the menu and taskbar area--and finishing the LG3D packages for Ubuntu.
Looking Glass for Ubuntu is distributed as three packages--Java, Java3D, and the LG3D core. The Java and Java3D packages are beyond the scope of an SoC project.
The two problems with the LG3D core package are that it does not adhere to the Ubuntu file hierarchy guidelines--everything is installed into one directory--and it is too large--the package installs all of LG3D and the associated applications.
Design
Summary
I want to:
- Create a system clock for Looking Glass by adapting the existing Clock3D application.
- Re-do the menu to be more friendly.
- Fix the Ubuntu packages so they conform to the Ubuntu guidelines.
System clock
Ever since Windows 95, one of the most prominent features of Microsoft's operating system has been the system clock, located by default in the lower right corner of the screen. Today, every fully-featured desktop environment (and even a few "bare-bones" Linux window managers) have system clocks. LG3D does not.
Ironically, LG3D has had a native clock application for two years. The source files in the CVS date back to 2005. Nobody has ever integrated it with the system tray, even though the clock already has a miniature "icon" mode that could be trivially modified to work in the system tray.
Start Menu
The current LG3D menu system has several issues. Currently, when the user enters a sub-menu, the previous menu disappears and is replaced by the sub-menu. While this is generally an improvement over the traditional cascading menus, the implementation in LG3D isn't perfect--specifically, going back up in the menu heirarchy is currently unintuitive. Usually there is an icon to return to the parent menu located at the bottom of the submenu, but this is not consistently present, nor is it immediately obvious that it is anything other than another program icon.
The current menu also has a Z-order bug--it appears behind the open windows when it is triggered. The user often has to minimize all open programs to use the menu.
Finally, the current menu does not leverage LG3D's animation API. This is hardly a pressing issue, but the ability to upgrade the eye candy factor is there. Beryl has established that people like eye candy.
http://www.csc.calpoly.edu/~wtracy/menu.mpg
Above is a video mock-up of a possible new menu interface. (If my school's server is down, you can try it on YouTube.) The level of animated effects is probably excessive, but the video does demonstrate the changes I want to make.
The main feature of the interface is the menu history displayed vertically on the left side of the menu. Any menu name can be clicked to return to that menu. The resulting interface is compact and efficient.
After I made the above video, I discovered that Windows Vista works on a similar principle; they insert an "Explorer"-style expanding tree inside of the menu.
Packaging
The work necessary to finish the LG3D packages requires moving files to the appropriate places in the heirarchy, splitting files into sub-packages, as appropriate, and removing entirely files already provided by an existing Ubuntu package.
Currently, LG3D is split into three packages: The Java runtime, the Java3D library, and LG3D itself.
I plan on leaving the Java and Java3D packages alone for Summer of Code. Java is already available in its own package in Ubuntu (although Java 6.0, required for LG3D, isn't in yet). In any case, neither package is really part of LG3D, and I'm scared to touch them as part of Summer of Code.
It's the package for LG3D proper that I would consider working on. The package installs LG3D and its associated programs into /usr/share/lg3d. This is equivalent to putting Gnome and every Gnome application into one package that dumps everything into one directory.
I need to consult the community about whether splitting LG3D into several packages or getting the files to conform to Ubuntu's file heirarchy guidelines is considered more urgent. Right now, I'm not ready to commit to working on both by the SoC deadline.
Implementation Plan
May 28--June 8
System clock. The main challenge I expect to encounter is getting the clock to start when LG3D is launched. The background chooser already does this, so it's only a matter of understanding how the startup hooks work. However, I suspect the launching of the background manager works by being hardcoded into the LG3D core, which is why I am budgeting two weeks for this item.
June 11--July 6
Menu. I want to get a new interface with the menu history feature working in this time frame. If I cannot get any of the animated effects working in this time frame, I will move on.
July 9--August 20
As mentioned above, this part is still slightly up in the air. From the looks of it, I'll have plenty of time to get feedback first on where to focus my efforts.
Outstanding Issues
I still need to decide where to focus my efforts on upgrading the packages. Splitting the Looking Glass package into appropriate "sub" packages as well as moving all the files into the locations specified by the Ubuntu file hierarchy guidelines is probably too much to do as one Summer of Code project.
As such, I need to get feedback from the community on which task is considered more urgent and focus on that during SoC.
This project also has neither been accepted or rejected as a Google Summer of Code project.
BoF agenda and discussion
ProjectLookingGlassUsability
ProjectLookingGlassUsability (last edited 2008-08-06 16:41:28 by localhost)