42 lines
1 KiB
Nix
42 lines
1 KiB
Nix
{
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
}
|