Haiku Icons for the Artistically Handicapped

Originally published on Haikuware, November 2008.

If you develop Haiku apps, you want to have a nice icon. Yes, you do. Shipping applications with the default "three blocks" icon looks amateurish in the worst sense of the word.

But just because you are able to cobble lines of code together does not mean that you can create a good-looking icon. Programming may be an art form in its own right, but that does not mean that one has the same amount of talent in another art form, like, say, drawing. And now there is a second stumbling block: in the BeOS days icons were bitmaps, Icon-O-Matic was basically a bitmap editor and even if my icons were not aesthetically the greatest, at least I knew how to make them. In fact, It was an easy and enjoyable little program to use

Haiku still supports those old bitmap icons, but for how much longer? The new format is verctor-based and the new Icon-O-Matic no longer allows you to create new bitmap icons for new applications. Besides, they look pixellated at larger display sizes.

On top of that, the new Icon-O-Matic must be the most counter-intuitive program in the history of computing. I've lost count of the number of times I sat down with the instructions beside me, trying to create something. ANYTHING AT ALL!

There is just something about the way my brain works that does not mesh with the brain of the Icon-O-Matic designer. I can't get it to do anything. Literally. I have yet to have a single line or shape show up on the design screen. This is currently the only thing in Haiku that I hate with a passion. It is the emacs of icon design: very powerful, sure, but only the guy who wrote it understands it at all. 

I don't think it's just me. Since it came out, how many libraries of HVIF icons have been posted on Haikuware? One or two. Back in the BeOS days, there would be a new set of icons on Bebits at least once a month.

Obviously there are people out there who manage to get things done in Icon-O-Matic, or the default Haiku icons would not exist. But I give up. There is an easier way.

Lelldorin has this useful post up on Besly that will tell you how to attach an icon from Icon-o-Matic to your application. I repeat some of his information here just to give a complete picture.

First you need a source of good-looking small pictures to use as icons. It would also help if they were free, open-source, public domain, all those nice things.

This post by tonestone57 tells you how to convert a JPG to SVG and use that instead. But that is still too much like hard work. Let's go straight to SVG instead.

Here is a source of public domain vector clipart that I have found and used. If you know of others, please leave the URLs in the comments. For my program Rondel, I wanted something with a black star as homage to Gruber's website Daring Fireball, where you will find the original Markdown program with which Rondel is compatible. I found several and settled on this one.

Find a  graphic that will go well with your program and download the SVG version. We're not going to edit it, so try to find something that will work the first time. Something simple and straightforward, with just a few  lines and fills. Something more or less square. You will probably find more than one. Download them in SVG format.

Right-click on your executable and select Add-ons : Filetype. Doubleclicking on the icon well will bring up Icon-O-Matic. Now pick up your most likely candidate and drop it on Icon-O-Matic.

From here on, all you do is select Export As from the File menu. Choose BEOS:Icon Attribute as the file format and navigate to your executable file. When asked if you want to overwrite the file, take a deep breath and answer Yes. I know it feels wrong, but that is how it works.

And that's it! Take a look at your app with its brand new icon at different resolutions. If you don't like it, just repeat the process with the other SVG files.

You icon will most likely not comply with Haiku's strict icon guidelines. And that's fine with me. If they give me a design tool that regular human beings can use, I will change my app's icon.


© Michel Clasquin-Johnson 2014-2017