{ pkgs, lib, ... }:
with lib;
{
  console.useXkbConfig = mkDefault true;
  environment.systemPackages = [
    pkgs.paprefs
  ];
  hardware.pulseaudio.enable = mkDefault true;
  # Allow members of the "adbusers" group to mount Android devices via MTP.
  programs.adb.enable = true;
  programs.dconf.enable = true;
  services.dbus.packages = [ pkgs.dconf ];
  services.gvfs.enable = mkDefault true;
  services.avahi.enable = mkDefault true;
  sound.enable = mkDefault true;

  services.xserver = {
    enable = mkDefault true;
    libinput.enable = mkDefault true;
    exportConfiguration = mkDefault true; # link /usr/share/X11/ properly
    desktopManager = {
      session = [
        # Let the session be generated by home-manager
        {
          name = "home-manager";
          start = ''
            ${pkgs.runtimeShell} $HOME/.hm-xsession &
            waitPID=$!
          '';
        }
      ];
      xterm.enable = mkDefault false;
    };
    displayManager.autoLogin.enable = mkDefault true;
  };
}