From e941f94e3cae9f91496aba0cf945112e6c71fb48 Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Tue, 11 Mar 2025 14:05:31 -0400 Subject: [PATCH] flake: pull printing out into global modules --- hosts/Infini-DESKTOP/default.nix | 15 +----- hosts/Infini-FRAMEWORK/default.nix | 13 +---- hosts/Infini-OPTIPLEX/default.nix | 11 +--- modules/global/printing.nix | 20 +++++++ modules/global/purdue.nix | 34 ++++++++++++ .../modules/hardware/peripherals/printing.nix | 54 ------------------- 6 files changed, 58 insertions(+), 89 deletions(-) create mode 100644 modules/global/printing.nix create mode 100644 modules/global/purdue.nix delete mode 100644 modules/modules/hardware/peripherals/printing.nix diff --git a/hosts/Infini-DESKTOP/default.nix b/hosts/Infini-DESKTOP/default.nix index 58d06a4..ef9152c 100644 --- a/hosts/Infini-DESKTOP/default.nix +++ b/hosts/Infini-DESKTOP/default.nix @@ -30,9 +30,6 @@ gpu.nvidia = true; wireless.enable = true; form.desktop = true; - peripherals = { - printing.enable = true; - }; }; services = { apcupsd = { @@ -54,17 +51,7 @@ ]; }; - services.printing.drivers = with pkgs; [ - tmx-cups-ppd - ]; - - hardware.printers.ensurePrinters = [ - { - name = "EPSON-TM-m30"; - deviceUri = "usb://EPSON/TM-m30II-NT?serial=5839394D0032780000"; - model = "tm-m30-rastertotmt.ppd.gz"; - } - ]; + services.printing.enable = true; virtualisation.enable = true; diff --git a/hosts/Infini-FRAMEWORK/default.nix b/hosts/Infini-FRAMEWORK/default.nix index 9ec4e9c..ed4b530 100644 --- a/hosts/Infini-FRAMEWORK/default.nix +++ b/hosts/Infini-FRAMEWORK/default.nix @@ -39,16 +39,10 @@ environment.enableDebugInfo = true; - services.printing.drivers = [ pkgs.tmx-cups-ppd ]; - modules = { hardware = { gpu.intel = true; form.laptop = true; - - peripherals = { - printing.enable = true; - }; }; desktop = { wm.enable = true; @@ -71,12 +65,9 @@ programs.kdeconnect.enable = true; + services.printing.enable = true; + hardware.printers.ensurePrinters = [ - { - name = "EPSON-TM-m30"; - deviceUri = "usb://EPSON/TM-m30II-NT?serial=5839394D0032780000"; - model = "tm-m30-rastertotmt.ppd.gz"; - } { name = "EPSON-TM-m30-remote"; deviceUri = "ipp://100.101.102.18/printers/EPSON-TM-m30"; diff --git a/hosts/Infini-OPTIPLEX/default.nix b/hosts/Infini-OPTIPLEX/default.nix index ddb66d1..6264e98 100644 --- a/hosts/Infini-OPTIPLEX/default.nix +++ b/hosts/Infini-OPTIPLEX/default.nix @@ -16,11 +16,11 @@ modules = { hardware.form.desktop = true; hardware.gpu.intel = true; - hardware.peripherals.printing.enable = true; desktop.wm.enable = true; }; services.printing = { + enable = true; listenAddresses = [ "localhost:631" "100.101.102.18:631" @@ -29,17 +29,8 @@ allowFrom = [ "all" ]; defaultShared = true; openFirewall = true; - drivers = [ pkgs.tmx-cups-ppd ]; }; - hardware.printers.ensurePrinters = [ - { - name = "EPSON-TM-m30"; - deviceUri = "usb://EPSON/TM-m30II-NT?serial=5839394D0032780000"; - model = "tm-m30-rastertotmt.ppd.gz"; - } - ]; - nix.buildMachines = [ { hostName = "infini-dl360"; diff --git a/modules/global/printing.nix b/modules/global/printing.nix new file mode 100644 index 0000000..1e1f5de --- /dev/null +++ b/modules/global/printing.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + pkgs, + ... +}: + +lib.mkIf config.services.printing.enable { + services.printing.drivers = with pkgs; [ + tmx-cups-ppd + ]; + + hardware.printers.ensurePrinters = [ + { + name = "EPSON-TM-m30"; + deviceUri = "usb://EPSON/TM-m30II-NT?serial=5839394D0032780000"; + model = "tm-m30-rastertotmt.ppd.gz"; + } + ]; +} diff --git a/modules/global/purdue.nix b/modules/global/purdue.nix new file mode 100644 index 0000000..d7ea401 --- /dev/null +++ b/modules/global/purdue.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + private, + ... +}: + +lib.mkIf config.info.loc.purdue { + hardware.printers = { + ensureDefaultPrinter = "printing"; + + ensurePrinters = + let + itap = name: { + inherit name; + #deviceUri = "lpd://${private.variables.purdue-username}@wpvapppcprt02.itap.purdue.edu:515/itap-${name}"; + deviceUri = "lpd://${private.variables.purdue-username}@128.210.210.41:515/itap-${name}"; + model = "drv:///sample.drv/generic.ppd"; + ppdOptions = { + Duplex = "DuplexNoTumble"; + Option1 = "True"; # Duplexer + }; + }; + in + [ + (itap "printing") + (itap "colorprinting") + ]; + }; + + services.printing.browsedConf = '' + BrowseRemoteProtocols none + ''; +} diff --git a/modules/modules/hardware/peripherals/printing.nix b/modules/modules/hardware/peripherals/printing.nix deleted file mode 100644 index 89652f1..0000000 --- a/modules/modules/hardware/peripherals/printing.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - config, - lib, - private, - ... -}: -with lib; -with lib.our; -let - cfg = config.modules.hardware.peripherals.printing; -in -{ - options.modules.hardware.peripherals.printing = with types; { - enable = mkBoolOpt false; - drivers = mkOpt (listOf path) [ ]; - }; - - config = mkIf cfg.enable (mkMerge [ - { - services.printing = { - enable = true; - inherit (cfg) drivers; - }; - } - - (mkIf config.info.loc.purdue { - hardware.printers = { - ensureDefaultPrinter = "printing"; - - ensurePrinters = - let - itap = name: { - inherit name; - #deviceUri = "lpd://${private.variables.purdue-username}@wpvapppcprt02.itap.purdue.edu:515/itap-${name}"; - deviceUri = "lpd://${private.variables.purdue-username}@128.210.210.41:515/itap-${name}"; - model = "drv:///sample.drv/generic.ppd"; - ppdOptions = { - Duplex = "DuplexNoTumble"; - Option1 = "True"; # Duplexer - }; - }; - in - [ - (itap "printing") - (itap "colorprinting") - ]; - }; - - services.printing.browsedConf = '' - BrowseRemoteProtocols none - ''; - }) - ]); -}