Re: Fast User Switch Applet development



Hi Calvin,

On 2/13/07, Calvin Gaisford <cgaisford novell com> wrote:
On Mon, 2007-02-12 at 14:15 -0500, Thomas Thurman wrote:
> On 12/02/07, Calvin Gaisford <cgaisford novell com> wrote:
> > Has there been any discussion on making the Fusa functionality available
> > in other components?  I've been playing around with the code and have
> > created a library and dialog that borrows heavily from the fusa code
> > base.  I'd hate to duplicate this code all over the place and would like
> > to propose an addition that would allow other desktop components to
> > display a switch user UI.
> >
> > There are a bunch of ways this could be done (small application,
> > library, dbus interfaces into fusa, maybe all three?) but I'd like to
> > start a discussion about it.
>
> What would a dbus interface to fusa do that an interface to gdm
> wouldn't? After all, fusa is nothing but a bunch of code to do applet
> stuff and a bunch of code to talk to gdm. Very recently, gdm itself
> has added a dbus interface, and I'm working on making fusa use that.
> So what you want is probably to talk to gdm directly.

The dbus interface was just an idea to get the applet to popup a
switching UI... perhaps not that useful if a library is created.  Beyond
the applet and gdm code, fusa has some nice code to retrieve switchable
users with their icons, names, and active logins.  It would be nice to
share that code through a library so other components don't have to copy
or reproduce it.

One problem is that the way FUSA works at the moment is not very
efficient.  It does things like periodically polling gdm for updates,
watching /etc/passwd, /etc/shells, and the gdm.conf files for changes,
storing information on all users and user images, etc.  Basically
every copy is a little polling database daemon.  So, it doesn't really
lend itself to making into a library in its current form.

This is not the fault of FUSA, by the way.  We just don't have the
necessary framework to do this right.  I think that is really where we
need to direct our energy.

I think we need:
 1. A framework for defining and tracking login sessions
       - what sessions are available
       - which session is active
       - can we switch to that session (ie. is it on the same seat)
       - session add/remove events

2. A framework for user directory services
       - what users are available
       - get/set metadata for user (user images, default timezone,
anything in about-me, etc)
       - user add/remove events

David and I have been trying to solve at least the first problem with
ConsoleKit.  The second problem I've only started to think about.  For
the purposes of FUSA I think the things we still need better answers
to are:

 * How can we sanely detect new users and removed users when not
using /etc/passwd?
 * What is a reasonable way (ie. not the way we do it now) to manage
and retrieve face images?

And before anyone asks if we should support FUS for arbitrary name
service providers.. yes we should. :)

So, what do you want to add a user-switching interface to?

Jon



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]