diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2025-09-19 17:32:27 -0500 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2025-09-19 17:32:27 -0500 |
| commit | e63f4bda23477436bee8b30db73cf8deba4a8a5f (patch) | |
| tree | 5897ba5e2e24c633d3c96b8d43213138118c6737 /modules/services/nixos | |
| parent | 6291fefa5741f201f29e2916ca29b93bcc6b7fc8 (diff) | |
| parent | 5d0d346f838a7711fa79eb6edab828107b95a499 (diff) | |
merge changes from main
Diffstat (limited to 'modules/services/nixos')
| -rw-r--r-- | modules/services/nixos/audio.nix | 20 | ||||
| -rw-r--r-- | modules/services/nixos/bluetooth.nix | 19 | ||||
| -rw-r--r-- | modules/services/nixos/default.nix | 9 | ||||
| -rw-r--r-- | modules/services/nixos/networking/default.nix | 18 | ||||
| -rw-r--r-- | modules/services/nixos/networking/iwd.nix | 27 | ||||
| -rw-r--r-- | modules/services/nixos/networking/networkmanager.nix | 15 | ||||
| -rw-r--r-- | modules/services/nixos/selfhost/default.nix | 11 | ||||
| -rw-r--r-- | modules/services/nixos/selfhost/navidrome.nix | 19 | ||||
| -rw-r--r-- | modules/services/nixos/tailscale.nix | 15 |
9 files changed, 153 insertions, 0 deletions
diff --git a/modules/services/nixos/audio.nix b/modules/services/nixos/audio.nix new file mode 100644 index 0000000..273f1a4 --- /dev/null +++ b/modules/services/nixos/audio.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.services.audio; +in + lib.mkIf cfg.enable { + security.rtkit.enable = false; + services.pipewire = { + enable = true; + wireplumber.enable = true; + alsa.enable = true; + + pulse.enable = cfg.pulse.enable; + }; + + environment.systemPackages = [pkgs.pwvucontrol]; + } diff --git a/modules/services/nixos/bluetooth.nix b/modules/services/nixos/bluetooth.nix new file mode 100644 index 0000000..a86b5b3 --- /dev/null +++ b/modules/services/nixos/bluetooth.nix @@ -0,0 +1,19 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.services.bluetooth; +in + lib.mkIf cfg.enable { + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; + + environment.systemPackages = [ + (lib.mkIf cfg.blueman.enable pkgs.blueman) + (lib.mkIf cfg.bluetuith.enable pkgs.bluetuith) + ]; + } diff --git a/modules/services/nixos/default.nix b/modules/services/nixos/default.nix new file mode 100644 index 0000000..d177b88 --- /dev/null +++ b/modules/services/nixos/default.nix @@ -0,0 +1,9 @@ +{ + imports = [ + ./networking + ./audio.nix + ./bluetooth.nix + ./tailscale.nix + ./selfhost + ]; +} diff --git a/modules/services/nixos/networking/default.nix b/modules/services/nixos/networking/default.nix new file mode 100644 index 0000000..68c794c --- /dev/null +++ b/modules/services/nixos/networking/default.nix @@ -0,0 +1,18 @@ +{ + imports = [ + ./iwd.nix + ./networkmanager.nix + ]; + + config = { + services.resolved = { + enable = true; + domains = [ + "10.0.0.1" + "10.0.0.10" + ]; + }; + + networking.resolvconf.enable = false; + }; +} diff --git a/modules/services/nixos/networking/iwd.nix b/modules/services/nixos/networking/iwd.nix new file mode 100644 index 0000000..441498d --- /dev/null +++ b/modules/services/nixos/networking/iwd.nix @@ -0,0 +1,27 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.services.networking; +in + lib.mkIf (cfg.enable && cfg.iwd.enable) { + networking = { + wireless.iwd = { + enable = true; + settings = { + General = { + EnableNetworkConfiguration = true; # use builtin dhcp client + AddressRandomization = "once"; + }; + Network.NameResolvingService = "systemd"; # either systemd or resolvconf + }; + }; + + # Disable default networking stuff + dhcpcd.enable = false; + useDHCP = false; + networkmanager.enable = false; + }; + systemd.network.enable = lib.mkForce false; + } diff --git a/modules/services/nixos/networking/networkmanager.nix b/modules/services/nixos/networking/networkmanager.nix new file mode 100644 index 0000000..f22f922 --- /dev/null +++ b/modules/services/nixos/networking/networkmanager.nix @@ -0,0 +1,15 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.services.networking; +in + lib.mkIf (cfg.enable && cfg.networkmanager.enable) { + networking = { + nameservers = ["1.1.1.1" "1.0.0.1"]; + enableIPv6 = false; + + networkmanager.enable = true; + }; + } diff --git a/modules/services/nixos/selfhost/default.nix b/modules/services/nixos/selfhost/default.nix new file mode 100644 index 0000000..d3b884a --- /dev/null +++ b/modules/services/nixos/selfhost/default.nix @@ -0,0 +1,11 @@ +{ + lib, + config, + ... +}: { + imports = [ + ./navidrome.nix + ]; + + qt.style = lib.optionalAttrs (config.collinux.theme == "adwaita") {name = "adwaita-dark";}; +} diff --git a/modules/services/nixos/selfhost/navidrome.nix b/modules/services/nixos/selfhost/navidrome.nix new file mode 100644 index 0000000..5250b85 --- /dev/null +++ b/modules/services/nixos/selfhost/navidrome.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.services.selfhost.navidrome; +in + lib.mkIf cfg.enable { + services.navidrome = { + enable = true; + inherit (cfg) user; + settings = { + Port = 4533; + Address = "0.0.0.0"; + EnableInsightsCollector = false; + MusicFolder = "/home/${cfg.user}/Music"; + }; + }; + } diff --git a/modules/services/nixos/tailscale.nix b/modules/services/nixos/tailscale.nix new file mode 100644 index 0000000..3fbd691 --- /dev/null +++ b/modules/services/nixos/tailscale.nix @@ -0,0 +1,15 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.collinux.services.networking.tailscale; +in + lib.mkIf cfg.enable { + services.tailscale = { + enable = true; + useRoutingFeatures = "both"; + }; + environment.systemPackages = [pkgs.tailscale]; + } |
