Add host printer configs and refactor printing

Add printers.nix for Garand‑Desktop, Garand‑Laptop, and default hosts
with
printer definitions and a printEnable flag. Disable NFS by default in
the
host variables. Rewrite modules/core/printing.nix to import printer
settings, enable services only when printing is enabled, and add more
CUPS/Avahi options plus hardware.printers configuration. Add the lpadmin
group to the main user. Update the Messenger desktop entry URL to the
Facebook Messages page.
This commit is contained in:
2026-05-07 15:05:11 +02:00
parent 79769e4dc5
commit 2c2d54a4a7
9 changed files with 85 additions and 18 deletions
+14
View File
@@ -0,0 +1,14 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
+1 -1
View File
@@ -33,7 +33,7 @@
nvidiaID = "PCI:0:2:0";
# Enable NFS
enableNFS = true;
enableNFS = false;
# Enable Printing Support
printEnable = true;
+14
View File
@@ -0,0 +1,14 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
+1 -4
View File
@@ -33,10 +33,7 @@
nvidiaID = "PCI:0:2:0";
# Enable NFS
enableNFS = true;
# Enable Printing Support
printEnable = false;
enableNFS = false;
# Set Stylix Image
# This will set your color palette
+21
View File
@@ -0,0 +1,21 @@
{
# 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 -1
View File
@@ -35,7 +35,7 @@
nvidiaID = "PCI:0:2:0";
# Enable NFS
enableNFS = true;
enableNFS = false;
# Enable Printing Support
printEnable = false;
+31 -11
View File
@@ -1,18 +1,38 @@
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) printEnable;
{
pkgs,
lib,
host,
...
}: let
inherit (import ../../hosts/${host}/printers.nix) printEnable ensureDefaultPrinter ensurePrinters;
in {
services = {
services = lib.mkIf printEnable {
printing = {
enable = printEnable;
drivers = [
# pkgs.hplipWithPlugin
enable = true;
drivers = with pkgs; [
cups-filters
cups-browsed
];
};
avahi = {
enable = printEnable;
nssmdns4 = true;
listenAddresses = ["*:631"];
allowFrom = ["all"];
browsing = true;
defaultShared = true;
openFirewall = true;
};
ipp-usb.enable = printEnable;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
publish = {
enable = true;
userServices = true;
};
};
ipp-usb.enable = true;
};
hardware.printers = lib.mkIf printEnable {
ensureDefaultPrinter = ensureDefaultPrinter;
ensurePrinters = ensurePrinters;
};
}
+1
View File
@@ -51,6 +51,7 @@ in {
"wheel" # sudo access
"vboxusers" # Virtual Box
"gamemode"
"lpadmin"
];
shell = pkgs.bash;
ignoreShellProgramCheck = true;
+1 -1
View File
@@ -22,7 +22,7 @@
{
name = "messenger";
displayName = "Messenger";
url = "https://www.messenger.com/";
url = "https://www.facebook.com/messages/";
iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
}