GdmLoginToDesktop

Notes from the FaceBrowserLogin BOF

Goal: Reduce the number of transitions

  • Currently too many
  • Leave the login screen there for a while after login, to reduce the perceived delay (maybe add something so we can see we are currently loging in, like the firefox page loading logo)
  • Login session and session on different X servers? [consistent-login spec]
    • - Every user's session needs to run on a different X server - login window should not have its own X server (nothing Xgl-ish again) - therefore switching users requires two X server switches, argh - X server switches are anti-blingy.
  • Modify gdm-theme
    • ability to create a canvas and define transition effects
    • gdm theme defined using SVG
    • SVG+DOM for animations? (rsvg still doesn't do DOM yet)

Easy to achieve effects:

Add support for GL animations in gnome-session, so the time after login can have interesting stuff

  • If background for login window is the same as the default background for the desktop, that makes transitions easier
    • otherwise fade from one to the other
    • if an X server transition is required, maybe fade to black instead?
  • gdm themes are currently a weak programming language
    • Why not replace it by a more powerful programming language?
      • Allow the background to be animated, by giving complete control to a separate function or process? Composite the regular gdm theme on top of it, with transparency or shadows?
      • For extra points, allow gdm to provide ongoing data to the "animation theme", with information such as the position of UI elements (such as the username entry box, so it can move its stuff out of the way) or the current mouse position (for playful follows-mouse stuff)
  • Slow, subtle changes in background of login window?
    • This might be annoying in a lab full of machines.
    • Needs simple compositing manager in gdm
      • -- Probably not, since GDM is the only process running, it can do compositing on its own
    • Currently using gnome-canvas (port to goocanvas API/drawing-model might be scary.)]
      • Needs to support aRGB?
    • Needs compositing manager in GDM (Fun work for Mirco?) maybe needed, not sure
    • Needs OpenGL support in GDM. (Mirco plans to hack on this?) absolutely
    • Is it possible to have GDM retain the root window until nautilus starts and takes over (desrt has a patch)

      • This also allows determinate login process to be shown in the login window
    • Security considerations: If GDM (running as root) can be made to display user-selected images, that might turn a buffer overflow in an image library into a local user privilege-escalation attack (Can we run gdm as a user, not as root, and only use root for some part of the actions (like with a sudo or something like this) )? Probably difficult to do securely, since GDM decides who gets to login. It's sort of like saying that sudo should run as a user process and another root process to actually raise privileges
    • Another security consideration, running another process while GDM is running *might* allow it to steal keystrokes
  • Artists, where are you?
  • Support for the logging-in session to notify the greeter of its progress:
    • The greeter screen sets a property ("_GDM_GREETER_WINDOW") on the root window
      • with its XID.
    • gnome-session (or some other process in the session) finds the greeter window
      • by this mechanism.
    • gnome-session then sets the propery of the same name on the greeter window to
      • be a login progress indication (from 0 to 0xffff).
    • the bling uses this information to somehow let the user know. currently, it
      • is just a progress bar....

GdmLoginToDesktop (last edited 2008-08-06 16:40:09 by localhost)