The venerable GIMP image editor is nearing its next release, version 2.8, but as a decidedly "release-when-ready" project, there is no pre-determined drop date to circle on one's calendar. Judging by builds from the unstable 2.7 branch, however, the next release will have goodies to share with several different types of GIMP user: photo editors, web designers, high-end, and casual.
At the moment, the newest code is version 2.7.3, although the project's Git changelog suggests that there will be at least one more release (2.7.4) between now and a stable 2.8.0. Official development releases are made as source tarballs only, but Linux binaries are available through various third-party sites, such as GraphicAll.org or Matt Walker's personal package archive (PPA). The 2.7-series does introduce some API changes, so exercise caution when testing it out. It will "migrate" settings from ~/.gimp-2.6/ to ~/.gimp-2.7/, but third-party plug-ins in particular are not likely to work without modification. If in doubt, make backups.
Each new release of a GUI application is expected to include at least a few immediately-usable improvements, either in the form of UI changes, or new tools and functionality. GIMP 2.8 introduces four new "big toys" in this category.
The first is the Cage tool, an entirely new image transformation tool
that originated in a Google Summer of Code (GSoC) 2010 project. The cage
tool allows you to draw arbitrary polyhedral outlines around part of an
image, then twist and distort the image within by manipulating the corners
of the outline. The effect is something like making a marionette move
— with the major difference being that you can stretch and distort
the marionette in addition to twisting and turning it. Drawing the right
cage is critical to being able to manipulate the image the way you want; fortunately you can adjust the cage on-canvas even after you start distorting it. The tool is also a bit like the "Liquify" effect in Photoshop, in the sense that it allows smooth, "hands-on" manipulation of the image, in a manner that is far more interactive (and thus more intuitive) than traditional distort and transform tools.
The second feature is support for layer groups. As the name suggests, layer grouping allows you to nest image layers into sets, which you can then make adjustments to collectively. Although you cannot paint simultaneously into multiple layers in a layer group, you can move, transform, and hide groups, as well as change their opacity, blending mode, and other settings. GIMP 2.8 also introduces the ability to lock the pixels and alpha channels of individual layers (with "Lock" toggles on the layer dialog box) to prevent accidental changes; this feature can also be used to lock the contents of entire layer groups.
On-canvas text editing is the third new feature, and it is one that has been in development since GSoC 2008. The new text editor pops up a miniature editing toolbar that hovers on the canvas over the cursor. From there, you can change font, text size, text color, and text decorations at will, just as you would in any text editor. This editing toolbar allows you to select any text in the layer and change it, so you can incorporate multiple colors and font settings in a single text layer — something that required multiple text layers (and fine layer-alignment skills to boot) in previous releases.
The final new "bullet point" feature is an optional single window editing mode, which you can toggle in and out of from the "Windows" menu. In single window mode, the tool palette and dialog dock (which usually holds the layers dialog) snap onto the sides of the image window. When you open multiple images at once, they are placed into tabs across the top of the window, with a thumbnail for each image.
For a long time there has been a highly-vocal subset
of people who swore that GIMP was downright unusable without a
single window mode. I have difficulty processing this criticism,
because I have never seen anyone articulate something that works better
(or is easier to do) in single window mode, or more difficult to do in
floating-palette mode. It strikes me as an essentially personal
preference; nevertheless, now that single window mode is available, I
suppose it will make quite a few people happy. But it remains an option
only; for those who find the floating palettes easier to use, the new
mode will have no effect.
The fun stuff you might overlook
A second group of new features consists of those changes that either introduce new functionality or provide better usability, but are not big enough to make most lists of "flashy new improvements."
For example, there are several small UI changes that provide incremental
improvements. One is an on-canvas progress meter (using a circular,
stopwatch-like animation), which replaces the flat, bar-shaped progress
meter at the bottom edge of the image window. It appears closer to the
mouse cursor, so it is a better visual cue that GIMP is working on
completing a task. There are also composition guides (such as
rule-of-thirds grid lines) overlaid when you use a transformation tool;
this simply helps you eyeball the transformations that you want to make.
But the most interesting is a new widget for setting tool options. It
combines a "spinbox," a text label, and a slider into a single unit
(several examples are shown at left). You can adjust its value with finesse using the spinbox +/- buttons, edit it precisely with the keyboard, or drag and slide it with the cursor (which is intended to be a particular boon for tablet users). There does not appear to be a name for the new widget (I am secretly hoping for "splader"), but in the code it is implemented as a GimpSpinScale.
Working with brush dynamics (the manner in which brush tools respond to
pressure-sensitive tablet usage) is also improved in the unstable GIMP
builds. The GUI has been completely redesigned (a GSoC 2009 project), you
can edit custom response curves for each metric, and you can change the
rotation and aspect ratio of any brush. There is still not quite as much
control over brush behaviors in GIMP as there is in a painting-centric
application like Krita or MyPaint, but this set of changes offers a
noticeable improvement of benefit to tablet users.
Two other changes are also reminiscent of the direction taken in recent Krita builds. First, you can save (and name) your customized brush dynamics presets, and switch between them quickly in the tool palette. There is a more general tool preset system as well, which allows you to save the current settings of any tool (including the foreground and background color selections) to a dock-able "Tool Presets" dialog, and access it in the future with one click. That aids in reproducing tricky settings, particularly where destructive editing is concerned and extended trial-and-error would consume too much time.
Second, a close cousin to the tool preset and brush dynamic preset
functionality is the ability to assign keyword tags to resources, and to
filter through them by tag. "Resources" in this sense refers to image
editing components like colors, gradients, textures, or brushes. GIMP can
share resources with a large number of applications (both free and
proprietary), and among designers collecting them is a hobby. It is all
too easy to amass a large, unwieldy collection if you work with GIMP all the time, so tagging allows you to whittle down the excess. Finally, you can export color palettes used in GIMP into a variety of forms suitable for consumption in other applications — notably CSS stylesheets, PHP or Python dictionaries, and Java color maps.
The truly under-the-hood work
A final category of improvements includes those non-interactive features and utilities that benefit you even if you do not notice them during the typical editing session.
This includes support for new file formats — GIMP 2.8 can now import and export to the OpenRaster interchange format, can import JPEG2000 files, and can export images directly to PDF. It also includes cleanup work like adding new texture brushes and clearing out old and accidentally-duplicated brushes, adding IPv6 support (which GIMP and its plug-ins use to retrieve objects from the web), and adding support for right-to-left languages in the interface. The project has also moved to GPLv3+ and LGPLv3+ (the latter for the library components of the code, naturally), a decision that may not immediately affect users, but is noteworthy for developers.
I also appreciate a few of the minor enhancements simply because they are useful to me personally. For example, GIMP can now print crop marks automatically when printing an image — the checkbox is found in the "Image Settings" tab of the Print dialog. I can see a number of projects where that will prove valuable. Another example is the ability to assign custom function mappings to arbitrary buttons on your input devices. GIMP has allowed this for graphics tablets before, but in 2.8 you can do the same thing for the spare buttons on your mouse, trackball, or jog/shuttle controller. I have been experimenting with mapping Undo and Redo to the extra buttons on my trackball; I am not yet sure if they are here to stay, or if horizontal scrolling would be more useful.
Several of the new features mentioned above are only possible because of the ongoing work to port GIMP internals to new toolkits. For example, the Cage tool is implemented entirely in GEGL operations (the next-generation image processing core being incrementally merged into the application), and the GIMP team has dictated that all new tools be written for GEGL from the ground up, a decision that will affect some work in the next development cycle. But the Cage tool also makes use of GIMP's port to Cairo as the rendering engine, replacing older GDK bits. As a result, the on-canvas controls are smoother-looking and just-translucent enough to let you see some of the pixels underneath them.
The GEGL and Cairo porting work continues, and will not end with the release of 2.8. This release adds layer scaling, layer modes, floating selections, and projection (which is GIMP terminology for compositing layers onto the canvas view) to the list of subsystems ported to GEGL. There is also new selection code, new save/export code, and new APIs for plug-in writers. Documentation (particularly for the plug-in authors) is still forthcoming, although there is activity in the Git repository.
The GIMPs of the future
Speaking of ongoing work, the last major update to the stable GIMP was 2.6.0, back in 2008. The project has made it clear in recent months that it wants to shift to a faster update cycle, and to develop new features on feature-branches to be merged back in once complete — changes which are no simple task given the size of the code base and the small development team. The project's pace has always been a popular target for detractors, but it seems to have staked out a definitive roadmap that covers the completion of long-standing major tasks (such as rewriting the internals to use GEGL) and ongoing feature development.
According to Alexandre Prokoudine at Libre Graphics World, the plan is still to release 2.8 by the end of 2011, a decision that forced the team to delay one or two key features that had previously been slated for the 2.8 release. The next major milestone is now expected to be 2.10, which will integrate the last of the still-unadopted GSoC work: a Warp tool, Seamless Clone tool, a new widget for changing image and layer sizes, functional masks for layer groups, and the porting of all image filters to GEGL. It is not clear whether or not that milestone also includes GSoC work to add a GPU back-end to GEGL via the OpenCL framework or not.
The plan then calls for version 3.0, which will be a "port" of 2.10's functionality to GTK+ 3, and will finalize the transition of internal functions to GEGL buffers. That release will mark the debut of the most-requested feature in recent years, support for editing images in 16-bit-per-channel — and higher — bit depths. The roadmap does extend beyond 3.0, and includes other major enhancements like non-destructive editing, which was previewed as far back as Libre Graphics Meeting 2010, and marks the start of a new development direction — requiring new interface conventions and file formats at the very least.
There are no dates associated with any of the future milestones, but in practice they would not be too useful more than one release cycle out anyway. GIMP is developed without financial underwriting from a major distribution or other open source software company; a fact that its critics tend to overlook when lamenting floating tool palettes or other pain points. Nevertheless, it advances year after year, and the 2.8 release cycle holds a great deal of new functionality for end users. Hopefully it will not be another three years before 2.10; accelerating the development cycle would probably help draw in new users, plug-in writers, and perhaps even core developers. In the meantime, however, there is enough new in the next stable release to keep most people busy for a while.
Comments (8 posted)
Thanks to the contribution of Michael Bauer, a volunteer who took
the long-time-abandoned Scottish Gaelic translation and produced a
complete UI localization in just a few months, LibreOffice 3.4.4
adds yet another native-language version, bringing the total to
105. This shows the unparalleled value of copyleft licenses for end
user software, as LibreOffice is now the most-important office
suite when it comes to protecting cultural heritage worldwide,
especially when the number of native speakers is not sufficiently
attractive for large corporations to devote localization resources
-- Andras Timar
Title: Python 2.8 Release Schedule
This document describes the development and release schedule for Python 2.8.
The current schedule is:
- 2.8 final Never
There will never be an official Python 2.8 release.
The official upgrade path from Python 2.7 is to Python 3.
-- Barry Warsaw
Comments (none posted)
Following a last-minute request
"transactional memory" GCC branch has been merged into the trunk for the
4.7.0 release. Transactional memory is specified in a
draft standard [PDF]
for C and C++; the idea is to provide a relatively
simple way for developers to execute code with atomic "all or nothing"
A transaction looks something like this:
/* Stuff done here is atomic */
Anything done within the __transaction block will either be
visible to other threads in its entirety or not at all. Most exits from a
transaction (return, goto, or break, for
example) will cause it to close normally. There is a
__transaction_cancel statement that can abort (and roll back) a
There are some constraints, naturally. If changes to a specific
variable are protected by a transaction in one place, all accesses to that
variable must be done within transactions. Transactions can only be rolled
back if they consist of exclusively "safe" statements; performing I/O is an
obvious way to lose transactional semantics. Exception handling gets more
complicated. All this leads to a certain
amount of complexity, with developers needing to mark functions as being
"safe," add Java-like declarations of exceptions that a function may raise,
and so on.
Details on the specific implementation are scarce; it appears that, in the
current patch set, transactions will be implemented using a global lock.
GCC developers debated for a bit over whether this code was ready for
merging or not. In the end, though, the possibility of being the first to
support an interesting new feature seemed to win out. Current plans are to
release 4.7.0 sometime around next April.
Comments (8 posted)
announcement of a new Firefox release
on the Mozilla blog does not
mention a version number anywhere, but the actual release calls itself
"Firefox 8." The headline feature appears (sadly) to be a Twitter
search option. Beyond that, this release disables add-ons by third-party
programs and adds a "load tabs on demand" preference option along with
improved performance and a number of security fixes; see the release
Comments (87 posted)
Recutils is "a set of tools and libraries to access human-editable,
text-based databases called recfiles. The data is stored as a
sequence of records, each record containing an arbitrary number of
" New features in the just-announced 1.4 release
include support for encryption and sorting, an improved manual,
Full Story (comments: none)
is an interactive
development environment for the Python language; see this page
a list of features and screen shots. The 2.1 release is out; key
improvements include a lot of performance work, PySide
support, a new profiler plugin,
and more. Details can be found in the
Full Story (comments: none)
Newsletters and articles
Comments (none posted)
at the 3.5.13 release
from the Trinity Desktop Project. "For
people who prefer the KDE 3.5-style desktop, a new version of the Trinity
Desktop Environment (TDE) has been released. Trinity is a continuation of
the KDE 3.5 Desktop Environment with ongoing updates and new
" The release has a new control panel for monitors,
a new compositor, and a number of new applications.
Comments (37 posted)
The Register has a
review of XFCE
. "Perhaps more important to GNOME 3 refugees,
Xfce isn't planning to try 'revolutionising' the desktop
experience. Development is historically very slow — the recently released
Xfce 4.8 was two years in the making — and the Xfce project tends to pride
itself on the lack of new features in each release. The focus is generally
improving existing features, polishing rough edges and fixing bugs rather
than trying to out whiz-bang the competitors.
Comments (214 posted)
Page editor: Jonathan Corbet
Next page: Announcements>>