Google has announced the official release of Desktop Gadgets for Linux and is distributing the source code under the open-source Apache software license. Although there are still bugs and the implementation is not yet entirely complete, it works well enough for day-to-day use.

Desktop Gadgets is one of the primary features of the Google Desktop suite, which also includes a search mechanism. Gadgets are small, interactive, web-oriented applets that the user can place on the desktop or in a sidebar. Google publishes a complete Gadgets API that enables third-party software developers to create components for the platform. It also supports Google's web-based widgets.

Google issued a somewhat lackluster release of its desktop search tool for Linux last year, but didn't support Gadgets on the open-source operating system until now. Although somewhat incomplete, this early Gadgets release reflects a much stronger understanding of the expectations and requirements of Linux users. Source code is available for the entire program, and it leverages widely-used open-source libraries and toolkits. A particularly nice touch is full support for both GTK+ and Qt, which means that it is designed to play nicely with the two major Linux desktop environments.

Consistent with standard Linux development practices, the program is being developed out in the open in a very transparent way. Users can retrieve the latest source code from the project's subversion repository or download a source tarball of the 0.9.1 release. Google isn't providing binaries and has opted to leave packaging to the Linux distributors. Major Linux distributors will likely make it available to users through their own standardized package management systems, but users who want to test it right now will have to compile the source or find unofficial packages.

I compiled it for testing on Ubuntu 8.04 in a GNOME environment. Google provides detailed build instructions that explain the process. Users will require several dependencies, all of which were easily accessible from the Ubuntu package repositories.

I tested several gadgets and didn't encounter any serious problems. Not all gadgets are available or fully functional yet, but this is a pretty strong start. The sidebar worked fine and I was able to drag gadgets between it and the desktop. There seems to be a minor bug that causes a regular window frame to be drawn around gadgets sometimes when they are dragged from the sidebar to the desktop, but this problem doesn't show up frequently.

Gadgets can be installed from the Gadget Browser interface, which also allows users to search for gadgets and filter them by category. A Google Gadgets icon that is displayed in the notification area when the program is running provides easy access to the Gadget Browser and can be clicked to toggle Gadget visibility.

The implementation is structured so that the Gadget rendering and runtime functionality is encapsulated in its own library that is separate from the actual Desktop Gadget host program. This will make it easy for existing Linux-based desktop widget systems to integrate full support for running Google Gadgets.

Although I've been extremely unimpressed with the poor system integration of Google's previous Google Desktop offerings for Linux, I'm pleased to say that the Gadgets release is a big turnaround. Google appears to have gotten everything right this time, from the process to the implementation. It seems like Google is finally beginning to understand that supporting Linux means embracing the culture, ecosystem, and methodology, not just offering compatible programs.

Further reading