Difference between revisions of "LightDM"
Hadrons123 (talk | contribs) m (→Configuration) |
(→Black screen on lid up with light-locker: Removed section, as original writer was not able to reproduce this error on same machine, making this section's validity effectively null and void until it is reproductable.) |
||
(315 intermediate revisions by more than 100 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:Display managers | + | [[Category:Display managers]] |
− | + | [[es:LightDM]] | |
− | {{ | + | [[fr:LightDM]] |
− | {{ | + | [[ja:LightDM]] |
− | {{ | + | [[ru:LightDM]] |
− | {{ | + | [[zh-hans:LightDM]] |
− | {{ | + | {{Related articles start}} |
− | [http://www.freedesktop.org/wiki/Software/LightDM | + | {{Related|Display manager}} |
+ | {{Related|GDM}} | ||
+ | {{Related|LXDM}} | ||
+ | {{Related articles end}} | ||
+ | |||
+ | [http://www.freedesktop.org/wiki/Software/LightDM LightDM] is a cross-desktop [[display manager]]. Its key features are: | ||
+ | * Cross-desktop - supports different desktop technologies. | ||
+ | * Supports different display technologies (X, Mir, ...). | ||
+ | * Lightweight - low memory usage and high performance. | ||
+ | * Supports guest sessions. | ||
+ | * Supports remote login (incoming - XDMCP, VNC, outgoing - XDMCP, pluggable). | ||
+ | * Comprehensive test suite. | ||
+ | * Low code complexity. | ||
+ | |||
+ | More details about LightDM's design can be found [http://www.freedesktop.org/wiki/Software/LightDM/Design here]. | ||
+ | |||
== Installation == | == Installation == | ||
− | |||
− | == Enabling | + | [[Install]] {{Pkg|lightdm}}. Note that stable releases are even-numbered (1.8, 1.10) while development releases are odd-numbered (1.9, 1.11). These development releases are available with {{AUR|lightdm-devel}}. Also available is {{AUR|lightdm-bzr}}. |
− | + | ||
− | + | === Greeter=== | |
− | See [[ | + | |
+ | You will probably want to install a greeter. A greeter is a GUI that prompts the user for credentials, lets the user select a session, and so on. It's possible to use LightDM without a greeter, but only if an automatic login is configured. The reference greeter is {{Pkg|lightdm-gtk-greeter}}. LightDM attempts to use this greeter when started unless configured to do otherwise. | ||
+ | |||
+ | The official repositories contain the following alternative greeters. | ||
+ | * {{Pkg|lightdm-kde-greeter}}: A greeter used with KDE4. | ||
+ | * lightdm-deepin-greeter ({{Pkg|deepin-session-ui}}): A greeter from the [[Deepin]] project. | ||
+ | |||
+ | Other alternative greeters are available in the [[AUR]]. | ||
+ | * {{AUR|lightdm-webkit2-greeter}}: A greeter that uses Webkit2 for theming. It supersedes {{AUR|lightdm-webkit-greeter}}. | ||
+ | * {{AUR|lightdm-unity-greeter}}: The greeter used by Ubuntu's [[Unity]]. | ||
+ | * {{AUR|lightdm-pantheon-greeter}}: A greeter from the elementary OS project. | ||
+ | * {{AUR|lightdm-mini-greeter}}: A minimal, configurable, single-user greeter. | ||
+ | |||
+ | You can set the default greeter by changing the {{ic|[Seat:*]}} section of the LightDM configuration file, like so: | ||
+ | |||
+ | {{hc|/etc/lightdm/lightdm.conf|2= | ||
+ | [Seat:*] | ||
+ | ... | ||
+ | greeter-session=lightdm-yourgreeter-greeter | ||
+ | }} | ||
+ | |||
+ | Which greeters are available? What values may be assigned to the {{ic|greeter-session}} option? Each {{ic|.desktop}} file in the {{ic|/usr/share/xgreeters}} directory denotes an available greeter. In this example, the {{ic|lightdm-gtk-greeter}} and {{ic|lightdm-kde-greeter}} greeters are available: | ||
+ | $ ls -1 /usr/share/xgreeters/ | ||
+ | lightdm-gtk-greeter.desktop | ||
+ | lightdm-kde-greeter.desktop | ||
+ | |||
+ | == Enabling LightDM == | ||
+ | |||
+ | Make sure to [[enable]] {{ic|lightdm.service}} so LightDM will be started at boot, see also [[Display manager#Loading the display manager]]. | ||
+ | |||
+ | == Command line tool == | ||
+ | |||
+ | LightDM offers a command line tool, {{ic|dm-tool}}, which can be used to lock the current seat, switch sessions, etc, which is useful with 'minimalist' window managers and for testing. To see a list of available commands, execute: | ||
+ | $ dm-tool --help | ||
+ | |||
+ | === User switching === | ||
+ | |||
+ | {{Accuracy|Is this warning inappropriate? Don't {{ic|dm-tool lock}} and {{ic|dm-tool switch-to-greeter}} do the equivalent of calling {{ic|loginctl lock-session}}? If your screen locker doesn't register with ''logind'' then there's nothing {{ic|dm-tool ...}} can do - but that's not LightDM's fault. This issue is well known and touched upon [[List_of_applications#Screen_lockers|here]] and [[XScreenSaver#Lock_on_suspend|here]].}} | ||
+ | |||
+ | {{Warning|1=The use of lightDM's built-in screen lockers like {{ic|dm-tool lock}} or {{ic|dm-tool switch-to-greeter}} [https://bbs.archlinux.org/viewtopic.php?pid=1712213#p1712213 are '''not''' recommended]. Use [[#Lock the screen using light-locker|light-locker]] or something from [[List of applications/Security#Screen lockers]].}} | ||
+ | |||
+ | LightDM's ''dm-tool'' command can be used to allow multiple users to be logged in on separate ttys. The following will send a signal requesting that the current session be locked and then will initiate a switch to LightDM's greeter, allowing a new user to log in to the system. | ||
+ | |||
+ | $ dm-tool switch-to-greeter | ||
+ | |||
+ | == Testing == | ||
+ | |||
+ | First, [[install]] {{Pkg|xorg-server-xephyr}} from the [[official repositories]]. | ||
+ | |||
+ | Then, run LightDM as an X application: | ||
+ | $ lightdm --test-mode --debug | ||
+ | |||
+ | == Optional configuration and tweaks == | ||
+ | |||
+ | LightDM can be configured by modifying its config file, {{ic|/etc/lightdm/lightdm.conf}}. | ||
+ | |||
+ | Some greeters have their own configuration files. For example: | ||
+ | |||
+ | {{Pkg|lightdm-gtk-greeter}}: {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} | ||
+ | |||
+ | {{AUR|lightdm-webkit2-greeter}}: {{ic|/etc/lightdm/lightdm-webkit2-greeter.conf}} | ||
+ | |||
+ | {{Pkg|lightdm-kde-greeter}}: {{ic|/etc/lightdm/lightdm-kde-greeter.conf}} | ||
+ | |||
+ | === Changing background images/colors === | ||
+ | |||
+ | You can set the background to a hex color or an image. Some greeters offer more robust background options like background selection from the login screen, random backgrounds, etc. | ||
+ | |||
+ | ==== GTK+ greeter ==== | ||
+ | |||
+ | You can use the {{Pkg|lightdm-gtk-greeter-settings}} gui. | ||
+ | |||
+ | Users wishing to customize the wallpaper on the greeter screen need to edit {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} and define the {{ic|background}} variable under the {{ic|[greeter]}} section. For example: | ||
+ | {{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2= | ||
+ | [greeter] | ||
+ | background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg | ||
+ | }} | ||
+ | |||
+ | {{Note|It is recommended to place the PNG or JPG file in {{ic|/usr/share/pixmaps}} since the LightDM user needs read access to the wallpaper file.}} | ||
+ | |||
+ | ===== GTK3 Dark Theme ===== | ||
+ | GTK3 introduced "dark" alternate color palettes for themes, but lightdm-gtk-greeter does not yet support specifing one natively. A workaround is to override the theme with an evironment variable in {{ic|/usr/share/xgreeters/lightdm-gtk-greeter.desktop}} For example: | ||
+ | {{hc|/usr/share/xgreeters/lightdm-gtk-greeter.desktop|2= | ||
+ | [Desktop Entry] | ||
+ | Name=LightDM GTK+ Greeter | ||
+ | Comment=This runs the GTK+ greeter, it should only be run from LightDM | ||
+ | Exec=env GTK_THEME=Adwaita:dark lightdm-gtk-greeter | ||
+ | Type=Application | ||
+ | X-Ubuntu-Gettext-Domain=lightdm | ||
+ | }} | ||
+ | |||
+ | ==== Webkit2 greeter ==== | ||
+ | |||
+ | The {{AUR|lightdm-webkit2-greeter}} allows you to choose a background image directly on the login screen. It also offers an option to display a random image each time it starts. By default, images are sourced from {{ic|/usr/share/backgrounds}}. You can change the background images directory by editing {{ic|lightdm-webkit2-greeter.conf}}. For example: | ||
+ | {{hc|/etc/lightdm/lightdm-webkit2-greeter.conf|2= | ||
+ | [branding] | ||
+ | background_images = /usr/share/backgrounds | ||
+ | }} | ||
+ | |||
+ | {{Note|The background images directory must be accessible to the LightDM user so it should not be located anywhere under {{ic|/home}}. }} | ||
+ | |||
+ | ==== Unity greeter ==== | ||
+ | |||
+ | Users using the {{AUR|lightdm-unity-greeter}} must edit the {{ic|/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml}} file and then execute: | ||
+ | # glib-compile-schemas /usr/share/glib-2.0/schemas/ | ||
+ | |||
+ | According to [https://bbs.archlinux.org/viewtopic.php?id=149945 this] page. | ||
+ | |||
+ | ==== KDE greeter ==== | ||
+ | |||
+ | Go to ''System Settings > Login Screen (LightDM)'' and change the background image for your theme. | ||
+ | |||
+ | Alternatively, you can edit the {{ic|Background}} variable in {{ic|lightdm-kde-greeter.conf}} : | ||
+ | |||
+ | {{hc|/etc/lightdm/lightdm-kde-greeter.conf|2= | ||
+ | [greeter] | ||
+ | theme-name=classic | ||
+ | |||
+ | [greeter-settings] | ||
+ | Background=/usr/share/archlinux/wallpaper/archlinux-underground.jpg | ||
+ | BackgroundKeepAspectRatio=true | ||
+ | GreetMessage=Welcome to %hostname% | ||
+ | }} | ||
+ | |||
+ | === Changing your avatar === | ||
+ | |||
+ | {{Tip|If you are using KDE, you can change your avatar in KDE System Settings.}} | ||
+ | |||
+ | First, make sure the {{pkg|accountsservice}} package from the [[official repositories]] is installed, then set it up as follows, replacing {{ic|''username''}} with the desired user's login name. The ''.png'' file extension should not be included in the filename. | ||
+ | |||
+ | * Edit or create the file {{ic|/var/lib/AccountsService/users/''username''}}, and add the lines | ||
+ | |||
+ | [User] | ||
+ | Icon=/var/lib/AccountsService/icons/''username'' | ||
+ | |||
+ | * Create the file {{ic|/var/lib/AccountsService/icons/''username''}} using a 96x96 PNG image file. | ||
+ | |||
+ | {{Note|Make sure that both created files have 644 permissions, use [[chmod]] to correct them.}} | ||
+ | |||
+ | === Sources of Arch-centric 64x64 icons === | ||
+ | |||
+ | The {{AUR|archlinux-artwork}} package from the [[AUR]] contains some nice examples that install to {{ic|/usr/share/archlinux/icons}} and that can be copied to {{ic|/usr/share/icons/hicolor/64x64/devices}} as follows: | ||
+ | |||
+ | # find /usr/share/archlinux/icons -name "*64*" -exec cp {} /usr/share/icons/hicolor/64x64/devices \; | ||
+ | |||
+ | After copying, the {{AUR|archlinux-artwork}} package can be removed. | ||
+ | |||
+ | === Enabling autologin === | ||
+ | |||
+ | Edit the LightDM configuration file and ensure these lines are uncommented and correctly configured: | ||
+ | |||
+ | {{hc|/etc/lightdm/lightdm.conf|2= | ||
+ | [Seat:*] | ||
+ | autologin-user=''username'' | ||
+ | }} | ||
+ | |||
+ | You must be part of the {{ic|autologin}} group to be able to login automatically without entering your password: | ||
+ | |||
+ | # groupadd -r autologin | ||
+ | # gpasswd -a ''username'' autologin | ||
+ | |||
+ | LightDM logs in using the session specified in the {{ic|~/.dmrc}} of the user getting logged in automatically. To override this file, specify {{ic|autologin-session}} in {{ic|lightdm.conf}}: | ||
+ | |||
+ | {{hc|/etc/lightdm/lightdm.conf|2= | ||
+ | [Seat:*] | ||
+ | autologin-user=''username'' | ||
+ | autologin-session=''session'' | ||
+ | }} | ||
+ | |||
+ | {{Note|GNOME users, and by extension any gnome-keyring user will have to set up a blank password to their keyring for it to be unlocked automatically.}} | ||
+ | |||
+ | === Enabling interactive passwordless login === | ||
+ | |||
+ | LightDM goes through PAM so you must configure the lightdm configuration of PAM: | ||
+ | |||
+ | {{hc|/etc/pam.d/lightdm|2= | ||
+ | #%PAM-1.0 | ||
+ | '''auth sufficient pam_succeed_if.so user ingroup nopasswdlogin''' | ||
+ | auth include system-login | ||
+ | ... | ||
+ | }} | ||
+ | |||
+ | You must then also be part of the {{ic|nopasswdlogin}} group to be able to login interactively without entering your password: | ||
+ | |||
+ | # groupadd -r nopasswdlogin | ||
+ | # gpasswd -a ''username'' nopasswdlogin | ||
+ | |||
+ | {{Note|GNOME users, and by extension any gnome-keyring user may have to follow the instructions at the end of the previous section on enabling autologin.}} | ||
+ | |||
+ | To create a new user account that logs in automatically and additionally able to login again without a password the user can be created with supplementary membership of both groups, e.g.: | ||
+ | |||
+ | # useradd -mG autologin,nopasswdlogin -s /bin/bash ''username'' | ||
+ | |||
+ | === Hiding system and services users === | ||
+ | To prevent system users from showing-up in the login, install the optional dependency {{Pkg|accountsservice}}, or add the user names to {{ic|/etc/lightdm/users.conf}} under {{ic|hidden-users}}. The first option has the advantage of not needing to update the list when more users are added or removed. | ||
+ | |||
+ | === Migrating from SLiM === | ||
+ | |||
+ | {{Merge|Display Manager|Not LightDM specific (or even SLiM specific for that matter as [[XDM]] also uses [[xinitrc]]). Perhaps this merits a one-liner somewhere on the [[Display Manager]] page?}} | ||
+ | |||
+ | Move the contents of [[xinitrc]] to [[xprofile]], removing the call to start the [[window manager]] or [[desktop environment]]. | ||
+ | |||
+ | === Login using ~/.xinitrc === | ||
+ | |||
+ | See [[Display manager#Run ~/.xinitrc as a session]]. | ||
+ | |||
+ | === NumLock on by default === | ||
+ | |||
+ | Install the {{Pkg|numlockx}} package and then edit {{ic|/etc/lightdm/lightdm.conf}}: | ||
+ | {{hc|/etc/lightdm/lightdm.conf|2= | ||
+ | [Seat:*] | ||
+ | greeter-setup-script=/usr/bin/numlockx on | ||
+ | }} | ||
+ | |||
+ | === Default session === | ||
+ | |||
+ | Lightdm, like other DMs, stores the last-selected xsession in {{ic|~/.dmrc}}. See [[Display manager#Session configuration]] for more info. | ||
+ | |||
+ | === Adjusting the login window's position === | ||
+ | |||
+ | ==== GTK+ greeter ==== | ||
+ | |||
+ | Users need to edit {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} and enter a value for the {{ic|position}} variable. It accepts {{ic|x}} and {{ic|y}} values, either absolute (in pixels) or relative (in percent). Each value can also have an additional anchor location for the window, {{ic|start}}, {{ic|center}} and {{ic|end}} separated from the value by a comma. | ||
+ | |||
+ | Example: | ||
+ | |||
+ | position=200,start 50%,center | ||
+ | |||
+ | === VNC Server === | ||
+ | Lightdm can also be used to connect to via VNC. Make sure to install {{pkg|tigervnc}} on the server side and optionally as your VNC client on the client PC. | ||
+ | |||
+ | Setup an authentication password on the server as root: | ||
+ | |||
+ | # vncpasswd /etc/vncpasswd | ||
+ | |||
+ | Edit the LightDM configuration file as shown below. Note that {{ic|listen-address}} configures the VNC to only listen to connections from localhost. This is used to only allow connections via [[TigerVNC#On_the_client|SSH and port forwarding]]. On the SSH client, make sure that you use {{ic|localhost:5900}} for the tunnel destination; using {{ic|127.0.0.1:5900}} or {{ic|::1:5900}} is not reliable on dual stack network connections. If you want to allow insecure connections you can disable this setting. | ||
+ | |||
+ | {{hc|/etc/lightdm/lightdm.conf|2= | ||
+ | [VNCServer] | ||
+ | enabled=true | ||
+ | command=Xvnc -rfbauth /etc/vncpasswd | ||
+ | port=5900 | ||
+ | listen-address=localhost | ||
+ | width=1024 | ||
+ | height=768 | ||
+ | depth=24 | ||
+ | }} | ||
+ | |||
+ | Now open an SSH tunnel and connect to localhost as described in [[TigerVNC#On the client]]. | ||
+ | |||
+ | {{Note|If you get a blank screen upon opening the VNC connection, try a different LightDM greeter.}} | ||
+ | |||
+ | === Lock the screen using light-locker === | ||
+ | {{Pkg|light-locker}} is a simple screen locker using LightDM to authenticate the user. Once it is installed and running you can lock your session using | ||
+ | $ light-locker-command -l | ||
+ | This requires {{ic|light-locker}} to be started at the beginning of your session - see [[Autostarting]]. | ||
+ | |||
+ | == Troubleshooting == | ||
+ | If you encounter consistent screen flashing and ultimately no LightDM on boot, ensure that you have defined the greeter correctly in LightDM's config file. And if you have correctly defined the GTK greeter, make sure the {{ic|xsessions-directory}} (default: {{ic|/usr/share/xsessions}}) exists and contains at least one .desktop file. | ||
+ | |||
+ | The same error can happen on lightdm startup if the last used session is not available anymore (eg. you last used gnome and then removed the gnome-session package): the easiest workaround is to temporarily restore the removed package. Another solution might be: | ||
+ | |||
+ | # dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:xfce | ||
+ | |||
+ | This example sets the session "xfce" as default for the user 1000. | ||
+ | |||
+ | === Wrong locale displayed === | ||
+ | |||
+ | In case of your locale not being displayed correctly in Lightdm add your locale to {{ic|/etc/environment}} | ||
+ | LANG=pt_PT.utf8 | ||
+ | |||
+ | Alternatively if you want LightDM and its greeters to be in a language other than your set system locale, you can use the {{ic|1=Environment=}} option in [[Systemd#Drop-in files]]. | ||
+ | |||
+ | === Missing icons with GTK greeter === | ||
+ | |||
+ | If you are using {{Pkg|lightdm-gtk-greeter}} as a greeter and it shows placeholder images as icons, make sure valid icon themes and themes are installed and configured. Check the following file: | ||
+ | |||
+ | {{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2= | ||
+ | [greeter] | ||
+ | theme-name=mate # this should be the name of a directory under /usr/share/themes/ | ||
+ | icon-theme-name=mate # this should be the name of a fully featured icons set directory under /usr/share/icons/ | ||
+ | }} | ||
+ | |||
+ | === LightDM freezes on login attempt === | ||
+ | |||
+ | You may find that after entering the correct username and password and attempting to log in, LightDM freezes and you are unable to continue to the desktop. To fix the issue, reinstall the {{Pkg|gdk-pixbuf2}} package. See [https://bbs.archlinux.org/viewtopic.php?id=179031 this forum thread]. | ||
+ | |||
+ | === LightDM displaying in wrong monitor === | ||
+ | |||
+ | If you are using multiple monitors, LightDM may display in the wrong one (e.g. if your primary monitor is on the right). To force the LightDM login screen to display on a specific monitor, edit {{ic|/etc/lightdm/lightdm.conf}} and change the ''display-setup-script'' parameter like this: | ||
+ | {{hc|/etc/lightdm/lightdm.conf|2= | ||
+ | display-setup-script=xrandr --output ''HDMI1'' --primary | ||
+ | }} | ||
+ | |||
+ | Replace ''HDMI1'' with your real monitor ID, which you can find from '''xrandr''' command output. | ||
+ | |||
+ | Alternatively, if you are using the GTK+ greeter, you can edit {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} and add the ''active-monitor'' parameter like this: | ||
+ | {{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2= | ||
+ | [greeter] | ||
+ | active-monitor=0 | ||
+ | }} | ||
+ | |||
+ | Replace 0 with the desired display number. | ||
+ | |||
+ | === LightDM does not appear === | ||
+ | |||
+ | It may happen that your system boots so fast that LightDM service is started before your graphics drivers are properly loaded. If this is your case, you will want to add the following config to your lightdm.conf file: | ||
+ | |||
+ | [LightDM] | ||
+ | logind-check-graphical=true | ||
+ | |||
+ | This setting will tell LightDM to wait until graphics devices are ready before spawning greeters/autostarting sessions on them. | ||
+ | |||
+ | === Pulseaudio not starting automatically === | ||
+ | |||
+ | See [[PulseAudio#Running]]. | ||
+ | |||
+ | === Long pause before LightDM shows up when home is encrypted === | ||
+ | |||
+ | Some LightDM themes try to access the user avatar located in HOME. If your HOME is encrypted, LightDM cannot access it and hangs. To prevent this from happening, you can either: | ||
+ | |||
+ | * Set your avatar as explained in [[#Changing your avatar]] | ||
+ | * for {{Pkg|lightdm-gtk-greeter}} only: {{Ic|<nowiki>hide-user-image = true</nowiki>}} in {{Ic|/etc/lightdm/lightdm-gtk-greeter.conf}} | ||
− | == | + | === Missing power buttons in GTK greeter === |
− | |||
− | |||
− | + | The GTK greeter used to have a button to power off / restart the computer in the top right corner. This has been removed from the default configuration in newer versions of the upstream package ([https://bugzilla.redhat.com/show_bug.cgi?id=1506505 bug report]). To get it back, adapt the following line in {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}}: | |
− | {{ | ||
− | + | {{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2= | |
+ | indicators = ~host;~spacer;~clock;~spacer;~language;~session;~a11y;~power | ||
+ | }} | ||
− | + | == See also == | |
− | [https:// | + | * [https://wiki.ubuntu.com/LightDM Ubuntu Wiki article] |
+ | * [http://wiki.gentoo.org/wiki/LightDM Gentoo Wiki article] | ||
+ | * [https://launchpad.net/lightdm Launchpad Page] | ||
+ | * [http://www.mattfischer.com/blog/?tag=lightdm LightDM blog] |
Revision as of 18:57, 4 January 2018
LightDM is a cross-desktop display manager. Its key features are:
- Cross-desktop - supports different desktop technologies.
- Supports different display technologies (X, Mir, ...).
- Lightweight - low memory usage and high performance.
- Supports guest sessions.
- Supports remote login (incoming - XDMCP, VNC, outgoing - XDMCP, pluggable).
- Comprehensive test suite.
- Low code complexity.
More details about LightDM's design can be found here.
Contents
- 1 Installation
- 2 Enabling LightDM
- 3 Command line tool
- 4 Testing
- 5 Optional configuration and tweaks
- 5.1 Changing background images/colors
- 5.2 Changing your avatar
- 5.3 Sources of Arch-centric 64x64 icons
- 5.4 Enabling autologin
- 5.5 Enabling interactive passwordless login
- 5.6 Hiding system and services users
- 5.7 Migrating from SLiM
- 5.8 Login using ~/.xinitrc
- 5.9 NumLock on by default
- 5.10 Default session
- 5.11 Adjusting the login window's position
- 5.12 VNC Server
- 5.13 Lock the screen using light-locker
- 6 Troubleshooting
- 6.1 Wrong locale displayed
- 6.2 Missing icons with GTK greeter
- 6.3 LightDM freezes on login attempt
- 6.4 LightDM displaying in wrong monitor
- 6.5 LightDM does not appear
- 6.6 Pulseaudio not starting automatically
- 6.7 Long pause before LightDM shows up when home is encrypted
- 6.8 Missing power buttons in GTK greeter
- 7 See also
Installation
Install lightdm. Note that stable releases are even-numbered (1.8, 1.10) while development releases are odd-numbered (1.9, 1.11). These development releases are available with lightdm-develAUR. Also available is lightdm-bzrAUR.
Greeter
You will probably want to install a greeter. A greeter is a GUI that prompts the user for credentials, lets the user select a session, and so on. It's possible to use LightDM without a greeter, but only if an automatic login is configured. The reference greeter is lightdm-gtk-greeter. LightDM attempts to use this greeter when started unless configured to do otherwise.
The official repositories contain the following alternative greeters.
- lightdm-kde-greeter: A greeter used with KDE4.
- lightdm-deepin-greeter (deepin-session-ui): A greeter from the Deepin project.
Other alternative greeters are available in the AUR.
- lightdm-webkit2-greeterAUR: A greeter that uses Webkit2 for theming. It supersedes lightdm-webkit-greeterAUR.
- lightdm-unity-greeterAUR: The greeter used by Ubuntu's Unity.
- lightdm-pantheon-greeterAUR: A greeter from the elementary OS project.
- lightdm-mini-greeterAUR: A minimal, configurable, single-user greeter.
You can set the default greeter by changing the [Seat:*]
section of the LightDM configuration file, like so:
/etc/lightdm/lightdm.conf
[Seat:*] ... greeter-session=lightdm-yourgreeter-greeter
Which greeters are available? What values may be assigned to the greeter-session
option? Each .desktop
file in the /usr/share/xgreeters
directory denotes an available greeter. In this example, the lightdm-gtk-greeter
and lightdm-kde-greeter
greeters are available:
$ ls -1 /usr/share/xgreeters/ lightdm-gtk-greeter.desktop lightdm-kde-greeter.desktop
Enabling LightDM
Make sure to enable lightdm.service
so LightDM will be started at boot, see also Display manager#Loading the display manager.
Command line tool
LightDM offers a command line tool, dm-tool
, which can be used to lock the current seat, switch sessions, etc, which is useful with 'minimalist' window managers and for testing. To see a list of available commands, execute:
$ dm-tool --help
User switching
dm-tool lock
or dm-tool switch-to-greeter
are not recommended. Use light-locker or something from List of applications/Security#Screen lockers.LightDM's dm-tool command can be used to allow multiple users to be logged in on separate ttys. The following will send a signal requesting that the current session be locked and then will initiate a switch to LightDM's greeter, allowing a new user to log in to the system.
$ dm-tool switch-to-greeter
Testing
First, install xorg-server-xephyr from the official repositories.
Then, run LightDM as an X application:
$ lightdm --test-mode --debug
Optional configuration and tweaks
LightDM can be configured by modifying its config file, /etc/lightdm/lightdm.conf
.
Some greeters have their own configuration files. For example:
lightdm-gtk-greeter: /etc/lightdm/lightdm-gtk-greeter.conf
lightdm-webkit2-greeterAUR: /etc/lightdm/lightdm-webkit2-greeter.conf
lightdm-kde-greeter: /etc/lightdm/lightdm-kde-greeter.conf
Changing background images/colors
You can set the background to a hex color or an image. Some greeters offer more robust background options like background selection from the login screen, random backgrounds, etc.
GTK+ greeter
You can use the lightdm-gtk-greeter-settings gui.
Users wishing to customize the wallpaper on the greeter screen need to edit /etc/lightdm/lightdm-gtk-greeter.conf
and define the background
variable under the [greeter]
section. For example:
/etc/lightdm/lightdm-gtk-greeter.conf
[greeter] background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg
/usr/share/pixmaps
since the LightDM user needs read access to the wallpaper file.GTK3 Dark Theme
GTK3 introduced "dark" alternate color palettes for themes, but lightdm-gtk-greeter does not yet support specifing one natively. A workaround is to override the theme with an evironment variable in /usr/share/xgreeters/lightdm-gtk-greeter.desktop
For example:
/usr/share/xgreeters/lightdm-gtk-greeter.desktop
[Desktop Entry] Name=LightDM GTK+ Greeter Comment=This runs the GTK+ greeter, it should only be run from LightDM Exec=env GTK_THEME=Adwaita:dark lightdm-gtk-greeter Type=Application X-Ubuntu-Gettext-Domain=lightdm
Webkit2 greeter
The lightdm-webkit2-greeterAUR allows you to choose a background image directly on the login screen. It also offers an option to display a random image each time it starts. By default, images are sourced from /usr/share/backgrounds
. You can change the background images directory by editing lightdm-webkit2-greeter.conf
. For example:
/etc/lightdm/lightdm-webkit2-greeter.conf
[branding] background_images = /usr/share/backgrounds
/home
. Unity greeter
Users using the lightdm-unity-greeterAUR must edit the /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
file and then execute:
# glib-compile-schemas /usr/share/glib-2.0/schemas/
According to this page.
KDE greeter
Go to System Settings > Login Screen (LightDM) and change the background image for your theme.
Alternatively, you can edit the Background
variable in lightdm-kde-greeter.conf
:
/etc/lightdm/lightdm-kde-greeter.conf
[greeter] theme-name=classic [greeter-settings] Background=/usr/share/archlinux/wallpaper/archlinux-underground.jpg BackgroundKeepAspectRatio=true GreetMessage=Welcome to %hostname%
Changing your avatar
First, make sure the accountsservice package from the official repositories is installed, then set it up as follows, replacing username
with the desired user's login name. The .png file extension should not be included in the filename.
- Edit or create the file
/var/lib/AccountsService/users/username
, and add the lines
[User] Icon=/var/lib/AccountsService/icons/username
- Create the file
/var/lib/AccountsService/icons/username
using a 96x96 PNG image file.
Sources of Arch-centric 64x64 icons
The archlinux-artworkAUR package from the AUR contains some nice examples that install to /usr/share/archlinux/icons
and that can be copied to /usr/share/icons/hicolor/64x64/devices
as follows:
# find /usr/share/archlinux/icons -name "*64*" -exec cp {} /usr/share/icons/hicolor/64x64/devices \;
After copying, the archlinux-artworkAUR package can be removed.
Enabling autologin
Edit the LightDM configuration file and ensure these lines are uncommented and correctly configured:
/etc/lightdm/lightdm.conf
[Seat:*] autologin-user=username
You must be part of the autologin
group to be able to login automatically without entering your password:
# groupadd -r autologin # gpasswd -a username autologin
LightDM logs in using the session specified in the ~/.dmrc
of the user getting logged in automatically. To override this file, specify autologin-session
in lightdm.conf
:
/etc/lightdm/lightdm.conf
[Seat:*] autologin-user=username autologin-session=session
Enabling interactive passwordless login
LightDM goes through PAM so you must configure the lightdm configuration of PAM:
/etc/pam.d/lightdm
#%PAM-1.0 auth sufficient pam_succeed_if.so user ingroup nopasswdlogin auth include system-login ...
You must then also be part of the nopasswdlogin
group to be able to login interactively without entering your password:
# groupadd -r nopasswdlogin # gpasswd -a username nopasswdlogin
To create a new user account that logs in automatically and additionally able to login again without a password the user can be created with supplementary membership of both groups, e.g.:
# useradd -mG autologin,nopasswdlogin -s /bin/bash username
Hiding system and services users
To prevent system users from showing-up in the login, install the optional dependency accountsservice, or add the user names to /etc/lightdm/users.conf
under hidden-users
. The first option has the advantage of not needing to update the list when more users are added or removed.
Migrating from SLiM
Move the contents of xinitrc to xprofile, removing the call to start the window manager or desktop environment.
Login using ~/.xinitrc
See Display manager#Run ~/.xinitrc as a session.
NumLock on by default
Install the numlockx package and then edit /etc/lightdm/lightdm.conf
:
/etc/lightdm/lightdm.conf
[Seat:*] greeter-setup-script=/usr/bin/numlockx on
Default session
Lightdm, like other DMs, stores the last-selected xsession in ~/.dmrc
. See Display manager#Session configuration for more info.
Adjusting the login window's position
GTK+ greeter
Users need to edit /etc/lightdm/lightdm-gtk-greeter.conf
and enter a value for the position
variable. It accepts x
and y
values, either absolute (in pixels) or relative (in percent). Each value can also have an additional anchor location for the window, start
, center
and end
separated from the value by a comma.
Example:
position=200,start 50%,center
VNC Server
Lightdm can also be used to connect to via VNC. Make sure to install tigervnc on the server side and optionally as your VNC client on the client PC.
Setup an authentication password on the server as root:
# vncpasswd /etc/vncpasswd
Edit the LightDM configuration file as shown below. Note that listen-address
configures the VNC to only listen to connections from localhost. This is used to only allow connections via SSH and port forwarding. On the SSH client, make sure that you use localhost:5900
for the tunnel destination; using 127.0.0.1:5900
or ::1:5900
is not reliable on dual stack network connections. If you want to allow insecure connections you can disable this setting.
/etc/lightdm/lightdm.conf
[VNCServer] enabled=true command=Xvnc -rfbauth /etc/vncpasswd port=5900 listen-address=localhost width=1024 height=768 depth=24
Now open an SSH tunnel and connect to localhost as described in TigerVNC#On the client.
Lock the screen using light-locker
light-locker is a simple screen locker using LightDM to authenticate the user. Once it is installed and running you can lock your session using
$ light-locker-command -l
This requires light-locker
to be started at the beginning of your session - see Autostarting.
Troubleshooting
If you encounter consistent screen flashing and ultimately no LightDM on boot, ensure that you have defined the greeter correctly in LightDM's config file. And if you have correctly defined the GTK greeter, make sure the xsessions-directory
(default: /usr/share/xsessions
) exists and contains at least one .desktop file.
The same error can happen on lightdm startup if the last used session is not available anymore (eg. you last used gnome and then removed the gnome-session package): the easiest workaround is to temporarily restore the removed package. Another solution might be:
# dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:xfce
This example sets the session "xfce" as default for the user 1000.
Wrong locale displayed
In case of your locale not being displayed correctly in Lightdm add your locale to /etc/environment
LANG=pt_PT.utf8
Alternatively if you want LightDM and its greeters to be in a language other than your set system locale, you can use the Environment=
option in Systemd#Drop-in files.
Missing icons with GTK greeter
If you are using lightdm-gtk-greeter as a greeter and it shows placeholder images as icons, make sure valid icon themes and themes are installed and configured. Check the following file:
/etc/lightdm/lightdm-gtk-greeter.conf
[greeter] theme-name=mate # this should be the name of a directory under /usr/share/themes/ icon-theme-name=mate # this should be the name of a fully featured icons set directory under /usr/share/icons/
LightDM freezes on login attempt
You may find that after entering the correct username and password and attempting to log in, LightDM freezes and you are unable to continue to the desktop. To fix the issue, reinstall the gdk-pixbuf2 package. See this forum thread.
LightDM displaying in wrong monitor
If you are using multiple monitors, LightDM may display in the wrong one (e.g. if your primary monitor is on the right). To force the LightDM login screen to display on a specific monitor, edit /etc/lightdm/lightdm.conf
and change the display-setup-script parameter like this:
/etc/lightdm/lightdm.conf
display-setup-script=xrandr --output HDMI1 --primary
Replace HDMI1 with your real monitor ID, which you can find from xrandr command output.
Alternatively, if you are using the GTK+ greeter, you can edit /etc/lightdm/lightdm-gtk-greeter.conf
and add the active-monitor parameter like this:
/etc/lightdm/lightdm-gtk-greeter.conf
[greeter] active-monitor=0
Replace 0 with the desired display number.
LightDM does not appear
It may happen that your system boots so fast that LightDM service is started before your graphics drivers are properly loaded. If this is your case, you will want to add the following config to your lightdm.conf file:
[LightDM] logind-check-graphical=true
This setting will tell LightDM to wait until graphics devices are ready before spawning greeters/autostarting sessions on them.
Pulseaudio not starting automatically
See PulseAudio#Running.
Long pause before LightDM shows up when home is encrypted
Some LightDM themes try to access the user avatar located in HOME. If your HOME is encrypted, LightDM cannot access it and hangs. To prevent this from happening, you can either:
- Set your avatar as explained in #Changing your avatar
- for lightdm-gtk-greeter only:
hide-user-image = true
in/etc/lightdm/lightdm-gtk-greeter.conf
Missing power buttons in GTK greeter
The GTK greeter used to have a button to power off / restart the computer in the top right corner. This has been removed from the default configuration in newer versions of the upstream package (bug report). To get it back, adapt the following line in /etc/lightdm/lightdm-gtk-greeter.conf
:
/etc/lightdm/lightdm-gtk-greeter.conf
indicators = ~host;~spacer;~clock;~spacer;~language;~session;~a11y;~power