{ options, config, lib, pkgs, ... }: with lib; with lib.metacfg; let cfg = config.metacfg.homeprinter; in { options.metacfg.homeprinter = with types; { enable = mkBoolOpt false "Whether or not to enable the home printers."; }; config = mkIf cfg.enable { services.printing.drivers = with pkgs; [ metacfg.dcpl2530dw-cups gutenprintBin gutenprint ]; hardware.printers.ensurePrinters = [ { name = "Brother_DCP-L2530DW_series"; location = "Dach"; deviceUri = "dnssd://Brother%20DCP-L2530DW%20series._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-cc6b1e5cd0ea"; model = "brother-DCPL2530DW-cups-en.ppd"; ppdOptions = { PageSize = "A4"; }; } { name = "Canon_MG6300_series"; location = "Dach"; deviceUri = "dnssd://Canon%20MG6300%20series._ipp._tcp.local/?uuid=00000000-0000-1000-8000-2C9EFC9C7BA5"; model = "gutenprint.5.3://bjc-PIXMA-MG6350/expert"; ppdOptions = { PageSize = "w283h425"; # StpFullBleed = "True"; MediaType = "PhotoPlusGloss2"; ColorModel = "CMYK"; StpColorCorrection = "Accurate"; StpColorPrecision = "Best"; StpInkType = "CMYKk"; StpImageType = "Photo"; StpDitherAlgorithm = "Adaptive"; }; } ]; }; }