{August 19, 2008}   kdm notes

while I was at akademy, ossi took the time to explain kdm a bit. unfortunately my notes were in my backpack, so I’d better write down what I remember before it goes away. feel free to correct me on anything I may have mis-remembered. :)

kdm has a backend and a frontend. the backend is scary code that handles authentication and such. the frontend is the gui most people see when starting the computer.

the backend is kinda like a very complicated kcheckpass. or more accurately, kcheckpass is a subset of its functionality. apparently PAM authentication has four parts, and kcheckpass only does one of them, whereas kdm needs all four.

the frontend… is really better explained with a diagram.

kdm uses krootimage to draw a pretty background (kinda like plasma’s wallpaper plugins). the actual widgets in the middle (user list, login options, etc) are done by the greeter (like a plasmoid, but not really). the greeter loads a “greeter plugin” that provides the widgets for entering your name and password (I wonder if it’d work as a proxywidget?). I’ve never seen anything other than the default, but apparently there can be other fields there for more complicated authentication setups. there’s a set of authentication plugins for the backend to go with these greeter plugins, iirc.

the neat thing about the greeter plugins (imho anyways) is that they’re also used by the screensaver’s unlock dialog. it just passes the data to kcheckpass for authentication instead. :) hooray for code re-use.

the lock dialog also has user-switching stuff that I’ve never used myself, and I had some notes about that. hmm. the button to switch users brings up a list of existing sessions. you can then switch to one of those or click a ‘new session’ button. that button has a confirmation dialog (apparently some graphics cards don’t like multiple sessions) and then it’ll spawn a new kdm.

I think that’s everything I had written down on kdm. yay! :) now if only I remembered the rest of my notes that well…

IMHO Kdm should use libplasma.

I think this would improve the boot time and possiblities.

There is a SoC project about plasma and screensavers.

Maybe there is a away of bundling.

Jos says:

‘There is a SoC project about plasma and screensavers.’

Interesting, I wonder who works on that. ;-)

Chani says:

you may have noticed several little comments relating kdm to bits of plasma in there. there is a reason for that. don’t expect to see anything anytime soon, though; school takes priority.

oh, and I really doubt it would improve boot time. probably quite the opposite right now… I do hope qt 4.5’s optimizations help with plasma’s startup time.

Chani says:

some notes: by “spawn a new kdm” I meant that it starts a new X server and runs kdm there.

also, ossi tells me krootimage isn’t used in themed mode. the greeter covers the whole screen then. huh.

IAnjo says:

I think KDM is really needing some love, including its mostly unusable configuration dialog in systemsettings. Having a libplasma-powered kdm would be very cool.

Adrian Baugh says:

It would be cool if kdm (and kcheckpass etc. – maybe even kwallet?) supported the thinkfinger driver for the fingerprint reader on Thinkpads. There is a standard pam module for this and it works for login at the console, sudo, gdm etc….

Maybe not exactly your area but if kdm is getting a bit of love and attention it would be good to see this implemented.

Yves says:

Would the following be possible:

– Put the backend-functionality of KDM into a shared library
– Create a plasmoid which represents the frontend of KDM, and which loads the backend-lib
– Load /usr/bin/plasma instead of /usr/bin/kdm on system bootup
– Have a nice clock and weather applet on the login screen :-)


It might improve boot time of KDE to have libplasma already started, albeit as a different user. (Probably not by much though).

Rex Dieter says:

> – Have a nice clock and weather applet on the login screen :-)

I’d settle for powermanagement and/or something NetworkManager-wise would be nice too.

Aaron Seigo says:

@Adrian Baugh: fingerprint scanning is already supported, though you need to do a bit of tweaking. google should probably turn up how.

as for kdmplasma, i think it’s a no-brainer, really =)

Comments are closed.

et cetera
%d bloggers like this: