# Module: Printing Configuration # Description: CUPS printing service with configured printers # Services: printing (CUPS) { config, lib, ... }: { options.custom.printing = { enable = lib.mkEnableOption "printing support (CUPS)"; printers = lib.mkOption { type = lib.types.listOf lib.types.attrs; default = []; description = "List of printers to configure"; }; defaultPrinter = lib.mkOption { type = lib.types.nullOr lib.types.str; default = null; description = "Default printer name"; }; }; config = lib.mkIf config.custom.printing.enable { services.printing.enable = true; hardware.printers = lib.mkIf (config.custom.printing.printers != []) { ensurePrinters = config.custom.printing.printers; ensureDefaultPrinter = lib.mkIf (config.custom.printing.defaultPrinter != null) config.custom.printing.defaultPrinter; }; }; }