Xfce

From NixOS Wiki
Revision as of 20:29, 20 April 2018 by imported>Symphorien (xfce: how to enable, + with i3, pulse audio)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.

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.