KDE and LightDM revisited.

It’s been a long time since my last blog post on LightDM and things have changed significantly since then.

LightDM is a login manager (think KDM/GDM) for Linux, it is written in a way that is completely backend/frontend independent so we can share our the complex parts with our Gnome friends, whilst keeping KDE UI layers on top. It is currently the default display manager in Ubuntu, and the front end they’ve made looks gorgeous.

There are two parts I’ve been working on, Qt bindings for LightDM which means anyone can easily write a whole new front end method in Qt, and a KDE front end using all the best KDE tech. The library has been majorly rewritten and the KDE front end has undergone a lot of work in the past few weeks..

The front end I’m building allows for loading of any QML file, which provides theme support. These themes are incredibly flexible, and allow the allow use of Plasma widgets, as well as anything else QML can provide. It’s still /really/ fast.

On top of the flexible each theme can be configured indepantly which means we avoid the state we’ve seen elsewhere of options that don’t do anything, or having to write a whole new theme just to change the background image.

Rather than talking, here is a load of screenshots, showing the two shipped themes and the start of the config.

Obviously everything shown below is a definite work in progress, far from finished, but everything generally works, and is starting to come together.

This is all avilable in a PPA for Ubuntu users at ppa:agateau/lightdm-kde.

Code is available from here, and LightDM available from here.

Hopefully this will be the first of several new blog posts with updates.

Please don’t post comments about KDM, I wanted to redo the login experience, I looked at both and concluded that LightDM was the easiest to write a new UI layer for, and IMHO the more promising future with regards to support and features, such as guest support. If you have an opinion otherwise, you may as well keep it to yourself because I won’t care.