Re: Fast User Switch Applet development



On Tue, 2007-02-13 at 10:53 -0500, William Jon McCann wrote:
> 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?

I've seen user switching showing up in different places and I thought I
might try to clean things up a little (as far as sharing a library of
code rather than copies of the code).  I thought I would start with
gnome-screensaver, gnome-panel (the new logout dialog), and the
fast-user-switching-applet.

I like the framework idea!




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