<chapter xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         version="5.0"
         xml:id="sec-xfce">

    <title>Xfce Desktop Environment</title>

    <para>
        To enable the Xfce Desktop Environment, set
        <programlisting>
services.xserver.desktopManager = {
    xfce.enable = true;
    default = "xfce";
};
        </programlisting>
    </para>

    <para>
        Optionally, <emphasis>compton</emphasis>
        can be enabled for nice graphical effects, some example settings:
        <programlisting>
services.compton = {
  enable          = true;
  fade            = true;
  inactiveOpacity = "0.9";
  shadow          = true;
  fadeDelta       = 4;
};
        </programlisting>
    </para>

    <para>
        Some Xfce programs are not installed automatically.
        To install them manually (system wide), put them into your
        <literal>environment.systemPackages</literal>.
    </para>

    <para>
        NixOS’s default <emphasis>display manager</emphasis> is SLiM.
        (DM is the program that provides a graphical login prompt
         and manages the X server.)
        You can, for example, select KDE’s
        <command>sddm</command> instead:
        <programlisting>
services.xserver.displayManager.sddm.enable = true;
        </programlisting>
    </para>

    <simplesect>
        <title>Thunar Volume Support</title>

        <para>
            To enable
            <emphasis>Thunar</emphasis>
            volume support, put
            <programlisting>
services.xserver.desktopManager.xfce.enable = true;
            </programlisting>
            into your <emphasis>configuration.nix</emphasis>.
        </para>

    </simplesect>

    <simplesect>
        <title>Polkit Authentication Agent</title>

        <para>
            There is no authentication agent automatically installed alongside
            Xfce. To allow mounting of local (non-removable) filesystems, you
            will need to install one.

            Installing <emphasis>polkit_gnome</emphasis>, a rebuild, logout and
            login did the trick.
        </para>

    </simplesect>

    <simplesect>
        <title>Troubleshooting</title>

        <para>
            Even after enabling udisks2, volume management might not work.
            Thunar and/or the desktop takes time to show up.

            Thunar will spit out this kind of message on start
            (look at <command>journalctl --user -b</command>).

            <programlisting>
Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.UDisks2VolumeMonitor is not supported
            </programlisting>

            This is caused by some needed GNOME services not running.
            This is all fixed by enabling "Launch GNOME services on startup" in
            the Advanced tab of the Session and Startup settings panel.
            Alternatively, you can run this command to do the same thing.
            <programlisting>
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
            </programlisting>
            A log-out and re-log will be needed for this to take effect.
        </para>

    </simplesect>

</chapter>
