Monday, July 05, 2010

LightDM

I'd like to announce a side-project I've been working on: The Light Display Manager (LightDM).

Features?

  • Fully themeable (easiest with the webkit interface)
  • Cross-desktop (greeters can be written in any toolkit)
  • Low-complexity codebase
  • Standards compliant (PAM, ConsoleKit, etc)

Tell me about themeing...

This is the part I'm most excited about...

You can try the webkit interface online today. My HTML/CSS/Javascript skills are not great so please take that page, copy the lightdm.js include line (simulates the lightdm interface) and write an awesome interface! Please leave a comment here if you make a cool one. Idea - make a greeter that integrates with Facebook.

Got bigger plans? Read the libldmgreeter reference. Idea - make an OpenGL interface that uses Mii avatars.

libldmgreeter not in the right language for you? It supports GObject introspection so you should be able to write a greeter in any introspetion enabled languange (e.g. Python). And the interface to lightdm is D-Bus so you can go more direct if you want.

Wait, what is a display manager again?

The display manager handles the running of the X server (graphical display) on your system. It also provides the login screen (greeter) to authenticate users.

Who is developing this?

This is a personal project developed in my own time. Patches, feedback and help welcome.

What about the other display managers?

LightDM aims to support all use cases of the current display managers, from embedded to desktop systems. LightDM is still in early development and not suitable for use in production systems.

Where can I get it?

Source is in Launchpad (bzr clone lp:lightdm) and tarball releases.

If you are using Ubuntu (Lucid or Maverick) you can install it from a PPA:
$ sudo add-apt-repository ppa:robert-ancell/lightdm
$ sudo apt-get update
$ sudo apt-get install lightdm lightdm-theme-webkit lightdm-theme-gnome


You can test lightdm by running it in a window:
$ sudo apt-get install xserver-xephyr
Create the file lightdm.conf:
[Greeter]
theme=webkit
$ lightdm --test-mode -c lightdm.conf

11/11/2010 - Updated test instructions

32 comments:

Andrew said...

This is awesome, what a great idea!

I shall definitely have a look at this!

Anonymous said...

Very interesting idea indeed...
What about an inclusion in Chromium OS ?

Anonymous said...

Hi Robert
Hope its design will allow multiseat desktop. However no one dm has it yet although there are some patches for gdm sleeping in the gnome and freedesktop bugzilla.

Robert Ancell said...

Multiseat is planned:
https://bugs.launchpad.net/lightdm/+bug/593493

I don't know a lot about what is required for multiseat so please link to any appropriate information in the bug report

Jonas Finnemann Jensen said...

Sounds cool, but isn't WebKit a little overkill...
Shouldn't a program for login screens focus on being really small and quick to load?

Maybe if WebKit needs to be loaded immediate after login (Chromium OS).

Robert Ancell said...

@Jonas, the WebKit greeter is just one of the available greeters. I would expect it to be slower but it would be the most easily configurable one. For a default greeter I would expect a GNOME based system to use a GTK+ greeter and a KDE based system to use a QT greeter.

Anonymous said...

I followed your testing instructions exactly and I am getting tired of waiting for it to do something. When I run "sudo lightdm -c lightdm.conf" It just sist there. No errors, no lightdms, no windows, no nothing.

Robert Ancell said...

Anonymous, the instructions did not match up with the latest version - I have updated them now.

Ryan said...

If you let Alice login http://people.ubuntu.com/~robert-ancell/lightdm/greeter.html to the static pic then hit Back in the browser, the greeter says Alice will login in 0 seconds and proceeds to countdown -1, -2, ...

Unknown said...

"11/11/2020 - Updated test instructions"
Are you doing things in the future ^ :-)

Robert Ancell said...

@fagan - I have my future self also working on the project :)

Anonymous said...

Please work with Debian Xfce folks to get this into Debian!

Unknown said...

Hi

Could you tell me how turn on autologin in Lightdm?

Regards

Robert Ancell said...

Jurek, edit /etc/lightdm.conf and set default-user and default-user-timeout in [default-display]

maxor said...

And it may fedora?

Unknown said...

lightdm has something like gdmchooser?

I need some menu to use -indirect to choose some server and then use -query selected_server.

Anonymous said...

Interesting, if you are using webkit may be its possible to implement authentication using OpenID?

Unknown said...

I'm so desperate to test this out, I want to use it for my own Ubuntu spin. But, I've installed Ubuntu 10.10 from the minimal cd and al i've done before following you're instructions is install xorg, xterm and openbox basically.
I followed this:

$ sudo add-apt-repository ppa:robert-ancell/lightdm
$ sudo apt-get update
$ sudo apt-get install lightdm lightdm-theme-webkit lightdm-theme-gnome

And then rebooted. I see the Plymouth boot screen and then the screen goes dark and nothing loads up. The screen is still backlit though it's just a black screen.

Sorry if this is information overload but I'm stuck here and I want to give this a fair go before slimdm.

Robert Ancell said...

Jamie, can you have a look at /var/log/lightdm and see if there is anything in there? Also, it is worth trying it with --test-mode (after installing Xephyr) from an existing DM and check that works.

Anonymous said...

Another request to get this into Debian, as SLiM doesn't get along with consolekit and appears abandoned. If I'm reading reports correctly, xdm isn't working with ck either . . .

Anonymous said...

I was looking at this to use in Debian but it would remove live-config live-config-sysvinit and sysvinit, I keep live-config for reference in building live Debian systems.
And would install upstart which many Debian users have said is too buggy in Debian.

Ypetremann said...

I like making html interface for application and I just maked one. I will upload it on http://project-d.s.gp/lightdm
If the link don't work, it is because it is not uploaded

Unknown said...

For multiseat there is now in GDM(up to 2.20) a non handled server started and than several Xservers,one per display:for example 0.1 or 0.2 and so on.
Will this be possible with lightdm?
Will there also be script dir's like postsession postlogin and so on?

Unknown said...

Hi, I am using ubuntu 10.10 and I want to try lightdm. I followed your instructions but when I try to run lightdm using the last command, it does nothing. Please, can you help. And please, can you tell me if this will be available as a full on login manager for ubuntu 10.10 (instead of gdm?)
Instructions I followed
$ sudo add-apt-repository ppa:robert-ancell/lightdm
$ sudo apt-get update
$ sudo apt-get install lightdm lightdm-theme-webkit lightdm-theme-gnome

You can test lightdm by running it in a window:
$ sudo apt-get install xserver-xephyr
Create the file lightdm.conf:
[Greeter]
theme=webkit
$ lightdm --test-mode -c lightdm.conf

Anonymous said...

The code above didn't work for me.

In fact there's no need to add any code. I'm using the latest 0.3.4 release and as long as the 'lightdm-example-gtk' package is installed it should load that by default.

In order to change the theme you will need to enter one of the following under the [default-display] section of: /etc/lightdm.conf

greeter-theme=example-vala-gtk-gnome
greeter-theme=example-qt-kde
greeter-theme=webkit


...each entry is dependent on that greeter package having been installed with apt/synaptic.

Btw. entering:
greeter-theme=example-gtk-gnome

...is the same as not entering anything (this seems to be the default greeter-theme as mentioned above)

There's also:
greeter-theme=example-python-gtk-gnome

...but this doesn't work for me.

NOTE: Lightdm currently appears to be far from ready for primetime and would advise everyone other than the curious to give it a pass for a few months until it matures.

Apart from the 'example-gtk-gnome' greeter each theme is VERY basic (usually only a username and password field).

Also I was unable to login to any session other than KDE. Typically selecting a session would display an error stating either:

Failed to load session "gnome"

Or alternatively...

Failed to load session "ubuntu"

Anonymous said...

Hi
Is possibly to compile to debian package?
Debian use sysvinit, Ubuntu use upstart.
I tried compile from source but without succes.
Please advice.
Regards
Jurek

gd said...

i am doing multiseat now with xgl.
With gdm I start a non-handled mainxserver on :0.
Then I start two xservers 0.0 and 0.1.
Is this possible with lightdm?

xar said...

Is LightDM compatible with Debian? I hear Ubuntu is using it now instead of GDM. Is there an howto somewhere?

iahvector said...

Hi, I installed lightdm on my Ubuntu 11.04 and I had some problems with it. First, there's no mouse until I login. Second, I want to remove the guest account. Third, I want to change the default theme. It looks just like gdm I didn't know where to put the [Greeter] code in lightdm.conf so I created it in my home folder the passed the parameter folloing -c as full path to it but nothing changed.

This is the screenshot of what I get http://www.mediafire.com/i/?1d7v4sj4jpa4vsd

Unknown said...

LightDM 0.9.2-3 packages are available in official Debian repositories.

I picked it up from 0.9.4, pre-build Debian packages are available at http://anu.homelinux.net/pub/Debian/

I miss one thing, none of the greeters touch /var/log/btmp and, or /var/log/wtmp records, hence the 'who', 'w' and 'last' commands fail to provide relevant information; the 'write' also fails to find logged in users.

OzK said...

Just add the ppa and do a sudo apt-get update. Then:

sudo apt-get install lightdm lightdm-theme-webkit lightdm-theme-gnomeReading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package lightdm


ubuntu Lucid.

AnthraxBass said...

Could you please write a guide about installing LightDM on top of Minimal Fedora? It takes some manual configuration, but I don't know how to do that.