Difference between revisions of "LightDM"

From ArchWiki
Jump to: navigation, search
(Greeter)
(28 intermediate revisions by 16 users not shown)
Line 1: Line 1:
 
[[Category:Display managers]]
 
[[Category:Display managers]]
 
[[es:LightDM]]
 
[[es:LightDM]]
 +
[[fr:LightDM]]
 
{{Article summary start}}
 
{{Article summary start}}
 
{{Article summary text|Provides an overview and setup of the Light Display Manager.}}
 
{{Article summary text|Provides an overview and setup of the Light Display Manager.}}
 
{{Article summary heading|Related}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|Display Manager}}
 
{{Article summary wiki|Display Manager}}
 +
{{Article summary wiki|GDM}}
 +
{{Article summary wiki|KDM}}
 +
{{Article summary wiki|SLiM}}
 
{{Article summary end}}
 
{{Article summary end}}
  
[http://www.freedesktop.org/wiki/Software/LightDM Lightdm] LightDM is a cross-desktop display manager that aims to be the standard display manager for the X.org X server.
+
[http://www.freedesktop.org/wiki/Software/LightDM LightDM] is a cross-desktop display manager that aims to be the standard display manager for the X server. Its key features are:
 +
* A lightweight codebase
 +
* Standards compliant (PAM, ConsoleKit, etc)
 +
* A well defined interface between the server and the user interface.
 +
* Cross-desktop (user interfaces can be written in any toolkit).
 +
 
 +
More details about LightDM's design can be found [http://www.freedesktop.org/wiki/Software/LightDM/Design here].
  
 
== Installation ==
 
== Installation ==
 
+
Install {{Pkg|lightdm}} from the [[official repositories]]. You can also install {{AUR|lightdm-devel}} for the development branch or {{AUR|lightdm-bzr}} from the [[AUR]].
Currently,  {{AUR|lightdm}} resides in the [[AUR]]. Install it like any other AUR package.
+
  
 
=== Greeter===
 
=== Greeter===
You will also need {{AUR|lightdm-gtk-greeter}} from the [[AUR]].
+
You will also need to install a greeter (a user interface for LightDM). The reference greeter is ''lightdm-gtk-greeter'', which is provided by {{Pkg|lightdm-gtk3-greeter}}. KDE users can install {{Pkg|lightdm-kde-greeter}}, a greeter based on Qt.
 +
 
 +
Other greeters can be installed from the [[AUR]] as well:
 +
* {{AUR|lightdm-webkit-greeter}}: A greeter that uses Webkit for theming.
 +
* {{AUR|lightdm-crowd-greeter}}: A 3D greeter that lets you select your profile from 3D characters walking around.
 +
* {{AUR|lightdm-unity-greeter}}: The greeter used by Ubuntu's [[Unity]].
 +
* {{AUR|razor-lightdm-greeter}}: A greeter for the [[Razor-qt]] desktop environment.
 +
* {{AUR|lightdm-pantheon-greeter}}: A LightDM greeter from the ElementaryOS Project.
  
Other greeters can be installed:  
+
You can change the default greeter by changing the configuration file to state:
* {{AUR|lightdm-webkit-greeter}}
+
{{hc|/etc/lightdm/lightdm.conf|
* {{AUR|lightdm-crowd-greeter}}
+
greeter-session=lightdm-yourgreeter-greeter
* {{AUR|lightdm-kde}}
+
}}
* {{AUR|lightdm-unity-greeter}}
+
  
To change the default greeter ({{AUR|lightdm-gtk-greeter}}) edit the lightdm PKGBUILD and change the line
+
It is also possible to change the default greeter at compile time by changing the line containing:
 
  --with-greeter-session=lightdm-gtk-greeter
 
  --with-greeter-session=lightdm-gtk-greeter
 
to
 
to
 
  --with-greeter-session=lightdm-yourgreeter-greeter
 
  --with-greeter-session=lightdm-yourgreeter-greeter
  
You can also choose default greeter by modifying lightdm.conf.
+
== Enabling LightDM ==
e.g.
+
Make sure that the '''lightdm''' daemon is [[Daemons#Managing_daemons|started]] at boot.
greeter-session=lightdm-kde-greeter
+
Location :
+
/etc/lightdm/lightdm.conf
+
  
== Enabling Lightdm ==
+
=== Testing ===
=== Using Initscripts ===
+
First, [[Pacman|install]] {{Pkg|xorg-server-xephyr}} from the [[official repositories]].
Lightdm can be loaded on startup by entering it in the daemons array in {{ic|rc.conf}}, or by modifying {{ic|inittab}} so it points to lightdm:
+
x:5:respawn:/usr/sbin/lightdm >& /dev/null
+
{{Note|The 'inittab' method is the preferred method to use a graphical greeter. See [[Display_Manager#inittab_method]].}}
+
  
{{Note|Lightdm needs [[dbus]] to be running.  If you get an error about "respawing too fast" you may have forgotten this. Ensure that dbus is in your [[DAEMONS]] array in {{ic|rc.conf}}.}}
+
Then, run LightDM as an X application:
=== Using Systemd ===
+
  $ lightdm --test-mode --debug
For systems using systemd, Lightdm also has a systemd service file, start it with {{ic|systemctl start lightdm.service}} or enable it for boot with {{ic|systemctl enable lightdm.service}}.
+
 
+
See [[Display Manager]] for detailed instructions.
+
  
 
== Optional Configuration and Tweaks ==
 
== Optional Configuration and Tweaks ==
 +
Some greeters have their own configuration files. For example, {{Pkg|lightdm-gtk3-greeter}} has:
 +
/etc/lightdm/lightdm-gtk-greeter.conf
 +
and {{Pkg|lightdm-kde-greeter}} has:
 +
/etc/lightdm/lightdm-kde-greeter.conf
 +
as well as a section in KDE's System Settings (recommended).
 +
 +
LightDM can be configured by directly modifying its configuration script or by using the {{ic|lightdm-set-defaults}} applications
 +
that can be found in {{ic|/usr/lib/lightdm/lightdm/}}. To see some of the options available, execute:
 +
$ man lightdm-set-defaults
 +
 +
There are, however, a lot more variables to modify in the configuration file than by using the {{ic|lightdm-set-defaults}} application.
 +
 
=== Changing Background Images/Colors ===
 
=== Changing Background Images/Colors ===
Users wishing to customize the wallpaper on the greeter screen need to edit {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} defining the '''background''' variable.
+
Users wishing to have a flat color (no image) may simply set the '''background''' variable to a hex color.
  
 
Example:
 
Example:
  background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg
+
  background=#000000
  
Users using the unity-greeter version must edit the {{ic|/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml}} file
+
If you want to use an image instead, see below.
  
And then execute
+
==== GTK+ Greeter ====
 +
Users wishing to customize the wallpaper on the greeter screen need to edit {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} defining the '''background''' variable.
 +
 
 +
Example:
 +
background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg
  
{{ic|glib-compile-schemas /usr/share/glib-2.0/schemas/}}
+
==== 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.
 
According to [https://bbs.archlinux.org/viewtopic.php?id=149945 this] page.
  
 +
{{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.}}
  
 +
==== KDE Greeter ====
 +
Go to ''System Settings > Login Screen (LightDM)'' and change the background image for your theme.
  
{{Note|It is recommended to place png or jpg files in /usr/share/pixmaps since the lightdm user needs read access to the wallpaper file.}}
+
=== Changing your avatar ===
  
Users wishing to have a flat color (no image) may simply set the '''background''' variable to a hex color.
+
==== The .face way ====
 +
Users wishing to customize their image on the greeter screen need to place an image called {{ic|.face}} or {{ic|.face.icon}} in their home directory. Make sure it can be read by LightDM.
  
Example:
+
==== The AccountsService way ====
background=#000000
+
The .face way is known to cause issues, fortunately LightDM is able to automatically use AccountsService if it is installed. AccountsService files need to be set up as follows:
  
=== Changing the Icon ===
+
* A user file named after your user in {{ic|/var/lib/AccountsService/users/johndoe}} containing:
Users wishing to customize the icon on the greeter screen need to edit {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} defining the '''logo''' variable.
+
  
Example:
+
[User]
  logo=/usr/share/icons/hicolor/64x64/devices/archlinux-icon-crystal-64.svg
+
  Icon=/var/lib/AccountsService/icons/johndoe
  
==== Sources of Arch-centric 64x64 Icons ====
+
* A 96x96 PNG icon file in {{ic|/var/lib/AccountsService/icons/johndoe}}
The archlinux-artwork package in [extra] 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:
+
  
 +
{{Note|As at June 2013, the PNG icon file does not get picked up and a workaround is to put the file in /usr/share/icons/hicolor/64x64/devices directory and call it from your /var/lib/AccountsService/users/johndoe user file.  This directory CAN be read by lightdm and the profile avatar will be rendered correctly.
 +
Also, If using AccountsService, it is not necessary to enable the accounts-daemon.service as it's called automatically with the above configuration.}}
 +
==== Sources of Arch-centric 64x64 Icons ====
 +
The {{Pkg|archlinux-artwork}} package from the [[official repositories]] 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 \;
 
  # find /usr/share/archlinux/icons -name "*64*" -exec cp {} /usr/share/icons/hicolor/64x64/devices \;
  
After copying, the archlinux-artwork package can be removed.
+
After copying, the {{Pkg|archlinux-artwork}} package can be removed.
  
 
=== Enabling Autologin ===
 
=== Enabling Autologin ===
Edit {{ic|/etc/lightdm/lightdm.conf}} and change these lines to:
+
Edit the LightDM configuration file and change these lines to:
 +
{{hc|/etc/lightdm/lightdm.conf|<nowiki>
 +
autologin-user=<your_username>
 +
autologin-user-timeout=0</nowiki>
 +
}}
 +
or execute:
  
  [SeatDefaults]
+
  # /usr/lib/lightdm/lightdm/lightdm-set-defaults --autologin=USERNAME
autologin-user=your_user
+
autologin-user-timeout=0
+
pam-service=lightdm-autologin
+
  
==== PAM settings ====
+
LightDM goes through PAM even when {{ic|autologin}} is enabled. You must be part of the {{ic|autologin}} group to be able to login without entering your password:
  
Lightdm goes through PAM even when autologin is enabled. You must make sure that
+
# groupadd autologin
PAM allows the login without prompting for a password.
+
# gpasswd -a ''username'' autologin
  
Create a new group called, say, {{ic|autologin}} and add yourself to the group:
+
{{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.}}
  groupadd autologin
+
  gpasswd -a ''username'' autologin
+
  
Edit {{ic|/etc/pam.d/lightdm-autologin}} and locate the line "auth required pam_unix.so". Add new lines before and after it so that the section now reads:
+
=== Migrating from SLiM ===
  auth [success=1 default=ignore] pam_succeed_if.so user ingroup autologin
+
Move the contents of [[xinitrc]] to [[xprofile]], removing the call to start the [[window manager]] or [[desktop environment]].
  auth required pam_unix.so
+
  auth optional pam_permit.so
+
 
+
This ensures that the user will not be asked for a password when logging in through Lightdm autologin.
+
  
 
=== NumLock ON ===
 
=== NumLock ON ===
Line 110: Line 136:
 
  greeter-setup-script=/usr/bin/numlockx on
 
  greeter-setup-script=/usr/bin/numlockx on
  
=== User switching under xfce4 ===
+
=== User switching under Xfce 4 ===
With the release of xfce4 v4.10, user switching is supported natively. To use it with lightdm, users need only to create a symlink:
+
With the release of Xfce 4.10, user switching is supported natively. To use it with LightDM, users need only to create a symlink:
 
+
  # ln -s /usr/lib/lightdm/lightdm/gdmflexiserver /usr/local/bin/gdmflexiserver
  # ln -s /usr/lib/lightdm/lightdm/gdmflexiserver /usr/bin/gdmflexiserver
+
  
 
Alternatively, see the [[XScreenSaver#Lightdm]] article.
 
Alternatively, see the [[XScreenSaver#Lightdm]] article.
 +
 +
== 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/xessions}}) exists and contains at least one .desktop file.
 +
 +
== See Also ==
 +
* [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 15:10, 20 June 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

LightDM is a cross-desktop display manager that aims to be the standard display manager for the X server. Its key features are:

  • A lightweight codebase
  • Standards compliant (PAM, ConsoleKit, etc)
  • A well defined interface between the server and the user interface.
  • Cross-desktop (user interfaces can be written in any toolkit).

More details about LightDM's design can be found here.

Installation

Install lightdm from the official repositories. You can also install lightdm-develAUR for the development branch or lightdm-bzrAUR from the AUR.

Greeter

You will also need to install a greeter (a user interface for LightDM). The reference greeter is lightdm-gtk-greeter, which is provided by lightdm-gtk3-greeter. KDE users can install lightdm-kde-greeter, a greeter based on Qt.

Other greeters can be installed from the AUR as well:

You can change the default greeter by changing the configuration file to state:

/etc/lightdm/lightdm.conf
greeter-session=lightdm-yourgreeter-greeter

It is also possible to change the default greeter at compile time by changing the line containing:

--with-greeter-session=lightdm-gtk-greeter

to

--with-greeter-session=lightdm-yourgreeter-greeter

Enabling LightDM

Make sure that the lightdm daemon is started at boot.

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

Some greeters have their own configuration files. For example, lightdm-gtk3-greeter has:

/etc/lightdm/lightdm-gtk-greeter.conf

and lightdm-kde-greeter has:

/etc/lightdm/lightdm-kde-greeter.conf

as well as a section in KDE's System Settings (recommended).

LightDM can be configured by directly modifying its configuration script or by using the lightdm-set-defaults applications that can be found in /usr/lib/lightdm/lightdm/. To see some of the options available, execute:

$ man lightdm-set-defaults

There are, however, a lot more variables to modify in the configuration file than by using the lightdm-set-defaults application.

Changing Background Images/Colors

Users wishing to have a flat color (no image) may simply set the background variable to a hex color.

Example:

background=#000000

If you want to use an image instead, see below.

GTK+ Greeter

Users wishing to customize the wallpaper on the greeter screen need to edit /etc/lightdm/lightdm-gtk-greeter.conf defining the background variable.

Example:

background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg

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.

Note: It is recommended to place the PNG or JPG file in /usr/share/pixmaps since the LightDM user needs read access to the wallpaper file.

KDE Greeter

Go to System Settings > Login Screen (LightDM) and change the background image for your theme.

Changing your avatar

The .face way

Users wishing to customize their image on the greeter screen need to place an image called .face or .face.icon in their home directory. Make sure it can be read by LightDM.

The AccountsService way

The .face way is known to cause issues, fortunately LightDM is able to automatically use AccountsService if it is installed. AccountsService files need to be set up as follows:

  • A user file named after your user in /var/lib/AccountsService/users/johndoe containing:
[User]
Icon=/var/lib/AccountsService/icons/johndoe
  • A 96x96 PNG icon file in /var/lib/AccountsService/icons/johndoe
Note: As at June 2013, the PNG icon file does not get picked up and a workaround is to put the file in /usr/share/icons/hicolor/64x64/devices directory and call it from your /var/lib/AccountsService/users/johndoe user file. This directory CAN be read by lightdm and the profile avatar will be rendered correctly. Also, If using AccountsService, it is not necessary to enable the accounts-daemon.service as it's called automatically with the above configuration.

Sources of Arch-centric 64x64 Icons

The archlinux-artwork package from the official repositories 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-artwork package can be removed.

Enabling Autologin

Edit the LightDM configuration file and change these lines to:

/etc/lightdm/lightdm.conf
autologin-user=<your_username>
autologin-user-timeout=0

or execute:

# /usr/lib/lightdm/lightdm/lightdm-set-defaults --autologin=USERNAME

LightDM goes through PAM even when autologin is enabled. You must be part of the autologin group to be able to login without entering your password:

# groupadd autologin
# gpasswd -a username autologin
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.

Migrating from SLiM

Move the contents of xinitrc to xprofile, removing the call to start the window manager or desktop environment.

NumLock ON

Install the numlockx package and the edit /etc/lightdm/lightdm.conf adding the following line:

greeter-setup-script=/usr/bin/numlockx on

User switching under Xfce 4

With the release of Xfce 4.10, user switching is supported natively. To use it with LightDM, users need only to create a symlink:

# ln -s /usr/lib/lightdm/lightdm/gdmflexiserver /usr/local/bin/gdmflexiserver

Alternatively, see the XScreenSaver#Lightdm article.

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/xessions) exists and contains at least one .desktop file.

See Also