diff --git a/modules/services/printing/module.nix b/modules/services/printing/module.nix new file mode 100644 index 0000000..5df6b53 --- /dev/null +++ b/modules/services/printing/module.nix @@ -0,0 +1,42 @@ +{ + 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; + }; + }; + }; +}