Comment 10 for bug 274146

Revision history for this message
Martin Pitt (pitti) wrote : Re: Desktop items

CC'ing the bug again, to archive the discussion. I hope you don't mind.

Scott James Remnant [2008-09-30 15:57 +0100]:
> - use gconftool-2 to query the panel applet list and object list:
> /apps/panel/general/applet_id_list
> /apps/panel/generic/object_id_list
>
> (the logout applet is actually an internal object)
>
> - match to /apps/panel/general/applets/*
> and /apps/panel/general/objects/*
>
> - find the logout app and the fusa app, and delete them from the panel
> with gconftool-2
>
> - use --load to load a new applet description for the new fusa app
> (right stick, 0 position) - this has the advantage of attaching
> schema - can get this by --dump on our own
>
> - remember that the applet name needs to be unique ;) we can name it
> whatever we want though

That's exactly the approach that concerned me and which I don't like
at all, since it's just shifting breakage. In particular, there is no
way back: you can't ever use that home directory on an older ubuntu
installation, which happens if you share your /home amongst several
computers in the network (corporate customers *cough*) or just have
several different distros installed at the same time (those kind of
users which also generate the most noise and bad press). Or sharing
your configuration amongst several computers through backup tools,
or ...

For reasons like this I am holding the "don't automatically modify ~
on upgrades" principle very high, and starting to violate it now is a
big step which should be considered thoroughly.

In order to not break compatibility to other distros, I'm also not
much of a fan to invent arbitrary applet names unique to Ubuntu, but
that's a minor aspect, and I'm happy to ignore it if it helps us any
further.

In order to also place something constructive here: IMHO it would be
totally ok if this logic was purely dynamic and wouldn't depend on
gconf changes. Something like:

 - if the old logout applet is configured in the panel, show the new
   f-u-s-a instead
 - if the old f-u-s-a applet is configured:
   - if the new fusa or the old logout applet is configured, ignore
   - else: show the new f-u-s-a

This should give a reasonable semantics without breaking the panel
position or the user's configuration. In particular, it still won't
show f-u-s-a if the user previously had neither, and it maintains the
correct position if the user only had the old fusa and not the logout
applet.

Ted, Seb, is this possible with a reasonable amount of coding?

Thanks,

Martin