Consolidate printer config and enable simple-scan

Remove per‑host printers.nix and merge printing settings into host
variables.
Add simple-scan package and enable it for desktop and laptop hosts.
Disable simple-scan for the default host.
Enable SANE daemon and expose its libraries in fish init.
Open required UDP ports 5353 and 54925 in network module.
This commit is contained in:
2026-07-09 18:49:51 +02:00
parent 7b48789251
commit f8ffcba766
14 changed files with 72 additions and 54 deletions
+1 -2
View File
@@ -66,11 +66,10 @@
mkHost = hostName: let
hostVars = import ./hosts/${hostName}/variables.nix;
hostPrinterVars = import ./hosts/${hostName}/printers.nix;
in
nixpkgs.lib.nixosSystem {
inherit (hostVars) system;
specialArgs = hostVars // hostPrinterVars // {inherit inputs;};
specialArgs = hostVars // {inherit inputs;};
modules = [
./profiles/${hostVars.profile}
nix-flatpak.nixosModules.nix-flatpak
-14
View File
@@ -1,14 +0,0 @@
{
printEnable = false;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
+1
View File
@@ -113,5 +113,6 @@ _: {
gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
simpleScan.enable = true; # simple-scan: Simple scanning utility
};
}
+20
View File
@@ -62,4 +62,24 @@
# Set network hostId if required (needed for zfs)
# Otherwise leave as-is
hostId = "5ab03f50";
# Whether printing services should be enabled.
printEnable = true;
# Name of the default printer.
ensureDefaultPrinter = "Brother_DCP-T510W";
# List of printers to ensure are configured.
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.106/ipp";
location = "home";
name = "Brother_DCP-T525W";
model = "everywhere";
}
{
deviceUri = "ipp://192.168.1.159/ipp";
location = "home";
name = "Brother_DCP-T510W";
model = "everywhere";
}
];
}
-14
View File
@@ -1,14 +0,0 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
+1
View File
@@ -113,5 +113,6 @@ _: {
gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
simpleScan.enable = true; # simple-scan: Simple scanning utility
};
}
+17
View File
@@ -62,4 +62,21 @@
# Set network hostId if required (needed for zfs)
# Otherwise leave as-is
hostId = "7bc04e61";
printEnable = true;
ensureDefaultPrinter = "Brother_DCP-T510W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.106/ipp";
location = "home";
name = "Brother_DCP-T525W";
model = "everywhere";
}
{
deviceUri = "ipp://192.168.1.159/ipp";
location = "home";
name = "Brother_DCP-T510W";
model = "everywhere";
}
];
}
-21
View File
@@ -1,21 +0,0 @@
{
# Whether printing services should be enabled.
printEnable = false;
# Name of the default printer.
ensureDefaultPrinter = "[name]";
# List of printers to ensure are configured.
ensurePrinters = [
{
# URI of the printer device.
deviceUri = "ipp://[IPv4]/ipp";
# Physical location description of the printer.
location = "[location]";
# Humanreadable printer name.
name = "[name]";
# Printer model; "everywhere" uses generic driver.
model = "everywhere";
}
];
}
+1
View File
@@ -113,5 +113,6 @@ _: {
gedit.enable = false; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
simpleScan.enable = false; # simple-scan: Simple scanning utility
};
}
+18
View File
@@ -68,4 +68,22 @@
# Set network hostId if required (needed for zfs)
# Otherwise leave as-is
hostId = "5ab03f50";
# Whether printing services should be enabled.
printEnable = false;
# Name of the default printer.
ensureDefaultPrinter = "[name]";
# List of printers to ensure are configured.
ensurePrinters = [
{
# URI of the printer device.
deviceUri = "ipp://[IPv4]/ipp";
# Physical location description of the printer.
location = "[location]";
# Humanreadable printer name.
name = "[name]";
# Printer model; "everywhere" uses generic driver.
model = "everywhere";
}
];
}
+2
View File
@@ -34,6 +34,8 @@
}
];
allowedUDPPorts = [
5353
54925
59010
59011
];
+1
View File
@@ -76,6 +76,7 @@
notify = notify-client;
boxes = gnome-boxes;
switcheroo = switcheroo;
simpleScan = simple-scan;
};
in {
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
+7 -3
View File
@@ -31,8 +31,12 @@
ipp-usb.enable = true;
};
hardware.printers = lib.mkIf printEnable {
ensureDefaultPrinter = ensureDefaultPrinter;
ensurePrinters = ensurePrinters;
hardware = lib.mkIf printEnable {
printers = {
ensureDefaultPrinter = ensureDefaultPrinter;
ensurePrinters = ensurePrinters;
};
sane.enable = true;
};
}
+3
View File
@@ -15,6 +15,9 @@
set fish_greeting
# fastfetch
'';
shellInit = ''
set -gx LD_LIBRARY_PATH /etc/sane-libs $LD_LIBRARY_PATH
'';
};
nix-your-shell = {