How to install icons for multiple themes

Milian Wolff mail at milianw.de
Thu Apr 20 10:30:04 BST 2017


On Montag, 17. April 2017 23:36:24 CEST Albert Astals Cid wrote:
> El dilluns, 17 d’abril de 2017, a les 22:27:15 CEST, Milian Wolff va 
escriure:
> > Hey all,
> > 
> > how is one supposed to install different versions of icons for different
> > icon themes? Say I have an icon for breeze, breeze-dark and oxygen. I went
> > ahead and plumbed it into CMake with ECM's ecm_install_icons specifying
> > THEME accordingly, but at runtime nothing is found... Only if I install
> > into hicolor does it work for me
> > 
> > Stracing makes me wonder whether the lookup rules match the installation
> > logic...
> > 
> > ECM installs to e.g.:
> > 
> > /home/milian/projects/compiled/other/share/icons/breeze/16x16/apps/
> > hotspot.svgz
> > 
> > Strace shows me the nearest match it looks into:
> > /home/milian/projects/compiled/kf5/share/icons/breeze/apps/16/hotspot.svg
> > 
> > - this is a wrong prefix, but both are listed in XDG_DATA_DIRS
> > - it has the wrong directory structure, i.e. it's apps/16 instead of
> > 16x16/
> > apps
> > - it doesn't look for the svgz variant, even though ecm_install_icons says
> > so
> > 
> > So, clearly something is majorly broken here... If I install into the
> > hicolor theme, things start to work since strace also shows that this path
> > is looked up:
> > 
> > /home/milian/projects/compiled/other/share/icons/hicolor/16x16/apps/
> > hotspot.svgz
> > 
> > So I'm at a loss. At what level is this broken? Is this inside the KDE
> > icon
> > subsystem? Is this in ECM? Am I missing some environment variable?
> > 
> > Any help would be appreciated, thanks
> 
> Generally you can't do what you want to do.
> 
> Themes describe where the icons live on their index.theme
> 
> breeze/index.theme says
> [actions/16]
> Size=16
> Context=Actions
> Type=Fixed
> 
> hicolor/index.theme says
> [16x16/actions]
> Size=16
> Context=Actions
> Type=Threshold
> 
> So unless you hardcode the folder names for every single theme you want to
> support into ecm (and hope they don't change) you can't install stuff into
> multiple themes.
> 
> For the svgz vs svg thing, breeze saying
>   KDE-Extensions=.svg
> is the reason for it.

Hey Albert,

sorry for the delay and thanks for the response. The above makes me wonder 
about the functionality of ecm_install_icons. As it stands, it is completely 
broken for anything but the hicolor theme, don't you agree? I would say we 
should fix it there, somehow...

It is very unfortunate that the themes can come up with their own path 
mapping...

How do other applications deal with this situation? Should the apps only 
install hicolor, and the other per-theme icons be submitted to the 
corresponding icon themes?

Cheers

-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20170420/53a2a4cc/attachment.sig>


More information about the kde-core-devel mailing list