Gnome Iconset Builder

Sep 24 2004

Today I was wondering about having some nice gui management app for icon themes. It is fairly painful to manage a huge amount of artwork especially when using CVS. All the copying, adding, editing of Makefiles, ChangeLogs. While I try not to be a slacker, a lot of the icons in gnome-icon-theme do not have all possible (and necersary) sizes to render crisp at all times.

I know at one point, Alex hacked up a small app to show icons in a theme that helped me in seeing what icons will still need work on certain sizes.

Today, Ben pointed me to a project that solves a lot of the pain dealing with themes (funny thing I didn’t tell anyone about this, nice coincidence). Note that none of the tarball downloads worked for me, but CVS checkout did it.

The project is hosted at Novell Forge and maintained by Tomislav Markovski. Although it appears to be at a very early stage, it already is helpful in many ways:

  • Creates complete directory structure for new theme.

  • Provides customizable list of icon names. Shows items that have at least one pixmap in bold.

  • Provides a list of icon sizes (definable when creating a theme). Again, sizes for which a pixmap exists are shown in bold. Has a nice preview of the icon.

  • When adding a pixmap to an icon entity, automatically creates smaller sizes by scaling. This of course needs touch-up, but usually is the first step for creating an icon at lower resolution. Not always, but usually.

  • Works on themes in ~/.icons/ so it’s ready to use as you work on it.


Of course there’s a lot I’d like to see in future:

  • Undo. Some things like accidental removal of an icon (wrong size selected, oops) do happen.

  • Renaming. Since we do not yet have a spec for icon naming, it is likely at one point we will need to rename a lot of icons. I’m no scripting/regex guru to conveniently do this, so I’d love to be able to this withing the GUI for all sizes once.

  • Log. It would be nice if it tracked changes like renaming, additions, edits etc in a Changelog.

  • CVS sync. I know, I’m starting to describe my wet dream here, but it would rock to have a graphical notification of what pixmaps have changed since last CVS checkout and have a simple sync button that would commit all the changes with the appropriate changelog.

  • Nested directories. The stock icons in git are too many for a flat directory so I started to nest them into subdirectories/categories. I’m not sure it’s possible to deal with nested structures like that in gib yet.

  • Inheritance context. It should provide some feedback as for what icons are provided by the inherited theme.

  • Editing. Of course the app should not try to be an icon editor, but should make it easy to open a particular icon in the associated application (GIMP/Sodipodi). For bitmaps, it would be extremely helpful to be working with XCFs (layers) and genereate/eport the PNGs automagically (making sure the background layer is off). I ain’t wanting too little, am I?

If anyone’s looking for a project to hack on and would like to see more icons, look no further ;). You’ll make me spend more time in GIMP drawing than copying, editing, committing, renaming, cursing, deleting. I’ll see about helping out with the interface.

Oh and btw, it can always become Generic Iconset Builder once there’s a freedesktop naming standard ;)