{ lib, inputs, ... }:
{
  nix.settings.experimental-features = [ "nix-command" "flakes" ];
  #nix.registry.self.flake = inputs.self;
  nix.nixPath = [
    "nixpkgs=${inputs.nixpkgs}"
  ];

  systemd.services.nix-daemon.serviceConfig = {
    CPUSchedulingPolicy = lib.mkForce "batch";
    IOSchedulingClass = lib.mkForce "best-effort";
    # 0: high priority, 7: low priority
    IOSchedulingPriority = lib.mkForce 4;
    Nice = 0;
  };

  systemd.services.nix-gc.serviceConfig = {
    CPUSchedulingPolicy = "batch";
    IOSchedulingClass = "best-effort";
    IOSchedulingPriority = 7;
    Nice = 5;
  };

  systemd.sleep.extraConfig = ''
    AllowSuspend=no
    AllowHibernation=no
  '';
}