System Tray Configuration

Lubos Lunak l.lunak at
Tue Nov 30 12:53:51 GMT 2004

On Monday 29 of November 2004 19:43, Aaron J. Seigo wrote:
> On Monday 29 November 2004 06:44, Martin Koller wrote:
> > Hi list,
> >
> > in the systray configuration dialog, I can not for all systray embedded
> > apps see the correct icon (instead I see the generic X11 icon).
> > Specifically this is true for the klaptopdaemon, which is a kded module
> > (... guessing: and therefore has no main window and no icon associated
> > with it).
> > As the systray applet gets the members and the icons somehow from
> > kwin_module, is there also a way to get the icon which is currently shown
> > in systray ?
> we could take a screenshot of the contents of the systray, but that doesn't
> work well for hidden icons. it also looks horrible when you have a
> background or transparency turned on. look at what systrayv2 looks like
> doing this (e.g. not so great).
> it also doesn't work out so well if the systray "icon" is larger than your
> typical icon, which does happen (i have the BR's to prove it ;)
> the best thing is for the entries that don't have an icon to provide one.
> you don't need a main window AFAIK, just set the icon for the systray icon
> "window".

 Actually, according to the XDG systray spec[*], the systray windows should 
provide _NET_WM_NAME, WM_CLASS and _NET_WM_ICON properties. Qt already sets 
WM_CLASS, I could add setting of _NET_WM_ICON and _NET_WM_NAME to 
KSystemTray, the system tray applet could fetch it using the KWin kdecore 
class then.

 Icon could be handled by overriding KSystemTray::setPixmap(), that'd be 
enough to have icons. I'm not sure how to set _NET_WM_NAME ( ~ window title) 
automatically, any ideas?

[*] which happens to be unreachable at the present time, just like other specs 
at fd.o

Lubos Lunak
KDE developer
SuSE CR, s.r.o.  e-mail: l.lunak at , l.lunak at
Drahobejlova 27  tel: +420 2 9654 2373
190 00 Praha 9   fax: +420 2 9654 2374
Czech Republic

More information about the kde-core-devel mailing list