{ pkgs, lib, config, ... }:
with lib;
{
  imports = [
    ./pipewire.nix
  ];
  console.useXkbConfig = mkDefault true;
  environment.systemPackages = [
    pkgs.gdk-pixbuf.dev # for gdk-pixbuf-query-loaders
    pkgs.paprefs
  ];

  # 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;

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

  services.displayManager = {
    autoLogin.enable = mkDefault true;
  };

  programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
}