{ config , lib , pkgs , namespace , ... }: let inherit (lib) mkIf mkEnableOption; inherit (pkgs) writeTextDir; cfg = config.${namespace}.services.printing; in { options.${namespace}.services.printing = { enable = mkEnableOption "enable printing service"; }; config = mkIf cfg.enable { hardware.printers = { ensurePrinters = [ { name = "Canon_PIXMA_iX6820"; location = "Home"; deviceUri = "ipp://954290000000.local:631/ipp/print"; model = "Canon_PIXMA_iX6820.ppd"; ppdOptions = { PageSize = "4x6.Fullbleed"; ColorModel = "RGB"; cupsPrintQuality = "High"; MediaType = "photographic"; }; } ]; ensureDefaultPrinter = "Canon_PIXMA_iX6820"; }; services.printing = { enable = true; drivers = [ (writeTextDir "share/cups/model/Canon_PIXMA_iX6820.ppd" ( builtins.readFile ./Canon_PIXMA_iX6820_AirPrint.ppd )) ]; }; }; }