The venerable GNU Image Manipulation Program (GIMP) is undergoing a significant transformation. The next major release, version 2.8, will introduce an improved user interface with an optional single-window mode. Although this update is still under heavy development, users can get an early look by compiling the latest source code of the development version from the GIMP's version control repository.

The GIMP is an open source software application for editing raster graphics. It is intended to serve as a free and open alternative to high-end image editing programs for a professional audience. Although the GIMP still has some limitations relative to industry-leading commercial products like Photoshop, it is becoming an increasingly viable solution for professional artists and photographers.

A general lack of usability is often highlighted as one of the GIMP's most significant weaknesses. A common grievance is that the program tends to spawn a confusing assortment of windows and floating tool panels that can be difficult to navigate and organize. In an effort to solve such problems and boost ease of use, the program's developers are rethinking its user interface. This broad effort has involved extensive analysis, expert evaluations, and community brainstorming.

All of that careful planning resulted in the production of detailed technical specifications that describe specific changes that will be made to the GIMP. Some of these changes, such as the empty window view, have already been partially implemented and are available in 2.6, the current stable version. The 2.7 series, which is the active development version, provides a glimpse at what is coming next.

One of the most radical and highly-anticipated changes that is documented in the specifications is a new single-window mode, an optional view that brings together all of the floating windows and converges them into a single cohesive user interface. To get a hands-on look at this feature, I compiled GIMP 2.7.1 and its core dependencies—GEGL and Babl—from source code, which can be obtained from the GNOME git repository.

The GIMP in single-window mode

Testing single-window mode

The single-window mode can be toggled from a checkbox in the Windows menu. When it is activated, the floating docks will snap into place on the left and right side of the windows. When they are locked into the user interface in this manner, the individual tool panels can still be moved around and snapped out. You can, for example, move the Brushes panel into the same group as the Layers panel or break it out of the user interface entirely into a floating window while everything else remains docked.

You can dock panels in parallel, placing as many as you want along the right and left sides of the window. These are separated by a draggable splitter that will allow you to horizontally resize the panels. The only panel that cannot be moved is the main tool palette, which is locked into the top-right docking position. In the following screenshot, you can see a configuration where several horizontal rows of palettes have been placed along the left edge of the window.

Several sets of panels along the left-hand side of the window

In order to eliminate the need for separate content windows, the single-window mode has a tabbed multidocument interface. A set of tabs is displayed along the top edge of the window with a thumbnail of each image that you have opened in the program. You can click an individual tab to interact with the associated image. The thumbnails in the tabs are updated in real time as you edit the images.

The image navigation strip has all of the same functionality as any conventional tabbed interface in the GNOME environment. You can roll your scrollwheel over it to quickly rotate through the items, for example. Although the navigation strip works relatively well, there are still a few obvious bugs that showed up during testing. The tab strip has no overflow behavior, so you can't scroll the tabs left or right when there are too many to fit in the interface. The ones that don't fit become inaccessible or partially obscured by the right-hand tool windows.

The image navigation tabs collide with the side tool panel

The single-window mode has a lot of advantages, including simplicity and ease of use, but it also currently has some limitations. You can't move or resize the navigation strip and individual tabs can't be reordered or snapped out into separate windows. The application has some rather eccentric behaviors in single-window mode that erode its predictability. A minor example is that the bottom-right corner of the content pane has a handle for resizing the window even though it isn't an actual window corner when single-window mode is enabled. Another example is that the close button in the window titlebar will only close the active image rather than the entire program. If you have multiple images open and you want to close the entire window, you have to select Quit from the File menu.

These features are still under active development, so the lack of seamlessness in the single-window mode is understandable at this stage. Some of the issues that I encountered will be resolved as development continues, others are concious design decisions on the part of the developers.

Professional interaction designer Peter Sikking wrote about some of the challenges and advantages of the single-window mode in a blog entry last year when development on the project began. He contends that the ability to snap tabs out into a separate windows or split the main window into multiple views to enable side-by-side editing is undesirable because such functionality would create serious inconsistencies in the program's behavior. He suggests a novel alternative that he describes as "polaroid" windows, hovering image snapshots that can be used to see parts of other images while you are working.

For a programmer's perspective on the redesign, I recommend reading the blog of Martin Nordholts, a GIMP developer. He has discussed several aspects of the new user interface, including changes to the docked panels and single-window mode.

Improvements to multiwindow mode

It's important to understand that the single-window mode is entirely optional and isn't going to replace the multi-window mode. Users will be able to choose which one best meets their needs. Alongside the effort to introduce the single-window mode the developers have continued to improve the multiwindow mode and enhance its usability.

The multiwindow mode has benefited from some of the improvements that were made for the single-window mode, such as support for horizontal docking. You can now dock multiple panels alongside each other in a floating window in the multiwindow mode.

Floating horizontal panels

GEGL and other improvements

The user interface changes aren't the only new features introduced in the 2.7 release. A number of other significant improvements have arrived, too. The text tool, which allows you to overlay text on top of images, no longer requires the user to edit the text content in a separate popup window—you can now edit the text directly on the image canvas. The developers have abstracted out some of the functionality of image saving into a separate export feature. There are also a number of improvements to the brush system. You can find a more complete overview of recent changes in the 2.7 release notes.

The Generic Graphical Library (GEGL) is an image processing framework that is being developed to serve as the new core of the GIMP. It has been an ongoing project for almost a decade, but has only now reached a level of maturity where it can be adopted in the GIMP. It was initially integrated in version 2.6 and is used for several of GIMP's feature. The GIMP's code for layer composition has been rebased on GEGL in version 2.7. Additional GEGL integration work will continue after the completion of the current user interface overhaul.

GEGL is extremely significant because it will boost GIMP's support for non-destructive editing and high bit-depth images—critical functionality that is needed in order to make the GIMP a competitive solution for professional image editing.

The schedule for GIMP 2.8

Much like GNOME, GIMP has even-numbered stable releases and odd-numbered development releases. GIMP 2.7 is a development version, which means that it's basically a snapshot of the source tree and is not intended for regular users.

GIMP 2.8 will be the first official stable release to include the new single-window mode. The GIMP developers recently announced that they are tentatively planning to release GIMP 2.8 in December 2010. This release date, which is almost a year from now, is only a loose approximation of when they think that the program will be ready. They caution that the schedule is not set in stone.

The GIMP is an impressive application that illuminates the potential of the of the open source software community to build free and open desktop applications that nearly rival some of the best high-end commercial software tools. The recent improvements reflect the vibrance of the GIMP project and demonstrate some of the benefits of enlisting professional usability experts to contribute to open source application design.

Users who want to test the new functionality can obtain the source code from the GNOME git repository. Additional details are available from the GIMP Development website.