From 82ec91b4d2c253c6ccb783f960a2788f230d6ad1 Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Tue, 8 Jul 2025 17:03:20 +0000 Subject: start avoiding lib.enum; start using hjem generators --- modules/services/options.nix | 28 +++++++++++++++++----- modules/services/system/bluetooth.nix | 5 +++- modules/services/system/networking/default.nix | 3 +-- modules/services/system/networking/iwd.nix | 2 +- .../services/system/networking/networkmanager.nix | 15 ++++++++++++ modules/services/system/networking/nm.nix | 15 ------------ 6 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 modules/services/system/networking/networkmanager.nix delete mode 100644 modules/services/system/networking/nm.nix (limited to 'modules/services') 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/networkmanager.nix b/modules/services/system/networking/networkmanager.nix new file mode 100644 index 0000000..f22f922 --- /dev/null +++ b/modules/services/system/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/system/networking/nm.nix b/modules/services/system/networking/nm.nix deleted file mode 100644 index 674664e..0000000 --- a/modules/services/system/networking/nm.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - ... -}: let - cfg = config.collinux.services.networking; -in - lib.mkIf (cfg.enable && cfg.wifiDaemon == "networkmanager") { - networking = { - nameservers = ["1.1.1.1" "1.0.0.1"]; - enableIPv6 = false; - - networkmanager.enable = true; - }; - } -- cgit v1.3.1