{ config, pkgs, ... }:

{
  services = {
    # dconf is required for setting GTK themes, see home.nix
    dbus.packages = with pkgs; [ dconf ];
    xserver = {
      enable = true;
      libinput = {
        enable = true;
        touchpad.tapping = true;
      };
      xkbOptions = "caps:escape";
      displayManager = {
        lightdm = {
          enable = true;
          greeters.gtk = {
            enable = true;
            theme = {
              name = "Nordic";
              package = pkgs.nordic;
            };
          };
        };
        autoLogin = {
          enable = true;
          user = "elnu";
        };
        defaultSession = "none+i3";
      };
      windowManager.i3 = {
        enable = true;
        package = pkgs.i3-gaps;
      };
    };
  };

  # To prevent `Unit dconf.service not found.` after theming GTK in HM
  programs.dconf.enable = true;

  sound.enable = true;
  hardware.pulseaudio.enable = true;
  nixpkgs.config.pulseaudio = true;

  fonts.fonts = with pkgs; [
    noto-fonts
    noto-fonts-cjk
    (nerdfonts.override { fonts = [ "FiraCode" ]; }) # required for icons
  ];
}
