Difference between revisions of "SLiM"

From ArchWiki
Jump to navigation Jump to search
m (SLiM and Gnome Keyring: added break)
(SLiM and Gnome Keyring: Minor changes)
Line 259: Line 259:
After login check if there is only one gnome-keyring-daemon instance running {{Codeline|ps -A | grep gnome}}. If those lines are executed too early then you have 4 instances running which is not good.
After login check if there is only one gnome-keyring-daemon instance running (ps -A | grep gnome). If those lines are executed too early then you have 4 instances running which is not good.
You also should notice that seahorse for example does not show any pkcs11 errors anymore and that your keyring is unlocked all the time and does not lock itself anymore. See also [https://bbs.archlinux.org/viewtopic.php?pid=1019845#p1019845 here].
You also should notice that seahorse for example does not show any pkcs11 errors anymore and that your keyring is unlocked all the time and does not lock itself anymore. Finally gnome-keyring is fully functional like in Gnome. See also [https://bbs.archlinux.org/viewtopic.php?pid=1019845#p1019845 here].
=== SLiM and Environment Variables ===
=== SLiM and Environment Variables ===

Revision as of 10:19, 22 November 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

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

Note: SLiM is outdated and upstream development has ceased. Please consider using LXDM instead of SLiM. You can find information on setting up LXDM on the Display Manager page.

SLiM is an acronym for Simple Login Manager. SLiM is simple, lightweight and easily configurable. SLiM is used by some because it does not require the dependencies of GNOME or KDE and can help make a lighter system for users that like to use lightweight desktops like Xfce, Openbox, and Fluxbox.


Install SLiM from the extra repository:

# pacman -S slim


Enabling SLiM

SLiM can be loaded on startup by entering it in your daemons array in Template:Filename or by modifying Template:Filename. See Display Manager for detailed instructions.

Single environments

To configure SLiM to load a particular environment, edit your Template:Filename to load your desktop environment:


# ~/.xinitrc
# Executed by startx (run your window manager from here)

exec [session-command]

SLiM reads the local Template:Filename configuration and then launches the desktop according to what is in that file. If you do not have a Template:Filename file, you can use the skeleton file by:

$ cp /etc/skel/.xinitrc ~

Remember to make .xinitrc executable:

 chmod +x ~/.xinitrc

Replace Template:Codeline with the appropriate session command. Some examples of different desktop start commands:

exec awesome
exec dwm
exec startfluxbox
exec fvwm2
exec gnome-session
exec openbox-session
exec startkde
exec startlxde
exec startxfce4
exec enlightenment_start
exec ck-launch-session $ONE_OF_THE_ABOVE

To get automount to work it might be necessary to use something like e.g.:

exec ck-launch-session dbus-launch startxfce4

If your environment is not listed here, refer to the appropriate wiki page.


If you have problems with PolicyKit, use ConsoleKit's Template:Codeline by changing the Template:Codeline line of your Template:Filename to:

login_cmd exec ck-launch-session /bin/bash -login ~/.xinitrc %session

and leave your Template:Filename as plain as possible; for instance:

exec startxfce4 # or the window manager of your choice


To make SLiM automatically login as a specified user (without having to type a password) the following lines in Template:Filename should be changed.

# default_user        simone

Uncomment this line, and change "simone" to the user to be logged into automatically.

# auto_login          no

Uncomment this line and change the 'no' to 'yes'. This enables the auto login feature.

Multiple environments

To be able to choose from multiple desktop environments, SLiM can be setup to log you into whichever you choose.

Put a case statement similar to this one in your Template:Filename file and edit the sessions variable in Template:Filename to match the names that trigger the case statement. You can choose the session at login time by pressing F1. Note that this feature is experimental.

# The following variable defines the session which is started if the user doesn't explicitly select a session
# Source: http://svn.berlios.de/svnroot/repos/slim/trunk/xinitrc.sample


case $1 in
	exec startkde
	exec startxfce4
	icewmbg &
	icewmtray &
	exec icewm
	exec wmaker
	exec blackbox

Note that, in this script, the default option simply executes, e.g., exec icewm (if that is the default session), without icewmbg and icewmtray. You may want simply to repeat everything you've put under, e.g., icewm) again under *).


Install the Template:Package Official package:

# pacman -S slim-themes archlinux-themes-slim

The Template:Package Official packages contains several different themes. Look in the directory of Template:Filename to see the themes available. Enter the theme name on the Template:Codeline line in Template:Filename:

#current_theme       default
current_theme       archlinux-simplyblack

To preview a theme run while an instance of the Xorg server is running by:

$ slim -p /usr/share/slim/themes/<theme name>

To close, type "exit" in the Login line and press Enter.

Additional theme packages can be found in the AUR.

Dual screen setup

You can customize the slim theme in Template:Filename to turn these percents values. The box itself is 450 pixels by 250 pixels:

input_panel_x           50%
input_panel_y           50%

into pixels values:

# These settings set the "archlinux-simplyblack" panel in the center of a 1440x900 screen
input_panel_x           495
input_panel_y           325
# These settings set the "archlinux-retro" panel in the center of a 1680x1050 screen
input_panel_x           615
input_panel_y           400

If your theme has a background picture you should use the background_style setting ('stretch', 'tile', 'center' or 'color') to get it correctly displayed. Have a look at the very simple and clear official documentation about slim themes for further details.

Other options

A few things you might like to try.

Changing the cursor

If you want to change the default X cursor to a newer design, the Template:Package AUR package is available.

After installing, edit Template:Filename and uncomment the line:

cursor   left_ptr

This will give you a normal arrow instead. This setting is forwarded to Template:Codeline. You can look up the possible cursor names here or in Template:Filename.

To change the cursor theme being used at the login screen, make a file named Template:Filename with this content:

[Icon Theme]

Replace <your-cursor-theme> with the name of the cursor theme you want to use (e.g. whiteglass).

Match SLiM and Desktop Wallpaper

To share a wallpaper between SLiM and your desktop, rename the used theme background, then create a link from your desktop wallpaper file to the default SLiM theme:

# mv /usr/share/slim/themes/default/background.jpg{,.bck}
# ln -s /path/to/mywallpaper.jpg /usr/share/slim/themes/default/background.jpg

Shutdown, reboot, suspend, exit, launch terminal from SLiM

You may shutdown, reboot, suspend, exit or even launch a terminal from the SLiM login screen. To do so, use the values in the username field, and the root password in the password field:

  • To launch a terminal, enter console as the username (defaults to xterm which must be installed separately... edit Template:Filename to change terminal preference)
  • For shutdown, enter halt as the username
  • For reboot, enter reboot as the username
  • To exit to bash, enter exit as the username
  • For suspend, enter suspend as the username (suspend is disabled by default, edit Template:Filename as root to uncomment the Template:Codeline line and, if necessary modify the suspend command itself (e.g. change Template:Codeline to Template:Codeline))

SLiM init error with rc.d daemon

If you initialize SLiM with Template:Filename inside the DAEMONS array and it fails to initialize it's most likely a lock file issue. SLiM creates a lock file in Template:Filename on each initialization, however, in most cases the lock folder in /var does not exist preventing SLiM from initializing. Check to make sure Template:Filename exists, if it does not you can create it by typing the following:

# mkdir /var/lock/

Power-off error with Splashy

If you use Splashy and SLiM, sometimes you can't power-off or reboot from menu in GNOME, Xfce, LXDE or others. Check your Template:Filename and Template:Filename; set the Template:Codeline same as Template:Codeline.

Power-off tray icon fails

If your power off tray icon fails, it could be due to not having root privileges. To start a tray icon with root privileges, be sure to have SLiM start the program. Edit Template:Filename as follows:

sessionstart_cmd 	/path/to/tray/icon/program &

Login information with SLiM

By default, SLiM fails to log logins to utmp and wtmp which causes who, last, etc. to misreport login information. To fix this edit your Template:Filename as follows:

 sessionstart_cmd    /usr/bin/sessreg -a -l $DISPLAY %user
 sessionstop_cmd     /usr/bin/sessreg -d -l $DISPLAY %user

SLiM and Gnome Keyring

If you are using SLiM to launch a Gnome session and have trouble accessing your keyring, for example not being automatically authenticated on login, add the following lines to Template:Filename (as discussed here).

auth       optional    pam_gnome_keyring.so
session    optional    pam_gnome_keyring.so    auto_start

You also have to add to Template:Filename:

password        optional        pam_gnome_keyring.so

If you use a screensaver you also have to add

auth    optional        pam_gnome_keyring.so

to Template:Filename for example (replace gnome-screensaver with slimlock,slock,whatever you use). If you don't do that, your keyring is locked when screen is locked by your screensaver and not unlocked again after logging back in.

However, this fix alone no longer works since Gnome 2.30. Further changes are necessary as described here. Modifying the Template:Codeline line in Template:Filename:

login_cmd exec ck-launch-session dbus-launch /bin/bash -login ~/.xinitrc %session >~/.xsession-errors 2>&1

As of GNOME 3, simply adding Template:Codeline after Template:Codeline will work, without needing to edit Template:Filename.

As of GNOME 3.1, you need to add Template:Codeline after Template:Codeline and edit Template:Filename, otherwise the keyring will not be automatically unlocked. I never tried it on 3.0, so maybe the above information about GNOME 3 is wrong.

The solutions mentioned here and also further information are found here.

If you have problems keeping the keyring unlocked for longer sessions, there is another thing that Gnome does: Look at Template:Filename}.

Append the following lines to .xinitrc just before you start your wm (example here is awesome wm):

/usr/bin/gnome-keyring-daemon --start --components=gpg
/usr/bin/gnome-keyring-daemon --start --components=pkcs11
/usr/bin/gnome-keyring-daemon --start --components=secrets
/usr/bin/gnome-keyring-daemon --start --components=ssh

After login check if there is only one gnome-keyring-daemon instance running (ps -A | grep gnome). If those lines are executed too early then you have 4 instances running which is not good.

You also should notice that seahorse for example does not show any pkcs11 errors anymore and that your keyring is unlocked all the time and does not lock itself anymore. Finally gnome-keyring is fully functional like in Gnome. See also here.

SLiM and Environment Variables

If you have trouble with environment variables changing after a session is started, one cause could be the module pam_env.so, by default, reads the file Template:Filename and sets up the environment accordingly.

For example: I use SLiM, which fires up a XFCE4 session upon valid authentication. When this is done my terminal(xfterm4) can't print Unicode characters(LC_* environment variables has been defaulted/altered to "POSIX"). But when I start XFCE4 manually, like so: Template:Codeline, Unicode characters on my terminal works fine.

This can be fixed by adding this to Template:Filename or your user specific file: Template:Filename:

# You can change these to fit your preference, of course.

Alternatively, you can modify the line in Template:Filename from:

session		required	pam_env.so


session		required	pam_env.so	envfile=<yourfile>

Where <yourfile> is the name of the file you want PAM to recognize as your default environment file, when starting a new session from SLiM.

Setting DPI with SLiM

The Xorg server generally picks up the DPI but if it doesn't you can specify it to SLiM. If you set the DPI with the argument -dpi 96 in Template:Filename it will not work with SLiM. To fix this change your Template:Filename from:

 xserver_arguments   -nolisten tcp vt07 


 xserver_arguments   -nolisten tcp vt07 -dpi 96

Use a random theme

Use the Template:Codeline variable as a comma separated list to specify a set from which to choose. Selection is random.

Move the whole session to another VT

Lets say you have commented out tty terminals 3-6 as you may not use them. (You may use screen and therefore only need one terminal) So, to move the X-Server you need to change one number in the Template:Filename file. Just a few lines down you should see:

xserver_arguments -nolisten tcp vt07

Simply change the vt07 to lets say vt03 as there is no agetty started there.

Automatically mount your encrypted /home on login

You can use pam_mount.

All Slim Options

Here is a list of all the slim configuration options and their default values.

Note: welcome_msg allows 2 variables %host and %domain
sessionstart_cmd allows %user (execd right before login_cmd) and it is also allowed in sessionstop_cmd
login_cmd allows %session and %theme