From 5f8ffe5af9d8eed0c6c6ead7c3b5589f662310fc Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 16 Dec 2022 12:13:36 +0100 Subject: [PATCH] profiles: add printing --- profiles/default.nix | 1 + profiles/printing/default.nix | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 profiles/printing/default.nix diff --git a/profiles/default.nix b/profiles/default.nix index 43d5a84..f7914a1 100644 --- a/profiles/default.nix +++ b/profiles/default.nix @@ -6,6 +6,7 @@ ./devices ./gtk ./laptop + ./printing ./wm ./x ]; diff --git a/profiles/printing/default.nix b/profiles/printing/default.nix new file mode 100644 index 0000000..90f6c6b --- /dev/null +++ b/profiles/printing/default.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.profiles.printing; +in +{ + options.my.profiles.printing = with lib; { + enable = mkEnableOption "printing profile"; + + usb = { + enable = my.mkDisableOption "USB printers"; + }; + + network = { + enable = my.mkDisableOption "network printers"; + }; + }; + + config = lib.mkIf cfg.enable { + # Setup CUPS + services.printing = { + enable = true; + + # Drivers are deprecated, but just in case + drivers = with pkgs; [ + gutenprint # Base set of drivers + brlaser # Brother drivers + + # Brother MFC-L3770CDW + mfcl3770cdwlpr + mfcl3770cdwcupswrapper + ]; + }; + + # Allow using USB printers + services.ipp-usb = lib.mkIf cfg.usb.enable { + enable = true; + }; + + # Allow using WiFi printers + services.avahi = lib.mkIf cfg.network.enable { + enable = true; + openFirewall = true; + # Allow resolution of '.local' addresses + nssmdns = true; + }; + }; +}