Xfce

From NixOS Wiki
Revision as of 13:47, 8 December 2018 by imported>Symphorien (→‎Using as a desktop manager and not a window manager: mention that i3-msg exit does not work anymore.)

Xfce is a lightweight desktop environment based on GTK+. It includes a window manager, a file manager, desktop and panel.

Enabling

To use xfce set service.xserver.desktopManager.xfce.enable to true. For example:

/etc/nixos/configuration.nix
{ config, pkgs, callPackage, ... }: {
  ...
  # if you use pulseaudio
  nixpkgs.config.pulseaudio = true;

  services.xserver = {
    enable = true;
    desktopManager = {
      default = "xfce";
      xterm.enable = false;
      xfce.enable = true;
    };
  };
  ...
}

Using as a desktop manager and not a window manager

You can use xfce purely as a desktop manager, leaving window management to another window manager like i3 for example. In this scenario, xfce's role is to answer to media keys, prompt when plugging a new monitor and so on.

Example config:

/etc/nixos/configuration.nix
{ config, pkgs, callPackage, ... }: {
  ...
  services.xserver = {
    enable = true;   
    desktopManager = {
      default = "xfce";
      xterm.enable = false;
      xfce = {
        enable = true;
        noDesktop = true;
        enableXfwm = false;
      };
    };
    windowManager.i3.enable = true;
  };
  ...
}

On first login, make sure to choose the session xfce+i3 in your display manager. If you choose xfce you will end up in xfce without panels nor window manager, which is unusable.

Note that xfce manages your session instead of i3: exiting i3 will blank your screen but not terminate your session. In your i3 config, replace i3-msg exit with xfce4-session-logout.

Troubleshooting

Pulseaudio

If you use pulse audio, set nixpkgs.config.pulseaudio = true as shown above. Otherwise, you may experience glitches like being able to mute the sound card but not unmute it.