GNOMEs in Paris: A Report from GUADEC
Pages: 1, 2
GTK 1.4 and Pango
Owen Taylor and Tim Janik, key developers for GTK, gave a presentation on the next version of GTK+, set to be released with November GNOME. GTK 1.4 will include better support for internationalization, port integration, improved drawing capabilities, an object system, and new widgets. The most impressive part of their presentation was the discussion on Pango (the result of the GScript and GnomeText merger), which uses Unicode for consistent encoding for internationalization, even permitting the use of different languages. Pango allows for bidirectional text for languages such as Hebrew and Arabic, which are written from right to left, as well as for instances where you might need to mix right/left text with left/right text.
Other improvements developers can expect to see in GTK 1.4 include:
- Better input method support
- GTK port support, where widgets would look the same on all platforms. Also look for a Win32 and BeOS port of GTK as well
- Improved design of radio and check buttons, so they're less Motif-like
- Improved usability for users and developers
According to Owen, a preview release of GTK 1.4 should "be coming soon," but no date has been set.
Bonobo is a component system (think COM) which allows for compound documents, controls, smaller programs, and program modularity. Gnumeric, Evolution, and Nautilus rely heavily on Bonobo as its component infrastructure.
Bonobo interfaces are wrapped into GTK-based wrappers, which make it easy to write a new component, easy to use an existing component, and easy to extend a component's functionality. Bonobo interfaces are sockets that other components and applications can plug into, and are based on the CORBA 2.2. The interfaces are all based on the
Bonobo::Unknown interface, providing two basic services: object lifetime management and object functionality-discovery. To keep things simple, the Bonobo interface only uses three methods:
Some sample scenarios where Bonobo would be used include:
- Embedding a spreadsheet from Gnumeric into an AbiWord document
- Embedding a Guppi chart into another application
- Using Gnumeric as a data-entry engine for other applications
Bonobo is currently at v0.8, and v1.0 is expected to be released within the next four months. Bonobo is the backbone for new applications being developed for GNOME. For example, the entire system for Evolution is built using Bonobo components; others include:
- GNOME 2.0 file manager
- Gnumeric: Supports embedded components and can act as an embeddable object
- Gill: Contains very clean component code; shaped and rectangular
- The Gimp: Prototype embedding code is written and expected to be part of Gimp's 1.2 release
- GNOME Control Center
To learn more about Bonobo, read Miguel's Abstract on Bonobo, located on the Helix Code web site. Bonobo will undoubtedly shape the way future GNOME applications are developed.
Out of all of the presentations given on Friday afternoon, none was more anticipated than Andy Hertzfeld's (Eazel's software wizard) first public demo of Nautilus. Actually, Andy's presentation wasn't supposed to be until after Michael Meeks' talk on Bonobo, but when Michael's machine failed, and the overhead projector was connected to Andy's machine, a round of ooh's and ah's could be heard from the crowd as Nautilus was finally unveiled.
Nautilus will replace GMC as the general-purpose shell for viewing the Linux filesystem, and will be introduced with August GNOME. (Nautilus is available in beta on the GNOME public CVS tree.)
Andy's demo of Nautilus showed GUADEC attendees an overview of what will be the new GNOME shell. The new interface includes sizeable views of the filesystem, using plus and minus buttons to increase or decrease the icon size for directories and files. When viewing the contents of a directory, files are represented by their the file type and directories are represented by folders. For example, JPEG image files would show a thumbnail of the image as its icon and text files would show bits of the file's actual text, rather than using a generic icon. Clicking on the plus or minus buttons would increase or decrease the size of the icons and the amount of information they reveal. At the default level, a text file might just display its name and file size in bytes with a minimal amount of detail in the icon. However, increasing the viewing size would add more detail about the file (including its permissions) and the text inside. Double-clicking the text file would open it up within the shell.
Nautilus also uses metadata from files so users can control the way things are seen. For example, Andy went to a directory on his system where he had stored some Bob Dylan MP3s. An image file for the cover of a Bob Dylan album replaced the generic folder for directory icon, and inside were the MP3s. By viewing the files' metadata, Nautilus created a scrolling list of the MP3s, and by double-clicking on one of them, Andy was able to launch an MP3 player. This ease-of-use interface has limitless possibilities, and will surely evolve more over the next few months, but this was an impressive display of its capabilities.
Eazel plans to add the ability to set user levels in Nautilus to determine what the user is able to do and see on the system. The four levels Andy previewed were:
- Novice. Where all the user sees is what's important to them; file and directory names/sizes, etc.
- Intermediate. This reveals a bit more detail about files.
- Hacker. Shows all dot (.) files within a directory.
- Ettore. Which is a reference to Ettore Perazzoli, who's part of Bonobo's core development team, and a member of the GNOME translation team. (The name for this level will most likely change, but it was a nice acknowledgement Ettore's contributions to GNOME.)
Another feature of Nautilus that Andy demonstrated was the ability to set colors for directory backgrounds, accomplished by simply dragging a color from the color selector to the directory display. Dragging another color and dropping it inside one of the window's edges (top, bottom, left or right) creates a gradient color, beginning with that color and transitioning to the previous color.
So what's next for Eazel and the GNOME desktop? Andy says they have plans for:
- Building more content viewers
- Network-based services for users
- A web-based application catalog built into the shell so users can be notified when there is a software update
Eazel also has other plans for their business model, including a subscriber package that will allow users an easier way to upgrade and install applications on their Linux system. Though none of these details were revealed at the conference, it will be interesting to see what impact Eazel will have on making Linux easier to use. If Eazel can make Linux more user-friendly, businesses will have no reason to be tied to Windows or Macs for desktop systems.
The GNOME Foundation
Conference organizer Mathieu Lacage held an ad hoc presentation on Friday morning to talk about the need to form The GNOME Foundation, which would consist of an international headquarters for GNOME with chapters in each country run by GNOME developers. Representatives from each country would be responsible for fielding questions from the press regarding GNOME, and for helping to organize a network of developers in their country to help tackle much-needed issues like internationalization of the GNOME Desktop.
Short-erm needs of the fundation include:
- Establishing a non-rofit or tax-exempt office for each country
- Finding a new machine which can be used as a server for members of The GNOME Foundation
- Building the Foundation's web site as a way to communicate with other countries and enlist more GNOME hackers
If you're interested in learning more about The GNOME Foundation or want more information on how to join the list of developers for your country, contact Mathieu Lacage, or join the GNOME Developers list.
GUADEC was a well-organized conference that brought together all of the key individuals in the GNOME community. It was good to see everyone working on various things during the hacking sessions on Friday and Saturday. In listening to some of the side chatter, it seemed that some people were uncomfortable with the commercialization of GNOME brought on by Eazel and Helix Code, but as a Linux user, this doesn't bother me that much.
It's good to see these companies helping to make the Linux desktop more accessible for users. Their efforts will make it easier for newbies to use Linux, and will give businesses more reasons to move away from traditional desktop operating systems. As Linux moves deeper into mainstream use, Eazel and Helix Code will surely help to foster further development, providing jobs for GNOME hackers, and ultimately making Linux what we all know it to be -- the best free operating system out there.
Chuck Toporek is an Associate Editor in the Open Source Editorial Group at O'Reilly & Associates, Inc. When he's not working on books for O'Reilly, he can be found tormenting his cat, playing Marathon or Quake, and reading up on GNOME and other developments for Linux. Chuck is also the co-author of Hydrocephalus: A Guide for Patients, Families and Friends and board member for the Hydrocephalus Association. He can be reached at email@example.com.