Carol came up with a great idea:
write a GIMP plug-in to make a
template for a compact disc label.
I print CD labels in gLabels,
which is a cool and useful program, but it's not nearly as versatile
as the gimp for image creation.

There are several parts to making a CD label: making the shape,
making text on the label look nice, and printing the actual label.
I've been working on all three parts.

Making a basic CD label shape

My CD label script-fu, CDlabel.scm,
gives you the basic CD shape
(in <Toolbox>/Xtns/Script-Fu/Misc/CD label...)
(outer circle with inner hole of the appropriate size -- it knows
about regular and mini CDs), on which you can draw whatever you wish.
It also adds a script in <Image>/Script-Fu/Utils/CD mask...
which you can use it as a mask, applied to some other image.

To install, just save CDlabel.scm to ~/.gimp-version/scripts/CDlabel.scm

There's also a version, CDlabel2.scm,
which is updated for Gimp 2.0 but will no longer run in gimp 1.2.

The easiest way to go is to
design your CD, save it to a png (or some other
format that preserves transparency), then read it in to gLabels
for printing (let gLabels handle the offset and the database of
label sheets).

Originally I wrote it as a Python plugin, CDlabel.py,
which needed
Gimp-Python.
But most people don't have that and it's a bit of a hassle to get;
everyone has script-fu, right?

My "arclayer" plug-in (to bend text or anything else in an arc)
has moved to its own page:
arclayer
page.

Printing to a label sheet using high quality gimp-print

I'm not satisfied with the quality I get from gLabels,
since gnome-print apparently only uses the default printer settings -- it has
no easy way to switch to photo quality to print a really nice label.
(libgnomeprint has a bug with transparent images, so making the background
white instead of transparent helps a bit; but it's still not photo quality.)
But the gimp-print plugin excels at photo quality printing.
So I've made a patch to the latest rev of
gimp-print, 4.2.3, to make it pick up label templates from the
gtk 2.0 version of gLabels. (gLabels changed their format from
the 1.x version to the 2.0 version, but didn't record the version
as part of the file format ... sigh ... so it's important to have
the right template file.)
Here's the second rev of my patch
to gimp-print 4.2.3,
which now can print any label on the page, not just the first label.
I plan on updating it a bit more and then trying to get it checked in to the
gimp-print tree.

To use it you have to build gimp-print from source. Unpack the gimp-print
source, cd into the source directory you just unpacked (e.g.
cd gimp-print-4.2.3 ), apply the patch with
patch < /path/to/gimp-templates.diff.v2 then build
gimp-print according to their instructions (the usual
configure, make, su, make install ).
The next time you print from gimp, you should have a Templates
button in the print dialog.

Hints for tuning CD templates

Templates can be kind of a hassle. No matter what blanks I buy,
the predefined glabels templates don't quite line up. Also, since
alignment of paper in my printer isn't that accurate, I want to print
the CD pattern a bit bigger than the actual label, so that slop in the
page alignment doesn't cause part of the label to be white
(that looks awful).
So I end up making my own templates for the labels I use.
Here's my.template -- put this in
~/.glabels.my.template and glabels and my gimp-print plugin will
pick it up.

Tips for defining your own templates:

Take a label blank, and using a Sharpie or other dark blank pen,
make marks just outside the top, bottom, left and right of each
CD label on the page. (You'll still be able to use this for real
labels, as long as you don't mark on the actual label, just outside it.)

Use my script-fu to make a CD blank.
You might want to choose a color that's expendable (e.g. a color
your printer currently has a lot of).
If you really want to save ink, cut out
all but an outer ring and an inner ring.

Start with a template that's pretty close. (If you haven't installed
gLabels, here's their
predefined-labels.template
file. Put it in /usr/local/share/glabels.)

Print your test image to a cheap sheet of paper (not a real label blank)
using the first label position on the sheet (using either
glabels or gimp-print) and using the lowest quality setting
available (e.g. 180 dpi draft), to save ink and speed up testing.

Line up the printed paper and the marked label blank and hold it up
to the light, and see how close you came.

Now guess at how much to change x0 and y0. gLabels templates use
points, i.e. 1/72 of an inch.

Feed the same page back into the printer upside down, and print again.

Keep iterating (this can take a while). If you get annoyed by how much
paper you're wasting, you can change colors on your test image and then
print over the same piece of paper.

Conclusion

With this software combination, I've been able to print CD
labels that Windows users thought must have been professionally done.
They'll make great holiday gifts!
(One mac-using friend said, "Your backups must look great!" In fact,
I print labels for my backup CDs on cheap matte labels for testing
printer alignment, so my backups tend to have nice pictures that
aren't concentric with the CD. :-)