aboutsummaryrefslogtreecommitdiff
path: root/modules/services
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-07-08 17:03:20 +0000
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-07-08 17:14:14 +0000
commit82ec91b4d2c253c6ccb783f960a2788f230d6ad1 (patch)
tree94dad925340787e5a045d9bb0d094f71dedce036 /modules/services
parentcfe198ee85f3c5ee41f4221f49b73dd492b42fdc (diff)
start avoiding lib.enum; start using hjem generators
Diffstat (limited to 'modules/services')
-rw-r--r--modules/services/options.nix28
-rw-r--r--modules/services/system/bluetooth.nix5
-rw-r--r--modules/services/system/networking/default.nix3
-rw-r--r--modules/services/system/networking/iwd.nix2
-rw-r--r--modules/services/system/networking/networkmanager.nix (renamed from modules/services/system/networking/nm.nix)2
5 files changed, 29 insertions, 11 deletions
diff --git a/modules/services/options.nix b/modules/services/options.nix
index 344d37d..cda9299 100644
--- a/modules/services/options.nix
+++ b/modules/services/options.nix
@@ -1,20 +1,36 @@
-{lib, ...}: let
- inherit (lib) mkEnableOption mkOption types;
+{
+ lib,
+ config,
+ ...
+}: let
+ inherit (lib) mkEnableOption;
in {
options = {
collinux.services = {
networking = {
enable = mkEnableOption "wifi";
- wifiDaemon = mkOption {
- type = types.enum ["networkmanager" "iwd"];
- };
+ iwd.enable = mkEnableOption "lightweight wifi daemon";
+ networkmanager.enable = mkEnableOption "heavier wifi daemon";
};
audio = {
enable = mkEnableOption "pipewire + wireplumber";
pulse.enable = mkEnableOption "pipewire-pulse";
# some config to make audio work with wine (TODO for jupiter)
};
- bluetooth.enable = mkEnableOption "bluetooth";
+ bluetooth = {
+ enable = mkEnableOption "bluetooth";
+ blueman.enable = mkEnableOption "graphical bluetooth manager";
+ bluetuith.enable = mkEnableOption "terminal bluetooth manager";
+ };
};
};
+
+ config = {
+ assertions = [
+ {
+ assertion = with config.collinux.services.networking; !(iwd.enable && networkmanager.enable);
+ message = "can not use iwd and networkmanager at the same time";
+ }
+ ];
+ };
}
diff --git a/modules/services/system/bluetooth.nix b/modules/services/system/bluetooth.nix
index a0c3f86..a86b5b3 100644
--- a/modules/services/system/bluetooth.nix
+++ b/modules/services/system/bluetooth.nix
@@ -12,5 +12,8 @@ in
powerOnBoot = true;
};
- environment.systemPackages = [pkgs.blueman];
+ environment.systemPackages = [
+ (lib.mkIf cfg.blueman.enable pkgs.blueman)
+ (lib.mkIf cfg.bluetuith.enable pkgs.bluetuith)
+ ];
}
diff --git a/modules/services/system/networking/default.nix b/modules/services/system/networking/default.nix
index 4908b6f..68c794c 100644
--- a/modules/services/system/networking/default.nix
+++ b/modules/services/system/networking/default.nix
@@ -1,7 +1,7 @@
{
imports = [
./iwd.nix
- ./nm.nix
+ ./networkmanager.nix
];
config = {
@@ -16,4 +16,3 @@
networking.resolvconf.enable = false;
};
}
-
diff --git a/modules/services/system/networking/iwd.nix b/modules/services/system/networking/iwd.nix
index 5306f29..d081792 100644
--- a/modules/services/system/networking/iwd.nix
+++ b/modules/services/system/networking/iwd.nix
@@ -5,7 +5,7 @@
}: let
cfg = config.collinux.services.networking;
in
- lib.mkIf (cfg.enable && cfg.wifiDaemon == "iwd") {
+ lib.mkIf (cfg.enable && cfg.iwd.enable) {
networking = {
wireless.iwd = {
enable = true;
diff --git a/modules/services/system/networking/nm.nix b/modules/services/system/networking/networkmanager.nix
index 674664e..f22f922 100644
--- a/modules/services/system/networking/nm.nix
+++ b/modules/services/system/networking/networkmanager.nix
@@ -5,7 +5,7 @@
}: let
cfg = config.collinux.services.networking;
in
- lib.mkIf (cfg.enable && cfg.wifiDaemon == "networkmanager") {
+ lib.mkIf (cfg.enable && cfg.networkmanager.enable) {
networking = {
nameservers = ["1.1.1.1" "1.0.0.1"];
enableIPv6 = false;