diff --git a/hosts/exodus/default.nix b/hosts/exodus/default.nix index 00e0556..5a433e3 100644 --- a/hosts/exodus/default.nix +++ b/hosts/exodus/default.nix @@ -3,7 +3,6 @@ { imports = [ ./hardware-configuration.nix - ../jude/printing.nix ]; boot.loader = { @@ -15,6 +14,7 @@ greg = { home = true; gnome.enable = true; + print.enable = true; tailscale.enable = true; vmdev = { enable = true; diff --git a/hosts/jude/default.nix b/hosts/jude/default.nix index bc6b0e8..88ba281 100644 --- a/hosts/jude/default.nix +++ b/hosts/jude/default.nix @@ -5,7 +5,6 @@ ./boot.nix ./hardware-configuration.nix ./podman.nix - ./printing.nix ./virt.nix ]; programs = { @@ -34,6 +33,7 @@ sway.enable = false; gnome.enable = true; kde.enable = false; + print.enable = true; }; boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; diff --git a/hosts/jude/printing.nix b/hosts/jude/printing.nix deleted file mode 100644 index 07d237f..0000000 --- a/hosts/jude/printing.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ pkgs, ... }: - -{ - # ipp://printer.thehellings.lan:631/ - generic postscript printer - services.printing = { - enable = true; - drivers = with pkgs; [ - gutenprint - gutenprintBin - ]; - }; -} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index cb605fa..acf33e5 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -16,6 +16,7 @@ in { ./kde.nix ./kiwix-serve.nix ./linode.nix + ./print.nix ./proxy.nix ./router.nix ./rpi4.nix diff --git a/modules/nixos/print.nix b/modules/nixos/print.nix new file mode 100644 index 0000000..aabd200 --- /dev/null +++ b/modules/nixos/print.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.greg.print; + +in with lib; +{ + options.greg.print.enable = mkOption { + type = types.bool; + default = true; + description = "Configures the system to print with my home printer"; + }; + + config = mkIf cfg.enable { + # ipp://printer.thehellings.lan:631/ - generic postscript printer + services.printing = { + enable = true; + drivers = with pkgs; [ + gutenprint + ] ++ (lib.optional pkgs.stdenv.isx86_64 gutenprintBin); + }; + + hardware.printers.ensurePrinters = [ { + name = "HomeLexmarkColorPrinter"; + location = "Home office"; + deviceUri = "ipp://printer.thehellings.lan:631/"; + model = "drv:///sample.drv/generic.ppd"; + ppdOptions = { + PageSize = "Letter"; + }; + } ]; + }; +}