diff --git a/modules/misc/static-ip.nix b/modules/misc/static-ip.nix index 51e3465..f7d52b0 100644 --- a/modules/misc/static-ip.nix +++ b/modules/misc/static-ip.nix @@ -1,46 +1,48 @@ -{config, lib, ...}: +{ config, lib, ... }: with lib; -let - cfg = config.custom.static-ip; -in -{ - options.custom.static-ip = { - enable = mkEnableOption "Enables static-ip"; - ip = lib.mkOption { - type = types.str; - description = "ipv4 address"; +let cfg = config.custom.static-ip; +in { + options.custom.static-ip = { + enable = mkEnableOption "Enables static-ip"; + ip = lib.mkOption { + type = types.str; + description = "ipv4 address"; + }; + dns = lib.mkOption { + type = types.str; + description = "ip of the dns server"; + }; + interface = lib.mkOption { + type = types.str; + description = "interface to apply the change to"; + }; + gateway = lib.mkOption { + type = types.str; + default = "192.168.0.1"; + description = "Default gateway"; + }; + }; + config = let fallback = "1.1.1.1"; + in mkIf cfg.enable { + networking = { + defaultGateway = cfg.gateway; + useDHCP = false; + nameservers = [ cfg.dns ] + ++ lib.lists.optionals (!config.services.resolved.enable) [ fallback ]; + interfaces = { + ${cfg.interface} = { + name = "eth0"; + ipv4.addresses = [{ + address = cfg.ip; + prefixLength = 24; + }]; + }; }; - dns = lib.mkOption { - type = types.str; - description = "ip of the dns server"; - }; - interface = lib.mkOption { - type = types.str; - description = "interface to apply the change to"; - }; - gateway = lib.mkOption { - type = types.str; - default = "192.168.0.1"; - description = "Default gateway"; - }; - }; - config = mkIf cfg.enable { - networking = { - defaultGateway = cfg.gateway; - useDHCP = false; - nameservers = [ - cfg.dns - "1.1.1.1" - ]; - interfaces = { - ${cfg.interface} = { - name = "eth0"; - ipv4.addresses = [{ - address = cfg.ip; - prefixLength = 24; - }]; - }; - }; - }; + }; + + services.resolved = lib.mkIf config.services.resolved.enable { + llmnr = "false"; + fallbackDns = [ "1.1.1.1" ]; + }; }; } diff --git a/systems/pc/configuration.nix b/systems/pc/configuration.nix index a268b0d..de2408f 100644 --- a/systems/pc/configuration.nix +++ b/systems/pc/configuration.nix @@ -31,14 +31,9 @@ interface = "enp42s0"; ip = "192.168.0.11"; #dns = "127.0.0.1"; - dns = "192.168.10"; + dns = "192.168.0.10"; #gateway = "192.168.0.10"; }; - # It uses 1.1.1.1 for some reason? set in /etc/dnsmasq-resolv.conf. no idea why - #services.dnsmasq = { - # enable = true; - # server = [ "192.168.0.10" ]; - #}; misc = { docker.enable = true; }; services = { syncthing = { enable = true; }; }; hardware = {