Running Xfce from a display manager
-----------------------------------

If use you a login manager like GDM or LightDM, you may have two ways to start
Xfce :

- “Xfce Session” will run a complete xfce session, using Xfce-provided
  scripts (/usr/bin/startxfce4 which will then run /etc/xdg/xfce4/xinitrc
  or $HOME/.config/xfce4/xinitrc).
- “Default session” will run whatever is the default session manager on
  your system. This is the /usr/bin/x-session-manager alternatives, meaning
  you can tune it with update-alternatives (8). If you only have Xfce
  installed on your system, it will default to startxfce4, which will run the
  complete Xfce desktop environment.

GDM and LightDM will initialize ConsoleKit so you should be able to manage your
computer (mount removable devices, suspend, shutdown or hibernate etc.).

Running Xfce from the console
-----------------------------

If you don't use a login manager but start Xfce from console, you need to take
care of few stuff in order to get a complete Xfce session with full permission
(mount, suspend/shutdown/hibernate etc.) This is because Debian now uses
PolicyKit/ConsoleKit to manage policies for things like device and power
management. If you run Xfce from a compatible display manager (like gdm or
lightdm), they'll talk to consolekit so your X session will have the
authentication tokens, but if you use startx, it won't.

Important stuff:

* only use startx, without any argument
* don't use a .xinitrc, use .xsession

This is because ConsoleKit ships an init script
(/etc/X11/Xsession.d/90consolekit), but the /etc/X11/Xsession.d/ scripts are
only executed if you don't use any .xinitrc. See startx (1) for more
information.

Then you need to fine-tune your pam installation so ConsoleKit can be sure that
your user is correctly authenticated. For that, you need to:

* install libpam-ck-connector
* put:

----
session   optional  pam_loginuid.so
----

*before* pam_ck_connector.so in /etc/pam.d/common-session.
