Difference between revisions of "LXDM"
(→Configuration) |
|||
(42 intermediate revisions by 20 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:Display managers | + | [[Category:Display managers]] |
− | {{ | + | [[zh-CN:LXDM]] |
− | + | {{Article summary start}} | |
− | + | {{Article summary text| | |
− | + | LXDM is the lightweight display manager aimed to replace gdm in LXDE distros. The UI is implemented with GTK+. It is still in early stages of development.}} | |
− | + | {{Article summary heading|Related}} | |
+ | {{Article summary wiki|Display_Manager}} | ||
+ | {{Article summary end}} | ||
==Installation== | ==Installation== | ||
− | |||
[[pacman|Install]] the {{pkg|lxdm}} package which is available in the [[Official Repositories|official repositories]]. | [[pacman|Install]] the {{pkg|lxdm}} package which is available in the [[Official Repositories|official repositories]]. | ||
− | To make the graphical login the default method of logging into the system, edit | + | == Usage == |
+ | === SysV === | ||
+ | To make the graphical login the default method of logging into the system, edit {{ic|/etc/inittab}} file (recommended) by adding or uncommenting this line: | ||
{{bc|x:5:respawn:/usr/sbin/lxdm >& /dev/null}} | {{bc|x:5:respawn:/usr/sbin/lxdm >& /dev/null}} | ||
− | + | ||
+ | === Systemd === | ||
+ | Currently, {{pkg|lxdm}} provides an lxdm.service file. Enable it like any other systemd service: | ||
+ | # systemctl enable lxdm.service | ||
==Configuration== | ==Configuration== | ||
− | The configuration files for LXDM are all located in {{ic|/etc/lxdm}}. The main configuration file is {{ic|lxdm.conf}}, and is well documented in | + | {{warning|1=The language select control in '''lxdm.conf''' is sometimes required and sometimes not. Set '''lang=''' to inverse value of itself when LXDM potentially enters a boot loop and fails to load your session.}} |
+ | The configuration files for LXDM are all located in {{ic|/etc/lxdm}}. The main configuration file is {{ic|lxdm.conf}}, and is well documented in its comments. Another file, {{ic|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. | ||
These are: | These are: | ||
− | # {{ic|LoginReady}}: Is executed with root | + | # {{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|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|PostLogin}}: Is run as the logged-in user right after they have logged in. | ||
Line 25: | Line 32: | ||
# {{ic|PreShutdown}}: Is run as root before poweroff with LXDM. | # {{ic|PreShutdown}}: Is run as root before poweroff with LXDM. | ||
− | === | + | ===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 {{ic|/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 | ||
+ | |||
+ | {{note|This will kill daemons such as tmux, urxvtd, etc.}} | ||
+ | |||
+ | Or you can replace killall command with this to exclude ssh and screen processes from termination: | ||
+ | |||
+ | ps --user $USER | egrep -v "ssh|screen" | cut -b11-15 | xargs -t kill | ||
+ | |||
+ | ===Default session=== | ||
+ | ==== Globally ==== | ||
+ | Edit {{ic|/etc/lxdm/lxdm.conf}} and change the line: | ||
− | + | {{bc|session<nowiki>=</nowiki>/usr/bin/startlxde}} | |
− | + | To whatever session or DE is desired. To use xfce you would modify it to: | |
− | + | {{bc|session<nowiki>=</nowiki>/usr/bin/startxfce4}} | |
− | + | This is useful for themes that have no visible session selection box, or if you're experiencing trouble using autologin. | |
− | to | + | ==== Per user ==== |
+ | To define an individual user's preferred session, simply edit his/her 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, without providing a password, find the line in {{ic|/etc/lxdm/lxdm.conf}} that looks like this: | |
+ | #autologin=username | ||
+ | Uncomment it, then substitute your own username 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 {{ic|/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 | |
− | + | to this: | |
− | |||
− | + | 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. | |
=== Unlocking Keyrings upon Login=== | === Unlocking Keyrings upon Login=== | ||
− | When using a key manager such as gnome-keyring to manage passwords for ssh keys, {{ic|/etc/pam.d/ | + | When using a key manager such as gnome-keyring to manage passwords for ssh keys, {{ic|/etc/pam.d/lxdm}} should be adjusted to allow users to unlock keyrings upon login if desired. The following is a functional configuration: |
#%PAM-1.0 | #%PAM-1.0 | ||
Line 88: | Line 112: | ||
password required pam_unix.so | password required pam_unix.so | ||
− | === | + | === Sessionlist=== |
+ | |||
+ | 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] | [Desktop Entry] | ||
− | Name= | + | Encoding=UTF-8 |
− | Exec= | + | Name=Openbox |
− | LXDM | + | 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 | ||
+ | |||
+ | == 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 | ||
+ | |||
+ | {{Note|When the new user logs in, his/her session is now on the NEXT tty. For example, user1 logs in and issues the USER_SWITCH command. Now user2 logs in. User2 will be on tty8 while user1 will be on tty7.}} | ||
+ | |||
+ | [[Xscreensaver]] can also perform this task. For more, see the [[Xscreensaver#LXDM]] article. |
Revision as of 10:07, 23 November 2012
zh-CN:LXDM Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end
Contents
Installation
Install the lxdm package which is available in the official repositories.
Usage
SysV
To make the graphical login the default method of logging into the system, edit /etc/inittab
file (recommended) by adding or uncommenting this line:
x:5:respawn:/usr/sbin/lxdm >& /dev/null
Systemd
Currently, lxdm provides an lxdm.service file. Enable it like any other systemd service:
# systemctl enable lxdm.service
Configuration
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 bash scripts, which are run when certain events happen in LXDM.
These are:
-
LoginReady
: Is executed with root privileges when LXDM is ready to show the login window. -
PreLogin
: Is run as root before logging a user in. -
PostLogin
: Is run as the logged-in user right after they have logged in. -
PostLogout
: Is run as the logged-in user right after they have logged out. -
PreReboot
: Is run as root before rebooting with LXDM. -
PreShutdown
: Is run as root before poweroff with LXDM.
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
Or you can replace killall command with this to exclude ssh and screen processes from termination:
ps --user $USER | egrep -v "ssh|screen" | cut -b11-15 | xargs -t kill
Default session
Globally
Edit /etc/lxdm/lxdm.conf
and change the line:
session=/usr/bin/startlxde
To whatever session or DE is desired. To use xfce you would modify it to:
session=/usr/bin/startxfce4
This is useful for themes that have no visible session selection box, or if you're experiencing trouble using autologin.
Per user
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:
For user1:
[Desktop] Session=xfce
For user2:
[Desktop] Session=cinnamon
For user3:
[Desktop] Session=gnome
Autologin
To log in to one account automatically, without providing a password, find the line in /etc/lxdm/lxdm.conf
that looks like this:
#autologin=username
Uncomment it, then substitute your own username 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
to this:
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.
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. The following is a functional configuration:
#%PAM-1.0 auth requisite pam_nologin.so auth required pam_env.so auth required pam_unix.so auth optional pam_gnome_keyring.so account required pam_unix.so session required pam_limits.so session required pam_unix.so session optional pam_gnome_keyring.so auto_start password required pam_unix.so
Sessionlist
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
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
Xscreensaver can also perform this task. For more, see the Xscreensaver#LXDM article.