Thoughts on the systray II.

Lubos Lunak l.lunak at suse.cz
Tue Apr 19 12:58:04 BST 2005


On Monday 18 of April 2005 20:48, Aaron Seigo wrote:
> On April 18, 2005 15:34, Lubos Lunak wrote:
> >  I'm talking about applet-like systray icons now of course, the ones like
> > kxkb, docked cpu/network/whatever indicators and so on,
>
> kxkb is not the same as a network monitor.
>
> yes, a network monitor probably belongs as an applet. though ask yourself:
> WHY didn't they make an applet. answer: form factor. forcing people to make
> applets will lead to me having to add support for "applets that have a form
> factor more like the systray icons used to".

 I think I could argue much better about this if I knew what form factor 
meant, at least after consulting a dictionary and Google :-/ .

> this may make you happy, but 
> all it does it put the problem somewhere else for me.

 Well, but just moving a problem around doesn't do any harm, does it? It 
doesn't solve it, but it also doesn't make things worse. What's the 
difference if you have systray problems to solve or you have applet problems 
to solve? Doing things differently means having some things simpler and some 
more complicated, that's the way it is. I don't have a silver bullet 
solution, I'm just suggesting something that I believe will improve things in 
general.

> but let's say we just 
> tell the network monitor author to get a clue and Do The Right Thing(tm)
> and make it an applet. this doesn't address kxkb:
>
> kxkb does not need to take up the full size of a panel, does it?

 Once more about Kicker's inability to have two applets at the same X 
coordinate ...

> should 
> kxkb need to be added manually by the user or should it just "appear" when
> multiple keyboard layouts are selected? we will end up duplicating all the
> features of the systray

 Not duplicating. If you have something new, it usually replaces the old 
thing.

> elsewhere in the panel to get the desired and most natural behaviour.

 I have certain doubts about a mess of icons stacked in random order in a 
specially reserved area of the Kicker being the desired and natural 
behaviour.

> and then instead of having all our "problems" localized 
> in one little area of the panel, they'll exist everywhere one of these
> "systray like" applets appears ...

 I see. So let's pile up all the broken things into one place, perhaps nobody 
will notice it's there.

>
> have you ever seen that Disney cartoon the Sorcerer's Apprentice? where
> Mickey Mouse cuts up the possessed broom in hopes that breaking it up will
> stop the problem? instead each splinter replicated the problem and he had a
> million little brooms replicating the original problem, swamping the entire
> place.

 Hmm, no, probably not. I guess when I was small I watched instead things like 
the fairy tale from Karel Capek about the dog and kitten trying to make the 
best cake in the world by putting every good thing in it. For some reason all 
those good things to eat tasted much better separately than when mixed 
together ... well, at least one didn't get awfully sick.

> >  In fact in some cases that could be even simpler. E.g. my favourite
> > Klipper quit dialog again - you don't need anything like that with
> > applets. Do you want a new kicker applet? Just add it with the menu.
>
> the more manual intervention the panel requires, the more of a failure it
> is for users. saying "just add it yourself" is abandoning the user and
> making them do what the panel ought to be doing on its own.
>
> we've been here once with the menuapplet.

 Just like with the kxkb example above, it still needs some manual 
intervention. One used to have to add the menuapplet manually because it came 
noticeably later than the standalone menubar feature, and when originally 
writing the menuapplet I still preferred not to use it myself. But now one 
activates the standalone menubar, and the applet for it comes automatically. 
What's the difference to kxkb? Why couldn't one select multiple layouts and 
have the kxkb applet come automatically as well? Sure, you could argue 
there's the question of where exactly it should appear, but the question is 
there also more or less with the kxkb systray icon.

>
> > Do you want a systray icon? Run
>
> ..
>
> > find some checkbox. Or maybe something else, who knows?
>
> this is a highly dramatic interpretation.

 Maybe, but it's true nevertheless.

> >  There may be things that might need some work this way. E.g. Kicker
> > should allow applets not to take the full panel height and two of them
> > have the same X coordinate. I intentionally say X coordinate because I
> > think there's no need to implement a grid. Just if two applets have the
> > same X and fit together within the height, put the first one above the
> > second one.
>
> ... which is a two dimensional grid. and then there has to be a way to
> individually move each applet .... and a way to determine which one is on
> top or on the bottom ...

 No, it's not. If something depends on only one coordinate, then it's not 
really a grid. I can be just like it is now. There is a way to individually 
move each applet now. The way to determine which one is on top is described 
few lines above. Would it be really that difficult to have other applets also 
move up and down like they now move to the sides when you're moving one 
applet?

> hey, it's the systray all over again, only this time spread out across the
> entire panel! ug. 

 I beg to differ.

> >  But I think you still fail to realize what I really want.
>
> i understand what you want. i'm not liking it because it makes a whole lot
> of pain for kicker and will result in a poorer experience for its users.

 Systemtray is a part of kicker, so you'll have your pain anyway. And the 
users already have a poor experience with the systray.

> > mechanism isn't that good either. But the real problem with the systray
> > is that it's just a random inconsistent mess of everything.
>
> right. so let's fix it by defining it better. not "get rid of it completely
> and move the problem everywhere else instead."

 You've never started anew because you simply decided something was broken 
beyond repair?

>
> > > > 4) not using the systray for daemons, quick access and such stuff,
> > > > instead simply not having any GUI for those, or using
> > > > applets/whatever. I'm not actually sure what was the opinion on this.
> > >
> > > depends on the daemon. for some this is the obvious step (e.g. the
> > > uiserver), for others it may not be. i don't think we can classify them
> > > all together unfortunately.
> >
> >  But we can try.
>
> fine; list every daemon that currently has systray icons and see if they
> all work together. this is a change you are trying to promote, so it's up
> to you to do the homework if you care to see this happen.
>
> >  Do you have any examples that'd be different from George's
> > KWallet and print manager case?

 It'll take some time because I don't have a single such a thing in my 
systray. But yes, I guess that's my homework.

> >
> > On Friday 15 of April 2005 23:29, Aaron Seigo wrote:
> > > On April 15, 2005 16:46, Lubos Lunak wrote:
> > > > flags, NET::Trayed and NET::TrayedHidden, first one meaning the
> > > > window
> > >
> > > thinking about this a bit more, i'm ok with using WM hints for now ....
> > > but i'd like to see this move away from being X specific so that it
> > > runs as expected elsewhere too and is therefore futureproofed. of
> > > course, that means having an IPC mechanism that doesn't require an
> > > explicit target but allows the consumer to poll for information as WM
> > > hints do.
> >
> >  It is not X-specific, strictly speaking. Why should you care how
> > KWinModule::trayedWindows() gets the list?
>
> because i'd also like to see things happen like the ability for
> applications not running in the current X session to be represented. i'd 
> like to see more expressiveness than just "hey, here's an icon"; i'd like
> to be able to know if the thing that icon represents is in a state of
> panic, calmness or coma so that it can be reflected in the UI... etc...

 And why exactly is X not good enough for that? Do you have any special 
problem e.g. in the taskbar with knowing a window demands attention, that 
it's minimized, that it's modal, or whatever? As long as it somewhat 
reasonably hidden behind some API, who cares? Not to mention I doubt we're 
going to see KDE the desktop running on something else than X that soon 
anyway.

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




More information about the kde-core-devel mailing list