[GSoC 2023] Plans for improving Icon-O-Matic | Haiku Project

Icon-O-Matic is the editor for HVIF files, the format that Haiku’s icons are in. It’s a relatively simple but impressive aplication. It does have room for improvement, however.

This is a companion discussion topic for the original entry at https://www.haiku-os.org/blog/zardshard/2023-05-05_gsoc_2023_plans_for_improving_icon-o-matic/

Have a good journey and learning curves during fixing bugs and improve the code of Icon-O-Matic !

One area of Icon-O-Matic not to focus on is the color picker that opens when you click on the big swatch in the top right corner because I’m getting ready to tear it out and replace it with a system color picker (that looks and behaves mostly the same).


Wishing you all the best of luck to get IOM back on track, it’s one of Haiku’s prominant apps, so giving it some TLC is more then welcome! :ok_hand:


Even if, for working, it is nice to have a maximum of things visible on the main app window, this is leading to fixed spaces for widgets. As a result, the localisation of apps following that design is difficult, looking weird and sometimes makes some widgets barely usable. Unfortunately, having floating windows all over the screen isn’t a good solution either. I hope that will you find the good balance.



On my personal wishlist for Icon-O-Matic is also to move the code to create a hvif from a iom file to the translators, so this can be used in an automated fashion for software builds. (for example the dev of quaternion asked me to provide the icon as the original source for use in the build so it can be more easily maintained)


A bit confusing at first, but after being helped to understand how to use IOM I fell in love with the program. It’s very good and once you understand it, it’s super easy to use. I’m happy that there will be more focus on it again and that it will be further developed.

i have written some tutorials [1] [2] about the program in the past, it would be useful for new users to create more related tutorials here.