aboutsummaryrefslogtreecommitdiff
path: root/modules/services/nixos
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-09-19 17:32:27 -0500
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-09-19 17:32:27 -0500
commite63f4bda23477436bee8b30db73cf8deba4a8a5f (patch)
tree5897ba5e2e24c633d3c96b8d43213138118c6737 /modules/services/nixos
parent6291fefa5741f201f29e2916ca29b93bcc6b7fc8 (diff)
parent5d0d346f838a7711fa79eb6edab828107b95a499 (diff)
merge changes from main
Diffstat (limited to 'modules/services/nixos')
-rw-r--r--modules/services/nixos/audio.nix20
-rw-r--r--modules/services/nixos/bluetooth.nix19
-rw-r--r--modules/services/nixos/default.nix9
-rw-r--r--modules/services/nixos/networking/default.nix18
-rw-r--r--modules/services/nixos/networking/iwd.nix27
-rw-r--r--modules/services/nixos/networking/networkmanager.nix15
-rw-r--r--modules/services/nixos/selfhost/default.nix11
-rw-r--r--modules/services/nixos/selfhost/navidrome.nix19
-rw-r--r--modules/services/nixos/tailscale.nix15
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];
+ }