- 1 Installation
- 2 Usage
- 3 Configuration
Currently,provides an lxdm.service file. Enable it like any other systemd service:
# systemctl enable lxdm
The configuration files for LXDM are all located in
/etc/lxdm/. The main configuration file is
lxdm.conf, and is well documented in its comments. Another file,
Xsession, is the systemwide x session configuration file and should generally not be edited. The other files in this folder are all shell scripts, which are run when certain events happen in LXDM.
LoginReadyis executed with root privileges when LXDM is ready to show the login window.
PreLoginis run as root before logging a user in.
PostLoginis run as the logged-in user right after he has logged in.
PostLogoutis run as the logged-in user right after he has logged out.
PreRebootis run as root before rebooting with LXDM.
PreShutdownis run as root before poweroff with LXDM.
Unlocking keyrings upon login
When using a key manager such as gnome-keyring to manage passwords for ssh keys,
/etc/pam.d/lxdm should be adjusted to allow users to unlock keyrings upon login if desired. Add the following to the package provided
auth optional pam_gnome_keyring.so session optional pam_gnome_keyring.so auto_start
Adding face icons
A 96x96 px image (jpg or png) can optionally be displayed on a per-user basis replacing the stock icon. Simply copy or symlink the target image to
$HOME/.face. The package supplies some default icons suitable for the lxdm screen. Look under
/usr/share/pixmaps/faces after installing that package.
/etc/lxdm/lxdm.conf and change the session line to whatever session or DE is desired:
Example using xfce:
Example using openbox:
This is useful for themes that have no visible session selection box, and if experiencing trouble using autologin.
To define an individual user's preferred session, simply edit his/her respective
~/.dmrc to define the selection.
Example: user1 wants xfce4, user2 wants cinnamon, and user3 wants gnome:
To log in to one account automatically, without providing a password, find the line in
/etc/lxdm/lxdm.conf that looks like this:
Uncomment it, substituting the target user instead of "username".
This will cause LXDM to automatically login to the specified account when it first starts up. However, if one were to log out of that account, one would have to enter its password to log back into it; if the password was empty, that user will be unable to log into the account. To remedy this and be able to log into the account without entering a password, first delete the password:
$ passwd -d USERNAME
Then, edit the PAM file for LXDM, which is
/etc/pam.d/lxdm. The files in this directory describe how users are authenticated by the various installed programs that need to do some sort of authentication. Change the line that says:
auth required pam_unix.so
auth required pam_unix.so nullok
This will tell the pam_unix authentication module that blank passwords are to be accepted. After making this change, LXDM will log into accounts with blank passwords.
Expected logout behavior
What might be slightly surprising with LXDM is that, by default, it does not clear the last user's desktop background or kill the user's processes when that user logs out. Users desiring this behavior, can edit
/etc/lxdm/PostLogout like this:
#!/bin/sh # Kills all your processes when you log out. killall --user $USER -TERM # Sets the desktop background to solid black. Useful if you have multiple monitors. xsetroot -solid black
Users can replace killall command with the following to exclude ssh and screen processes from termination:
ps --user $USER | egrep -v "ssh|screen" | cut -b11-15 | xargs -t kill
Or to (hopefully) only kill X-Processes and childs:
ps --user $USER | cut -f1,2 -d' ' | egrep "\?$" | cut -d' ' -f1 | xargs -t kill
Another option than killall is to use loginctl:
# Terminate current user session SESSIONID=$(cat /proc/self/sessionid) /usr/bin/loginctl terminate-session $SESSIONID # Restart lxdm /usr/bin/systemctl restart lxdm.service
Shutdown and reboot commands
Shutdown and reboot commands can be configured in
/etc/lxdm/lxdm.conf by adding the [cmd] section:
[cmd] # reboot command reboot=/usr/bin/systemctl reboot # shutdown command shutdown=/usr/bin/systemctl poweroff
To add/remove entries to LXDM's session dropdown menu; create/remove the .desktop files in /usr/share/xsessions as desired. A typical .desktop file will look something like:
[Desktop Entry] Encoding=UTF-8 Name=Openbox Comment=Log in using the Openbox window manager (without a session manager) Exec=/usr/bin/openbox-session TryExec=/usr/bin/openbox-session Icon=openbox.png Type=XSession
By default, LXDM doesn't read ~/.xinitrc but ~/.xprofile. That setup is defined in the
The default behaviour can be adapted by modifying the
Xsession file like this:
#!/bin/bash LXSESSION="$1" if [ -f ~/.xinitrc ]; then . ~/.xinitrc lxdm fi exec /bin/bash -l -c "$LXSESSION"
Simultaneous users and switching users
LXDM allows multiple users to be logged into different ttys at the same time. The following command is used to allow another user to login without logging out the current user:
$ lxdm -c USER_SWITCH
After a user logs out, subsequent users have no access to PulseAudio. The reason is that PulseAudio stores server credentials as properties on the X11 root window, and since LXDM does not restart the X server, these properties are not cleaned up and prevent the sound server from starting up for the next users. To remove these properties on logout, add the following line to
test -x /usr/bin/pax11publish && /usr/bin/pax11publish -r
There is only one theme provided with LXDM, namely Industrial. To display the background file wave.svg which is part of this theme, make sure you haveinstalled.