diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 30a807c..91319f4 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -67,6 +67,7 @@ gaming.enable = true; documentation.enable = true; theme.enable = true; + printing.enable = true; autorandr = { enable = true; diff --git a/modules/default.nix b/modules/default.nix index 5b59ac4..ed98c87 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -18,6 +18,7 @@ ./stuff/xserver.nix ./stuff/documentation.nix ./stuff/theme.nix + ./stuff/printing.nix ./stuff/gaming.nix ./stuff/other-desktop-programs.nix ./stuff/other-dev-programs.nix diff --git a/modules/stuff/printing.nix b/modules/stuff/printing.nix new file mode 100644 index 0000000..5648094 --- /dev/null +++ b/modules/stuff/printing.nix @@ -0,0 +1,33 @@ +{ lib, pkgs, config, ...}: let + inherit (lib) mkIf mkEnableOption mkOption; + cfg = config.chuj.stuff.printing; +in { + options.chuj.stuff.printing = { + enable = mkEnableOption "printing"; + }; + + config = mkIf cfg.enable { + services.printing = { + enable = true; + drivers = [ pkgs.brlaser ]; + }; + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + hardware.printers = { + ensurePrinters = [ + { + name = "brother-dcp-1622we"; + deviceUri = "dnssd://Brother%20DCP-1610W%20series._pdl-datastream._tcp.local/?uuid=e3248000-80ce-11db-8000-c894023b7db8"; + model = "drv:///brlaser.drv/br1600.ppd"; + ppdOptions = { + PageSize = "A4"; + }; + } + ]; + ensureDefaultPrinter = "brother-dcp-1622we"; + }; + }; +} \ No newline at end of file