From 609e8e4439736f10f05c376593b5efbdced1e63c Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 4 Jun 2025 22:31:32 +0200 Subject: [PATCH] services: printing: init Adds CUPS and avahi for printing and discovering printers on the network. --- modules/services/printing/module.nix | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 modules/services/printing/module.nix 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; + }; + }; + }; +}