How to install icons for multiple themes
Albert Astals Cid
aacid at kde.org
Mon Apr 17 22:36:24 BST 2017
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.
Cheers,
Albert
More information about the kde-core-devel
mailing list