Skip to content

RFC: Make all 16px and 22px symbolic device icons use -symbolic suffix

When using the Breeze icon theme, currently it is impossible to get a colorful device icon at 16px or 22px size when requesting one of the icons with a non-symbolic name, because a maze of symlinks gives you a symbolic one anyway.

This commit undoes that such that if you want a symbolic device icon at the 16px or 22px size, you need to explicitly ask for it. This has some pros and cons.

RFC because this patch is designed to stimulate discussion. It would be a very big change, and if we want to make this change, we should ultimately do it for all 16px and 22px icons, not just those in the Devices category. I started there to get a sense of whether it would be possible or not, and it is. But there are some drawbacks. Here are the pros and cons:

Pros

The Breeze icon theme becomes more semantically correct, and we gain the capacity to fix https://bugs.kde.org/show_bug.cgi?id=426753, as it becomes possible to deliberately display colorful icons at 16px and 22px size, downscaled from whatever their original size is. We want this in System Settings, for example. With this patch, it's now possible to always see a color icon for the Disks & Cameras group:

Pros

Cons

Apps that do want symbolic versions of these icons at 16px and 22px size, must now change to explicitly request them, by appending -symbolic to the name of the themed icon they ask for. If they don't, they'll start seeing colorful icons where currently they get monochrome ones. An example from the Places panel:

Cons

So ultimately it boils down to whether we want to gain a capability we don't have right now, in exchange for giving ourselves a lot of minor porting work.

Alternatives to this:

  • Add a new colorful icon for the Disks & Cameras group: !292 (merged)
  • Add some logic to KIconLoader to govern colorful-vs-symbolic behavior that would be triggered by, say, appending a new special -colorful suffix to the end of the icon name you're requesting. Then the developer could use this to force the display of a downscaled-large-and-therefore-colorful icon rather than showing an appropriately-sized-yet-possibly-monochrome icon.

@teams/vdg

Edited by Nate Graham

Merge request reports