QML to KDM! Presto!!
24 December 2009The KDE login Manager
The login manager is the “insert password” dialog that gets in the way when you want to use your computer. Of course you may not be the only user of the machine, so it’s somewhat needed when you share the seat. Some facts:- the honorable Stephan ‘coolo’ Kulow landed it in cvs Sept 2nd 1997 (yes, that’s 12 years ago)
- great people like Waldo Bastian and David Faure worked on it
- it’s now maintained by the über-expert Oswald ‘ossi’ Buddenhagent
- I did the graphical themes support, implementing the GDM themes spec back in the KDE3 days
- “The first thing you’ll notice about the new KDE 4 is it’s old login manager” – as David Vignoni says in his controversial blog entry,
The funny thing is: 1 year from now Win7 and MacOS will stare at KDM with envy!! Read on to know the future history.
Kdm Top to Bottom
- backend/* -> the display management core
- kfrontend/*.{cpp,h} -> 90’s GUI, there is even an aliased analog clock..
- kfrontend/themer/* -> graphical themes stuff (just 2243 source lines of code)
Qml to the rescue!
What if we throw away (or keep for “retro-compatibility”) the classic and themer frontends and just add a frontend using QML? This is the name of the language of the Qt Declarative module, that has just seen the light and will be merged into Qt for the 4.7 release.
Imagine this:
- theme creators will have 100X or more expressive power: make snow! login via a tetris puzzle! bounce my webcam picture!
- there will be animated themes (for login, user change, logout, etc..) or simple ones for more ‘classic’ kind of people
- kdm only needs to add a couple of bindings to the qml runtime, like functions for logging in and shutting down / suspend the system
- there is no need for compiled binaries, packages will be interpreted by the qml runtime – finally a painless get-hot-new-stuff (compared to plasma widgets, at least).
Conclusion
I’m not able to mock-up what comes to my mind, but just look at some qml videos on youtube to grab the concept.
What do you think about that? Could this be a low-effort high-inpact development for KDE 4?








