numixproject / numix-icon-theme

Official base icon theme from the Numix project.
http://numixproject.github.io
GNU General Public License v3.0
770 stars 87 forks source link

Only inherit themes which are really needed #1444

Open alexxcons opened 1 month ago

alexxcons commented 1 month ago

Hi Numix team,

now that the related xdg merge request got merged and v0.18 of the spec got released, I am starting my mission to get the "Inherits" attribute right for popular icon-themes to prevent potentially missing icons :slightly_smiling_face:

Currently Numix has:

Inherits=Adwaita,breeze,gnome,hicolor

I wonder why Adwaita, gnome and breeze are listed here ... is Numix lacking some fd.org icons which need to be provided by these?

If there is no strong reason to keep them in the Inherits list, I would suggest dropping them.

If one/some of the other themes need to stay on the list for some reason, it make sense to have a section in the README.md to explain packagers that the numix-ixon-theme package should have a hard dependency on the other listed themes.

palob commented 1 week ago

Hi, thanks for pointing this out.

There's some quirk with Numix you don't see with other themes: We've got separate themes for app icons (Circle, Square) which are designed in a different visual style and are provided in only one size (as opposed to Numix base=numix-icon-theme). There is some overlap between the app icon themes and Numix base (and Adwaitaor breeze) in the sense you'll find icons of the same name. This is because in some desktop environments we cater for some of these duplicates are supposed to be app icons (in the Numix design language) while in other DEs they aren't. Normally the app icon theme will take precedence over Numix base (or Adwaita or breeze), the inherits make sure icons which are a bitter fit design-wise and size-wise in the respective context are shown. Note that we mostly don't provide *-symbolic icons or 16px icons which are designed in a GNOME-style symbolic way simply because there's "too less material to carve out a distinct Numixy design".

I can confirm that without the Adwaita inheritance I see out-of-place icons in GNOME apps. I'm a bit out of the KDE side of things loop. I recall some blank spots in KDE apps for icons we don't provide without the breeze inheritance in the past.

Now this inheritance line dates back quite a while and it's a hacky solution. Best practice would be to test whether the duplicative icons names are still needed in our app icons themes (they were at some point for DEs like Xfce, Cinnamon, LXDE/Qt) or remove them regardless.

So yes, technically this is a dependency on Adwaita and breeze. However since you only need those inheritances for GNOME or KDE apps (which depend on Adwaita/breeze in all distros I know of) it effectively isn't. But I can add a section to the README.

A profound fix for this isn't likely in the near future given I'm the only person working on Numix these days at capacity keeping the app icon themes up to date.

gnome can be dropped right away, it has long been deprecated I think.

alexxcons commented 1 week ago

Thank you for the details!

If an App requires additional icons which are not part of the standard, according to the spec,that App should either install these additional icons itself into the "hicolor" folder or use a fallback theme during icon loading.

So if an App misses providing these additional icons and relies on having other themes in the Inherit tree, you should report that to the app developers. If these icons are used by multiple applications, it might make sense to request a new icon-name for them on freedesktop.org, so that all themes can ship that icon.

KDE currently is implementing a fallback for their icon-loader, so that breeze will always be used as fallback if the current theme does not ship some KDE specific icons: https://invent.kde.org/frameworks/kiconthemes/-/issues/3

So it probably will make sense to drop breeze from the Inherit list, once that MR got merged and released.

I can confirm that without the Adwaita inheritance I see out-of-place icons in GNOME apps.

Which apps exactly, and which icons are missing? If you do not open an issue against them, I can do so.

Note that we mostly don't provide *-symbolic icons

Yea, symbolic icons currently are a blind spot, since they are not yet part of the fd.org spec. There is currently an issue about adding them to the spec, though so far no concrete MR. Symbolic versions of icons are pretty much used everywhere these days, and most likely will be added to the spec soon. If Numix does not provide them, it probably makes sense to Inherit from some other icon-theme which does so and request a hard package dependency on it.