Files
moonix/modules/printing.nix
T
nevaforget dba33d2463 refactor(modules): one topic per module, and Firefox preconfigured
Two changes that cannot be separated in the result: the Firefox
preconfiguration is what made desktop.nix untenable, and the split is what it
now lives in.

Firefox replaces LibreWolf, with Betterfox as its preference base and the
settings that Betterfox does not cover expressed as policies: uBlock Origin,
the Catppuccin theme, no Pocket, no Sync, autoscroll, DuckDuckGo, no
translation offer, no password prompts, no bookmarks toolbar, about:blank as
home and new tab. Both add-ons are normal_installed and the preferences keep
status "default", so none of it is locked away — undoing settings by hand was
the reason to leave LibreWolf.

desktop.nix carried thirteen topics over 637 lines, and the existing split
followed the NixOS option namespace rather than the topic: services.pipewire
here, its configPackages there; services.gvfs and services.udisks2 apart from
their packages; Bluetooth likewise. Nine modules now each hold one topic with
its options, packages, configs and services together. desktop.nix keeps the
compositor, the /etc deployment, portals and what belongs to no topic.

The refactor changes nothing about the built system, and that was checked
after each of the eight steps rather than assumed. The plain store path does
not serve as the criterion: moving a package to another module reorders
environment.systemPackages, which changes the system-path hash and propagates
into every file naming it. What was compared instead is the package set
through diff-closures and every differing file with store hashes normalised
away. Two steps reordered the user tmpfiles list, which is neutral only
because no two rules name the same path — checked, not presumed.
2026-09-24 15:18:33 +02:00

25 lines
900 B
Nix

# ABOUTME: Driverless printing over IPP, and the Avahi half that discovers it.
# ABOUTME: No printer and no driver package is declared here.
{ ... }:
{
# Driverless only, and no printer is declared here. Asked over IPP, the
# Samsung M267x 287x answers with image/urf and application/PCLm among its
# document formats, so CUPS builds the queue from the capabilities the device
# reports about itself — no PPD, no driver package, nothing about anyone's
# network in this repository. Any AirPrint-capable printer works the same way,
# including ones this machine has never seen.
#
# Avahi is the discovery half: without it the printer is not found and its
# .local name does not resolve. openFirewall defaults to true and opens
# UDP 5353 for mDNS.
services.printing.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
}