# Xfce 4 Session Manager

### Benedikt Meurer

`<benny@xfce.org>`

os-cillation
System development
Software developer
This manual describes the `xfce4-session` package, version 4.3.

Copyright © 2003, 2004, 2005 Benedikt Meurer

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation.

July 2005

## Introduction

`xfce4-session` is a session manager for Xfce 4. Its task is to save the state of your desktop (opened applications and their location) and restore it during a next startup. You can create several different sessions and choose one of them on startup.

`xfce4-session` provides session management for both X11R6 and legacy X11R5 protocols. If you don't need legacy session management support, you can disable it at compile time, giving --disable-legacy-sm to ./configure. Do NOT EVER run `smproxy` in session that is managed by `xfce4-session`, or weird things will happen. The included legacy session management does everything that `smproxy` would do, and besides that, it also supports multiscreen display.

## Session Manager settings

### General preferences

Figure 1. `xfce4-session` general preferences

Display chooser on login

  If set, the session manager will ask you to choose a session every time you log in to Xfce.

Automatically save session on logout

  This option instructs the session manager to save the current session automatically when you log out. If you don't select this option you'll be prompted whether you want to save the current session on each logout.

Prompt on logout

  This option disables the logout confirmation dialog. Whether the session will be saved or not depends on whether you enabled the automatic saving of sessions on logout or not.

### Advanced preferences

Figure 2. `xfce4-session` advanced preferences

Launch Gnome services on startup

  Enable this option if you need the GNOME keyring daemon to be run on startup. This option also instructs `xfce4-session` to bring up the GNOME assistive technologies at startup (if enabled in the GNOME control center). See the GNOME documentation for more information on this topic.

Launch KDE services on startup

  Enable this option if you plan to run KDE applications as part of your Xfce Desktop session. This will notably increase the startup time, but on the other hand, KDE applications will startup faster. Some KDE applications may not work at all if you don't enable this option.

Manage remote applications

  Allow the session manager to manage applications running on remote hosts. Since this option may constitute a security risk, by listening to a TCP port on your system, do not enable it unless you know what you are doing.

  System administrators may want to disable this option globally using the session managers KIOSK capabilities.

## Customizing the Session Manager

You can customize the splash-screen that `xfce4-session` will use when you log in to Xfce 4. There is a dedicated dialog available from the Xfce 4 Settings Manager.

### Splash screen settings

Figure 3. Splash screen settings dialog

On the left, the dialog shows a list of all installed engines. Select an engine, and you will see, if available, a preview and information about it. You can click on the Test button to see a demonstration of the selected splash screen engine.

`xfce4-session` provides three Splash themes engines by default. Their respective configuration options - if any - are available from the Configure button.

### Shutdown/reboot options

`xfce4-session` supports shutting down your computer when you log out of your desktop session. To be able to shutdown the computer, you have to be listed in the systems `sudoers` file, in particular, you must be allowed to execute the command `${libexecdir}/xfsm-shutdown-helper` (`/usr/sbin/xfsm-shutdown-helper` on Debian GNU/Linux) as user root (where `${libexecdir}` is the `libexec` sub directory in the prefix you installed `xfce4-session`, for example `/usr/local/libexec`).

For example, lets say, you installed `xfce4-session` into `/usr/local`, your hostname is myhost and your user account is named myuser, then you would have to add the following line to your `sudoers` file (remember to use `visudo` to edit that file):

    myuser myhost=/usr/local/libexec/xfsm-shutdown-helper

## Advanced

### Files and Environment Variables

Xfce now uses the Basedir Specification as defined on Freedesktop.org to locate its data and configuration files. This means that file locations will be specified as a path relative to the directories described in the specification.

${XDG_CONFIG_HOME}

  The first base directory to look for configuration files. By default this is set to `~/.config/`.

${XDG_CONFIG_DIRS}

  A list of system directories that contain configuration data. By default the panel will look in `${sysconfdir}/xdg/` and `/etc/xdg/`. The value of ${sysconfdir} depends on how the program was build and will often be `/etc/` for binary packages.

${XDG_CACHE_HOME}

  Specifies the root for all user-specific cache data. If this environment variable is unset, it defaults to `~/.cache`.

${XDG_CONFIG_DIRS}/autostart/

  This is the location where the list of applications that should be automatically run on login is stored. Each autostarted application is represented by a `.desktop` file (see the Desktop Entry Specification for details).

  Prior to Xfce 4.3, the list of autostarted applications was stored in `~/Desktop/Autostart`, which contained scripts and symbolic links to applications. If you run `xfce4-session` 4.3 or above for the first time, it will automatically migrate the autostart items from the old location to the standard location and place a `LOCATION-CHANGED.txt` file in the old directory, that describes the location change.

${XDG_CONFIG_DIRS}/xfce4-session/xfce4-session.rc

  This is the location of the configuration file that includes the various settings for `xfce4-session`, which can be changed from the settings dialog.

${XDG_CONFIG_DIRS}/xfce4-session/xfce4-splash.rc

  This is the location of the configuration file that includes the configuration for the splash screen, which can be changed from the settings dialog.

${XDG_CACHE_HOME}/sessions/

  The directory where `xfce4-session` and `xfwm4` store the session data to.

${sysconfdir}/xdg/xfce4/kiosk/kioskrc

  Kiosk mode configuration file. See next section for an explanation.

None of the configuration files, except the `kioskrc`, are designed to be edited by hand during a Xfce session; in fact, the changes will be overwritten if you edit them while the session manager or the settings managers are running.

System administrators might want to customize the file `${sysconfdir}/xdg/xfce4-session/xfce4-session.rc` to change the default applications that are run on Xfce startup. For example, if you want to start the `xfce4-iconbox` instead of the `xftaskbar4`, you would change the [Failsafe Session] section like to something like this:

    [Failsafe Session]
    Count=4
    Client0_Command=xfwm4
    Client0_PerScreen=False
    Client1_Command=xfce4-panel
    Client1_PerScreen=True
    Client2_Command=xfce4-iconbox
    Client2_PerScreen=True
    Client3_Command=xfdesktop
    Client3_PerScreen=False

### Kiosk Mode

The session manager offers support for the Kiosk Mode, that helps to prevent users from making changes to their session settings. To use it you have to edit or create the file `${sysconfdir}/xdg/xfce4/kiosk/kioskrc`.

The way to explain the format of this file is by using an example. The xfce4-session section of your `kioskrc` might look like this:

    [xfce4-session]
    CustomizeSplash=ALL
    CustomizeChooser=ALL
    CustomizeLogout=ALL
    CustomizeCompatibility=%wheel
    Shutdown=%wheel
    CustomizeSecurity=NONE

This allows all users to change their splash, chooser and logout settings, but allows only users in the group wheel to customize the compatibility settings and shutdown the system. No one will be allowed to adjust the security settings.

The session manager supports the following KIOSK capabilities:

CustomizeSplash

  Whether or not the user is allowed to customize the splash screen.

CustomizeChooser

  Whether or not the user is allowed to customize the session chooser settings.

CustomizeLogout

  Whether or not the user is allowed to customize the logout settings.

CustomizeCompatibility

  Whether or not the user is allowed to customize the compatibility settings (KDE/Gnome compat)

CustomizeSecurity

  Whether or not the user is allowed to customize the security settings. This is one of the most IMPORTANT settings, since it prevents users (actually `libICE`) from binding to a TCP port.

Shutdown

  Whether or not the user is allowed to shutdown (reboot or poweroff) the system. If a user lacks this capability the reboot and poweroff options in the shutdown dialog will be greyed out.

## About `xfce4-session`

`xfce4-session` was written by Benedikt Meurer (`<benny@xfce.org>`). To find more information, please visit the Xfce web site.

To report a bug or make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/.

If you have questions about the use or installation of this package, please ask on the xfce mailing list. Development discussion takes place on the xfce4-dev mailing list.

This program is distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.