{ lib, pkgs, ... }: let inherit (lib.options) mkEnableOption; in { options.modules.services.cups.enable = mkEnableOption "CUPS, the Common UNIX printing system"; config = { services = { # enable CUPS, the Common UNIX printing system. printing = { enable = true; # Move CUPSd's temporary directory. # By default, it resides in /tmp. tempDir = "/tmp/cups"; # Do not advertise shared printers. browsing = false; # Enable the CUPS webinterface, accessible at localhost:631. webInterface = true; # Some local or network printers might need additional drivers. # These can be added into here. drivers = [ pkgs.cups-kyocera-ecosys-m552x-p502x ]; }; # Add and autodiscover printers on the network via the IPP everywhere[1] protocol. # [1] https://www.pwg.org/ipp/everywhere.html avahi = { enable = true; nssmdns4 = true; openFirewall = true; }; }; }; }