Icons missing on ssh -X, or: no real system default for icon theme

Friedrich W. H. Kossebau kossebau at kde.org
Thu Dec 10 15:38:11 GMT 2015


Am Sonntag, 6. Dezember 2015, 23:39:13 schrieb Albert Astals Cid:
> El Sunday 06 December 2015, a les 13:56:19, Thorsten Zachmann va escriure:
> > Hello all,
> > 
> > I use a separate user for running calligra. I use ssh -X to login from my
> > normal desktop user to my kde running user. However when I start any
> > kde application  I have no icons.
> 
> You are not using any desktop environment thus the Qt defaults to the
> generic Unix icon theme, i.e. hicolor.
> 
> Blame Linux for not having a cross desktop environment way to define what is
> the icon theme to use.

Question is who should set what here?

I think there are two issues:

a) with ssh -X the workspace where the GUI is shown is the origin of the ssh 
connection, so its settings ideally are picked up to integrate there, not the 
one of the system where the app is executed

b) workspace icon theme might be one whose (inherited) catalog does not 
contain everything needed by the app


NO SYSTEM SETTING FOR REAL DEFAULT ICON THEME

For a) I have no clue how the needed info could be passed to the app, so it 
(or the QPA plugin) knows what to try to use in terms of theme/language/etc. 
Anyone with an idea here?
Though X itself does not know about icon themes, so doing ssh -X with just a 
plain X server behind should also be supported, when just DISPLAY and some 
XAUTHORITY (& else?) would be set by ssh -X.

Then, IIRC "hicolor" is only an imaginary fallback theme, never to be set used 
itself (there also is no hicolor default theme for the min. recommended icon 
names from fdo). So ending up with "hicolor" as theme set is an error in any 
case, right?
As Albert said, seems there currently is no option to set a system-wide real 
default icon theme (which then would be used or overruled by whatever 
workspace in which apps run locally).
So time to add one, via XDG. Any takers to push that? And until that has been 
established, any ideas how to support that by some non-standard namespaced KF5 
temporary solution? It would need patching of the non-KF5/Plasma Qt QPA 
plugin, to read some env var or some file, I assume?
How would that best be implemented?



HARDCODING THEMES, PLEASE ONLY AS ULTIMA RATIO

For b) IMHO hardcoding apps to one certain theme should not be the only answer 
we can come up with. I would see that as a step back rather:
* there would be duplicated efforts in icon creation with everyone doing there 
own special themed icon (copies)
* at runtime even different versions of the same icon type might be used, as 
each app has its own copy (& not updated in-sync from normal breeze iconset)
* preventing new icon themes to be created, as every app would need to be 
hacked to enable the new theme during development
* one currently does not know what icons the KF5/Qt5/* libs & plugins used by 
the app need and if they exist (imagine you hardcoded to "oxygen", and now the 
libs use icons only in breeze. e.g. what if "breeze" is soon dropped for some 
"storm"?)

Instead I would like to see us rather come up with proper documentation of 
icon ids used by the apps (& libs & plugins) and provided by the different 
icon themes.
So it is possible to check to what degree which icon themes match the set of 
apps/plugins/libs one uses. To decide if picking some other fancy icon theme 
will work for the personal needs. Or to see which icons are missings, or which 
are not used at all.

In Calligra we have some initial support for overseeing icon ids used, due to 
some "koIcon" tagging (reusing mechanisms of "i18n"). I hope to brush that up 
and turn that into something for ECM, so everyone can use it. If someone is 
interested to help there, please contact me.

(When creating app bundles for those alien systems like Android, Windows, OSX, 
where each bundle rather needs their own copies of all used libs&resources, 
knowing what subset of icons are used by the own stack allows to avoid to 
include the complete big Breeze icontheme).


> > With strace I can see it searches for
> > icons in the hicolor folder instead of breeze.
> > With the help of David Faure I found out the the icons are shown as
> > expected when I call
> > 
> > export KDE_FULL_SESSION=true
> > 
> > before starting the application.
> > 
> > I think using an application via ssh -X is used quite often and it should
> > work out of the box with the need of setting any special export. Maybe you
> > have an idea on how the behaviour can be improved.
> > 
> > Please CC me as I'm not subscribed to the list.
> > 
> > Thorsten Zachmann

Cheers
Friedrich



More information about the calligra-devel mailing list