{
  pkgs,
  configVars,
  ...
}: let
  serverIp = configVars.networking.addresses.merlin.ip;
in {
  services = {
    udev.packages = [pkgs.sane-airscan];
    printing = {
      enable = true;
      drivers = [pkgs.gutenprint pkgs.hplip];
    };
    avahi = {
      enable = true;
      nssmdns4 = true;
      openFirewall = true;
    };
  };

  hardware = {
    sane = {
      enable = true;
      extraBackends = [pkgs.sane-airscan];
      netConf = "${serverIp}";
      openFirewall = true;
    };
    printers = {
      ensurePrinters = [
        {
          name = "HP_ENVY_6000";
          description = "Network printer hosted on bob";
          location = "home";
          deviceUri = "ipp://${serverIp}/printers/HP_Envy_6000";
          model = "everywhere";
          ppdOptions = {
            PageSize = "A4";
          };
        }
      ];
    };
  };
}