Jon A. Cruz wrote:
Now... the old way for applications was to hardcode their locations. Newer developments added support for the XDG directory specification. (...) Then a user can change sets, themes being used, MRU, etc, just by launching with a different XDG environment variable set.
You confuse assets with icon theming. It's very different from other things like markers or templates. APPNAME_DATA_DIR is not the user's data directory. It is the system-wide application data directory, e.g. /usr/share/inkscape. *We do not want to have any icons in Inkscape's user data dir.* If the theme author puts appropriately named icons in his theme to support Inkscape, and the user installs it, it just works. No need to put anything in Inkscape's directories.
The fallback order is: 1. The user's chosen theme. The theme author should provide icons for us here. This location is already in gtk_icon_theme_get_default(), and we mustn't touch it. 2. The system's fallback theme (hicolor). Same as above, it's already added to the search path by GTK. 3. Our icons from /usr/share/inkscape/icons. We use them if no one provided icons for us. This we must add using gtk_icon_theme_append_search_path(), to put it at the end.
Regards, Krzysztof Kosiński