Xfce Desktop Environment To enable the Xfce Desktop Environment, set services.xserver.desktopManager = { xfce.enable = true; default = "xfce"; }; Optionally, compton can be enabled for nice graphical effects, some example settings: services.compton = { enable = true; fade = true; inactiveOpacity = "0.9"; shadow = true; fadeDelta = 4; }; Some Xfce programs are not installed automatically. To install them manually (system wide), put them into your environment.systemPackages. NixOS’s default display manageris SLiM. (DM is the program that provides a graphical login prompt and manages the X server.) You can, for example, select KDE’s kdm instead: services.xserver.displayManager.kdm.enable = true; Thunar Volume Support To enable Thunar volume support, put services.xserver.desktopManager.xfce.enable = true; into your configuration.nix. Polkit Authentication Agent There is no authentication agent automatically installed alongside Xfce. To allow mounting of local (non-removable) filesystems, you will need to install one. Installing polkit_gnome, a rebuild, logout and login did the trick. Troubleshooting 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 journalctl --user -b). Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.UDisks2VolumeMonitor is not supported 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. $ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true A log-out and re-log will be needed for this to take effect.