Personal Nix setup
at main 1.5 kB view raw
1{ lib, pkgs, config, user, ... }: 2 3with lib; 4let 5 inherit (generators) toLua; 6 cfg = config.modules.desktop; 7in { 8 options.modules.desktop.networking = { 9 enable = mkOption { 10 default = cfg.enable; 11 example = true; 12 description = "Whether to enable networking."; 13 type = types.bool; 14 }; 15 16 printing = mkOption { 17 default = cfg.networking.enable; 18 example = true; 19 description = "Whether to enable printing."; 20 type = types.bool; 21 }; 22 }; 23 24 config = mkIf cfg.networking.enable { 25 networking = { 26 firewall = { 27 enable = mkDefault true; 28 checkReversePath = "loose"; 29 allowedUDPPorts = [ 5353 ]; 30 }; 31 nftables = { 32 enable = mkForce true; 33 checkRuleset = false; 34 flushRuleset = true; 35 }; 36 networkmanager = { 37 enable = mkDefault true; 38 dns = mkDefault (if config.servies.resolved.enable then "systemd-resolved" else "default"); 39 connectionConfig = { 40 "connection.mdns" = mkDefault 2; 41 "connection.llmnr" = 0; 42 }; 43 wifi = { 44 backend = "iwd"; 45 powersave = true; 46 }; 47 }; 48 }; 49 50 services = { 51 resolved = { 52 enable = true; 53 llmnr = "false"; 54 extraConfig = '' 55 [Resolve] 56 MulticastDNS=yes 57 ''; 58 }; 59 60 printing = mkIf cfg.networking.printing { 61 enable = true; 62 stateless = true; 63 webInterface = false; 64 }; 65 }; 66 }; 67}