KDM (KDE Display Manager) is the login manager of KDE. It supports themes, auto-logging, session type choice, and numerous other features.
# pacman -S kdebase-workspace
The configuration file for KDM can be found at
/usr/share/doc/HTML/en/kdm/kdmrc-ref.docbook for all options.
You can visit System Settings > Login Screen and make your changes. Whenever you press "Apply", a KDE Polkit authorization window appears which will ask you to give your root password in order to finish the changes.
If you seem not to be able to edit KDM's settings when launching System Settings as user, you can use kdesu:
$ kdesu kcmshell4 kdm
In the pop-up kdesu window, enter your root password and wait for System Settings to be launched. Then go to Login Screen.
Arch Linux KDM themes can be installed with:
# pacman -S archlinux-themes-kdm
Many other KDM 4 themes are available at http://kde-look.org/index.php?xcontentmode=41. Choose between the installed themes in System Settings (run as root) as described above.
Themes files are in
The theme format is the same one as GDM, a documentation can be found here: Detailed Description of Theme XML format.
To force the number of dots per inch of the X server, add a -dpi option to ServerArgsLocal. A commonly used value is 96 dpi.
[...] ServerArgsLocal=-dpi 96 -nolisten tcp [...]
Allow Root login
To allow root login in KDM do:
# sed -ie 's/AllowRootLogin=false/AllowRootLogin=true/' /usr/share/config/kdm/kdmrc
This variable stores a list of directories containing session type definitions in
.desktop format, ordered by falling priority. In Arch Linux some window managers install such files in
/usr/share/xsessions. Add that to the list in order to be able to select them in KDM:
[...] SessionsDirs=/usr/share/config/kdm/sessions,/usr/share/apps/kdm/sessions,/usr/share/xsessions [...]
The Session variable is the name of a program which is run as the user who logs in. It is supposed to interpret the session argument (see SessionsDirs) and start the session as desired for that argument. One may wish to customize this for window manager sessions, for example to set a wallpaper and start a screensaver. To do this in a way which will survive pacman updates (which clobber Xsession) do as follows:
# cp /usr/share/config/kdm/Xsession /usr/share/config/kdm/Xsession.custom
[...] Session=/usr/share/config/kdm/Xsession.custom [...]
And then edit
Xsession.custom as desired.
To allow users to restart the X server from KDM, edit this option in
[X-:*-Greeter] [...] # Show the "Restart X Server"/"Close Connection" action in the greeter. # Default is true AllowClose=true [...]
This feature will be available in the menu drop-down options. The option also includes a hotkey of
KDM keyboard keymap can be set through the configuration system (login screen section).
If setting the language in the configuration system does not affect keyboard map, you can try to edit /usr/share/config/kdm/Xsetup and add command:
where cz is the Czech keyboard layout. Since the file may get overwritten on the next upgrade, you may want to protect it in /etc/pacman.conf:
NoUpgrade = usr/share/config/kdm/Xsetup
NB that the leading slash / must not be there.
Slow KDM Start
If KDM is taking a long time to display the login screen (e.g. 15-30 seconds) you may try rebuilding the X font caches:
# fc-cache -fv
KDM and Gnome-keyring
To automatically unlock the Gnome-keyring upon login in KDM
add the following line to your
/etc/pam.de/kde right behind the
auth include system-login line:
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
session include system-login
To automatically re-unlock the keyring when you unlock your screensaver open
/etc/pam.d/kscreensaver and add
auth optional pam_gnome_keyring.so
as the last line.