I often find myself working on icon sets, especially when it comes to giving my own desktop a consistent look. I just cannot stand a single application icon stick out, not matching the overall appearance of my system, so I "just" create a link to an existing icon that fits semantically.
On Linux desktops, icons are arranged in a hierarchial directory structure, that classifies icons by resolution and context. This makes the aforementioned procedure less trivial than it sounds, because one has to copy icons of every resolution into the correct subdirectories. Similar problems sooner or later occur with every kind of icon set of considerable size.
My vision for Icon Set Forge is the creation of a unified and versatile way of loading, exploring, editing and organizing icon sets. Using filters and grouping mechanisms, the user has the ability to execute operations on groups of icons in a smart, intuitive and automated way.
The project is being implemented in C++ using the Qt framework, which makes it possible to compile and run Icon Set Forge on all major desktop operating systems. I have released the source code under the GPLv3 and thereby declared it a free and open source project. Further information for both potential users and developers can be found on Github.
I gave my very best to provide a modular, extensible and well documented class design that makes it easy for others to write a parser that enables Icon Set Forge to work with their favourite icon set type (Android, iOS, Emoticons, ...). Information for people interested in joining development can be found here.
Current State of Development
The main development focus has been on the underlying data structure so far. Nevertheless I provided a simple GUI implementation to demonstrate, that the code "under the hood" works and give an idea of what may be possible in the future. Right now the application is limited to parsing an index.theme file and displaying the corresponding icon set. Moreover simple operations like deletion can already be applied in memory, but are not written to disk yet.