diff --git a/common/base-graphical/desktop.nix b/common/base-graphical/desktop.nix index 50ff84c..7e6a92c 100644 --- a/common/base-graphical/desktop.nix +++ b/common/base-graphical/desktop.nix @@ -1,11 +1,8 @@ { config, lib, pkgs, ... }: let - inherit (lib) mkIf mkOption types; + inherit (lib) mkIf mkMerge mkOption types; cfg = config.qenya.base-graphical; - - isGnome = cfg.desktop == "gnome"; - isPlasma6 = cfg.desktop == "plasma6"; in { options.qenya.base-graphical.desktop = mkOption { @@ -15,12 +12,24 @@ in description = "Which display manager and desktop manager to use."; }; - config = mkIf cfg.enable { - services.xserver.displayManager.gdm.enable = isGnome; - services.xserver.desktopManager.gnome.enable = isGnome; - - services.displayManager.sddm.enable = isPlasma6; - services.displayManager.sddm.wayland.enable = isPlasma6; - services.desktopManager.plasma6.enable = isPlasma6; - }; + config = mkIf cfg.enable (mkMerge [ + (mkIf (cfg.desktop == "gnome") { + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + # TODO: agree on this with randomcat as it affects her too, since for some reason this is system-wide + # environment.gnome.excludePackages = with pkgs.gnome; [ + # pkgs.gnome-tour + # epiphany # GNOME Web + # geary + # gnome-calendar + # gnome-contacts + # gnome-music + # ]; + }) + (mkIf (cfg.desktop == "plasma6") { + services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + services.desktopManager.plasma6.enable = true; + }) + ]); } diff --git a/hosts/yevaud/default.nix b/hosts/yevaud/default.nix index b620f43..d1804fe 100644 --- a/hosts/yevaud/default.nix +++ b/hosts/yevaud/default.nix @@ -22,6 +22,36 @@ privateKeyFile = config.age.secrets.wireguard-peer-yevaud.path; }; + services.bind = { + # enable = true; + cacheNetworks = [ "10.127.0.0/16" "fd70:81ca:0f8f::/48" ]; + forwarders = [ ]; + listenOn = [ config.birdsong.hosts.yevaud.ipv4 ]; + listenOnIpv6 = [ config.birdsong.hosts.yevaud.ipv6 ]; + zones = { + "birdsong.internal" = { + master = true; + # TODO: pick better email address for SOA record + file = pkgs.writeText "birdsong.internal.zone" '' + $TTL 60 + $ORIGIN birdsong.internal. + + birdsong.internal. IN SOA ns.birdsong.internal. accounts.katherina.rocks. ( 2024080401 7200 3600 1209600 3600 ) + birdsong.internal. IN NS ns.birdsong.internal. + + yevaud.c.birdsong.internal. IN A 10.127.1.1 + yevaud.c.birdsong.internal. IN AAAA fd70:81ca:0f8f:1::1 + + ns.birdsong.internal. IN A 10.127.1.1 + ns.birdsong.internal. IN AAAA fd70:81ca:0f8f:1::1 + ''; + }; + }; + }; + networking.resolvconf.useLocalResolver = false; + networking.firewall.allowedTCPPorts = [ 53 ]; + networking.firewall.allowedUDPPorts = [ 53 ]; + qenya.services.forgejo = { enable = true; domain = "git.qenya.tel";