Difference between revisions of "LXDM"

From ArchWiki
Jump to navigation Jump to search
(Initial page, I have often looked to find this and had to dig deep into the lxde page, and since every other display manager has a page why not lxdm?)
 
m (Nits: grammar/readability)
 
(180 intermediate revisions by 70 users not shown)
Line 1: Line 1:
[[Category:Display managers (English)]]
+
[[Category:Display managers]]
{{i18n|LXDM}}
+
[[fr:LXDM]]
 +
[[it:LXDM]]
 +
[[ja:LXDM]]
 +
[[ru:LXDM]]
 +
[[zh-hans:LXDM]]
 +
{{Related articles start}}
 +
{{Related|LXDE}}
 +
{{Related|Display manager}}
 +
{{Related articles end}}
  
From [http://wiki.lxde.org/en/LXDM LXDM - LXDE Display Manager]:
+
LXDM is a lightweight [[display manager]] for the [[LXDE]] [[desktop environment]]. The UI is implemented with [[GTK]] 2.
  
:''LXDM is the lightweight display manager aimed to replace gdm in LXDE distros. The UI is implemented with GTK+. It is stil in early stages of development.''
+
LXDM does not support the [[XDMCP]] protocol. An alternative that does is [[LightDM]].
  
 +
== Installation ==
  
==Installation==
+
[[Install]] the {{Pkg|lxdm}} package, or {{Pkg|lxdm-gtk3}} for the GTK3 version. The development package is {{AUR|lxdm-git}}.
  
To install simply type:
+
[[Enable]] the provided {{ic|lxdm.service}} [[systemd]] unit to start LXDM at boot.
  
{{bc|# pacman -S lxdm}}
+
== Configuration ==
  
To make the graphical login the default method of logging into the system, edit your {{ic|/etc/inittab}} file (recommended) by adding or uncommenting this line:
+
The configuration files for LXDM are all located in {{ic|/etc/lxdm/}}. The main configuration file is {{ic|lxdm.conf}}. Its format is documented in its comments. Another file, {{ic|Xsession}}, is the systemwide x session configuration file and should generally not be edited. All other files in this folder are shell scripts, which are run when certain events happen in LXDM.
{{bc|x:5:respawn:/usr/sbin/lxdm >/dev/null 2>&1}}
 
Alternatively you can add lxdm to your list of daemons in {{ic|/etc/rc.conf}}. These procedures are detailed on the [[Display Manager]] page.
 
  
==Configuration==
+
These are:
The configuration files for LXDM are all located in {{Filename|/etc/lxdm}}. The main configuration file is {{Filename|lxdm.conf}}, and is well documented in it's comments. Another file, {{Filename|Xsession}}, is the systemwide x session configuration file and should generally not be edited. The other files in this folder are all bash scripts, which are run when certain events happen in LXDM.
+
# {{ic|LoginReady}} is executed with root privileges when LXDM is ready to show the login window.
 +
# {{ic|PreLogin}} is run as root before logging a user in.
 +
# {{ic|PostLogin}} is run as the logged-in user right after they have logged in.
 +
# {{ic|PostLogout}} is run as the logged-in user right after they have logged out.
 +
# {{ic|PreReboot}} is run as root before rebooting with LXDM.
 +
# {{ic|PreShutdown}} is run as root before poweroff with LXDM.
 +
 
 +
=== Default session ===
 +
The default session can be set globally, as well as set at an individual-user level. Individual user preferences take precedence over globally set preferences for the user in question.
 +
 
 +
==== Globally ====
 +
 
 +
Edit {{ic|/etc/lxdm/lxdm.conf}} and change the session line to whatever session or DE is desired:
 +
 
 +
{{bc|1=session=/usr/bin/startlxde}}
 +
 
 +
Example using [[Xfce]]:
 +
{{bc|1=session=/usr/bin/startxfce4}}
 +
 
 +
Example using [[Openbox]]:
 +
{{bc|1=session=/usr/bin/openbox-session}}
 +
 
 +
Example using [[GNOME]]:
 +
{{bc|1=session=/usr/bin/gnome-session}}
 +
 
 +
This is useful for themes that have no visible session selection box, and if experiencing trouble using autologin.
 +
 
 +
==== Per user ====
 +
 
 +
To define an individual user's preferred session, simply edit their respective {{ic|~/.dmrc}} to define the selection.
 +
 
 +
Example: user1 wants Xfce4, user2 wants [[Cinnamon]], and user3 wants GNOME:
 +
 
 +
For user1:
 +
[Desktop]
 +
Session=xfce
 +
 
 +
For user2:
 +
[Desktop]
 +
Session=cinnamon
 +
 
 +
For user3:
 +
[Desktop]
 +
Session=gnome
 +
 
 +
=== Autologin ===
 +
 
 +
To log in to one account automatically on startup, without providing a password, find the line in {{ic|/etc/lxdm/lxdm.conf}} that looks like this:
 +
#autologin=dgod
 +
Uncomment it, substituting the target user instead of ''dgod''.
 +
 
 +
=== Last used options ===
 +
 
 +
Previously used LXDM options can be found in:
 +
 
 +
{{hc|/var/lib/lxdm/lxdm.conf|2=
 +
[base]
 +
last_session=/usr/share/xsessions/LXDE.desktop
 +
last_lang=sv_SE.UTF-8
 +
last_langs=sv_SE.UTF-8 fa_IR.UTF-8 en_US.UTF-8}}
 +
 
 +
{{Note|This file is not automatically removed when uninstalling LXDM. It must be removed manually if you want to remove all traces of LXDM options.}}
 +
 
 +
== Tips and tricks ==
  
These are:
+
=== Adding face icons ===
# {{Filename|LoginReady}}: Is executed with root priviledges when LXDM is ready to show the login window.
+
 
# {{Filename|PreLogin}}: Is run as root before logging a user in.
+
A 96x96 px image (jpg or png) can optionally be displayed on a per-user basis, replacing the stock icon. Copy or symlink the target image to {{ic|$HOME/.face}}. The {{Pkg|gnome-control-center}} package supplies some default icons suitable for the lxdm screen. Look under {{ic|/usr/share/pixmaps/faces}} after installing that package.
# {{Filename|PostLogin}}: Is run as the logged-in user right after they have logged in.
+
 
# {{Filename|PostLogout}}: Is run as the logged-in user right after they have logged out.
+
{{Note|
# {{Filename|PreReboot}}: Is run as root before rebooting with LXDM.
+
* Users need not keep {{Pkg|gnome-control-center}} installed to use face icons. Install it, copy the images elsewhere, and remove it.
# {{Filename|PreShutdown}}: Is run as root before poweroff with LXDM.
+
* The user home directory must have r-x permissions for others and the .face file must have r-- permissions for others. This may be undesirable from a security and access perspective if your system has other users: it means anyone else can browse your home directory.
 +
* A graphical tool {{ic|lxdm-config}} shipped with lxdm can be used to place a {{ic|.face}} file in the home directory, along with other configuration.}}
 +
 
 +
=== Simultaneous users and switching users ===
 +
 
 +
LXDM allows multiple users to be logged into different TTYs simultaneously. The following command is used to allow another user to log in without logging out the current user:
 +
 
 +
$ lxdm -c USER_SWITCH
 +
 
 +
{{Note|When the new user logs in, their session is now on the NEXT TTY from tty7. For example, user1 logs in and issues the USER_SWITCH command. Now user2 logs in. User2 will be on tty7 while user1 will be on tty1.}}
 +
 
 +
=== Themes ===
 +
 
 +
The LXDM themes are located in {{ic|/usr/share/lxdm/themes}}.
 +
 
 +
There is only one theme provided with LXDM: Industrial. To display the background file {{ic|wave.svg}} which is part of this theme, install {{Pkg|librsvg}}.
 +
 
 +
{{AUR|lxdm-themes}} provides 6 extra themes: Archlinux, ArchlinuxFull, ArchlinuxTop, Arch-Dark, Arch-Stripes, and IndustrialArch. The ArchStripes and ArchDark themes are also packaged with {{AUR|lxdm-git}} (with different names to avoid file conflicts).
 +
 
 +
Choice of theme is configurable in {{ic|/etc/lxdm/lxdm.conf}}:
 +
 
 +
## the theme of greeter
 +
theme=theme_name
 +
 
 +
You can also configure LXDM to use a GTK theme (stored in {{ic|/usr/share/themes}}) in {{ic|/etc/lxdm/lxdm.conf}}:
 +
 
 +
## GTK theme
 +
gtk_theme=gtk_theme_name
 +
 
 +
=== Advanced Session Configuration ===
 +
 
 +
After a user logs on, LXDM sources ''all'' of the following files, in the below order:
 +
 
 +
# {{ic|/etc/profile}}
 +
# {{ic|~/.profile}}
 +
# {{ic|/etc/xprofile}}
 +
# {{ic|~/.xprofile}}
 +
 
 +
These files can be used to set session environment variables and to start services which  must set certain environment variables in order for clients in the session to be able to use the service, like ssh-agent. See [[Xprofile]] for details.
 +
 
 +
Note that LXDM does ''not'' source {{ic|~/.xinitrc}}, so those migrating from a DM that ''does'' use this file, like [[SLiM]], will have to move their settings elsewhere — probably {{ic|~/.xprofile}}. Also note LXDM does not source {{ic|~/.bash_profile}}.
 +
 
 +
If you still want to use your {{ic|~/.xinitrc}} file, you can add a line to the {{ic|/etc/lxdm/PostLogin}} event file:
 +
 
 +
source ~/.xinitrc
 +
 
 +
LXDM also makes use of .[[Xresources]], .[[Xkbmap]], and .[[Xmodmap]]. See {{ic|/etc/lxdm/Xsession}} for details on how LXDM uses system-wide and per-user configuration files to configure the session.[https://projects.archlinux.org/svntogit/community.git/tree/trunk/Xsession?h=packages/lxdm]
 +
 
 +
== Troubleshooting ==
 +
 
 +
=== White flash ===
  
=====Expected Logout Behavior=====
+
When using the default LXDM {{ic|1=theme=Industrial}} and a dark background image (e.g. {{ic|1=bg=/usr/share/backgrounds/img.png}}) there may be a short bright flash before LXDM starts. This is caused by the {{ic|bg_color:}} property of the selected [[GTK]] theme. To avoid this change {{ic|1=gtk_theme=Adwaita}} to {{ic|1=gtk_theme=Adwaita-dark}} or to another dark theme.
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. If you desire this behaviour, you can edit {{Filename|/etc/lxdm/PostLogout}} like this:
 
  
#!/bin/sh
+
=== Logout Issue ===
 
# Kills all your processes when you log out.
 
killall --user $USER -TERM
 
 
# Set's the desktop background to solid black. Useful if you have multiple monitors.
 
xsetroot -solid black
 
  
=====Autologin=====
+
If you had trouble logging out when using lxdm (e.g. stuck, display freeze, etc..) try uncomment the {{ic|1=reset=1}} option in {{ic|1=/etc/lxdm/lxdm.conf}} to refresh xserver on every logout.
If you want to log in to one account without providing a password, find the line in {{Filename|/etc/lxdm/lxdm.conf}} that looks like this:
 
#autologin=username
 
Uncomment it, then substitute your own username instead of "username".
 

Latest revision as of 01:04, 18 February 2020

LXDM is a lightweight display manager for the LXDE desktop environment. The UI is implemented with GTK 2.

LXDM does not support the XDMCP protocol. An alternative that does is LightDM.

Installation

Install the lxdm package, or lxdm-gtk3 for the GTK3 version. The development package is lxdm-gitAUR.

Enable the provided lxdm.service systemd unit to start LXDM at boot.

Configuration

The configuration files for LXDM are all located in /etc/lxdm/. The main configuration file is lxdm.conf. Its format is documented in its comments. Another file, Xsession, is the systemwide x session configuration file and should generally not be edited. All other files in this folder are shell scripts, which are run when certain events happen in LXDM.

These are:

  1. LoginReady is executed with root privileges when LXDM is ready to show the login window.
  2. PreLogin is run as root before logging a user in.
  3. PostLogin is run as the logged-in user right after they have logged in.
  4. PostLogout is run as the logged-in user right after they have logged out.
  5. PreReboot is run as root before rebooting with LXDM.
  6. PreShutdown is run as root before poweroff with LXDM.

Default session

The default session can be set globally, as well as set at an individual-user level. Individual user preferences take precedence over globally set preferences for the user in question.

Globally

Edit /etc/lxdm/lxdm.conf and change the session line to whatever session or DE is desired:

session=/usr/bin/startlxde

Example using Xfce:

session=/usr/bin/startxfce4

Example using Openbox:

session=/usr/bin/openbox-session

Example using GNOME:

session=/usr/bin/gnome-session

This is useful for themes that have no visible session selection box, and if experiencing trouble using autologin.

Per user

To define an individual user's preferred session, simply edit their respective ~/.dmrc to define the selection.

Example: user1 wants Xfce4, user2 wants Cinnamon, and user3 wants GNOME:

For user1:

[Desktop]
Session=xfce

For user2:

[Desktop]
Session=cinnamon

For user3:

[Desktop]
Session=gnome

Autologin

To log in to one account automatically on startup, without providing a password, find the line in /etc/lxdm/lxdm.conf that looks like this:

#autologin=dgod

Uncomment it, substituting the target user instead of dgod.

Last used options

Previously used LXDM options can be found in:

/var/lib/lxdm/lxdm.conf
[base]
last_session=/usr/share/xsessions/LXDE.desktop
last_lang=sv_SE.UTF-8
last_langs=sv_SE.UTF-8 fa_IR.UTF-8 en_US.UTF-8
Note: This file is not automatically removed when uninstalling LXDM. It must be removed manually if you want to remove all traces of LXDM options.

Tips and tricks

Adding face icons

A 96x96 px image (jpg or png) can optionally be displayed on a per-user basis, replacing the stock icon. Copy or symlink the target image to $HOME/.face. The gnome-control-center package supplies some default icons suitable for the lxdm screen. Look under /usr/share/pixmaps/faces after installing that package.

Note:
  • Users need not keep gnome-control-center installed to use face icons. Install it, copy the images elsewhere, and remove it.
  • The user home directory must have r-x permissions for others and the .face file must have r-- permissions for others. This may be undesirable from a security and access perspective if your system has other users: it means anyone else can browse your home directory.
  • A graphical tool lxdm-config shipped with lxdm can be used to place a .face file in the home directory, along with other configuration.

Simultaneous users and switching users

LXDM allows multiple users to be logged into different TTYs simultaneously. The following command is used to allow another user to log in without logging out the current user:

$ lxdm -c USER_SWITCH
Note: When the new user logs in, their session is now on the NEXT TTY from tty7. For example, user1 logs in and issues the USER_SWITCH command. Now user2 logs in. User2 will be on tty7 while user1 will be on tty1.

Themes

The LXDM themes are located in /usr/share/lxdm/themes.

There is only one theme provided with LXDM: Industrial. To display the background file wave.svg which is part of this theme, install librsvg.

lxdm-themesAUR provides 6 extra themes: Archlinux, ArchlinuxFull, ArchlinuxTop, Arch-Dark, Arch-Stripes, and IndustrialArch. The ArchStripes and ArchDark themes are also packaged with lxdm-gitAUR (with different names to avoid file conflicts).

Choice of theme is configurable in /etc/lxdm/lxdm.conf:

## the theme of greeter
theme=theme_name

You can also configure LXDM to use a GTK theme (stored in /usr/share/themes) in /etc/lxdm/lxdm.conf:

## GTK theme
gtk_theme=gtk_theme_name

Advanced Session Configuration

After a user logs on, LXDM sources all of the following files, in the below order:

  1. /etc/profile
  2. ~/.profile
  3. /etc/xprofile
  4. ~/.xprofile

These files can be used to set session environment variables and to start services which must set certain environment variables in order for clients in the session to be able to use the service, like ssh-agent. See Xprofile for details.

Note that LXDM does not source ~/.xinitrc, so those migrating from a DM that does use this file, like SLiM, will have to move their settings elsewhere — probably ~/.xprofile. Also note LXDM does not source ~/.bash_profile.

If you still want to use your ~/.xinitrc file, you can add a line to the /etc/lxdm/PostLogin event file:

source ~/.xinitrc

LXDM also makes use of .Xresources, .Xkbmap, and .Xmodmap. See /etc/lxdm/Xsession for details on how LXDM uses system-wide and per-user configuration files to configure the session.[1]

Troubleshooting

White flash

When using the default LXDM theme=Industrial and a dark background image (e.g. bg=/usr/share/backgrounds/img.png) there may be a short bright flash before LXDM starts. This is caused by the bg_color: property of the selected GTK theme. To avoid this change gtk_theme=Adwaita to gtk_theme=Adwaita-dark or to another dark theme.

Logout Issue

If you had trouble logging out when using lxdm (e.g. stuck, display freeze, etc..) try uncomment the reset=1 option in /etc/lxdm/lxdm.conf to refresh xserver on every logout.