36 lines
937 B
Nix
36 lines
937 B
Nix
# 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;
|
|
};
|
|
};
|
|
}
|