HASH 512482d85f62
DATE 2025-10-24
SUBJECT refactor: globally import all options
FILES 17 CHANGED
HASH 512482d85f62
DATE 2025-10-24
SUBJECT refactor: globally import all options
FILES 17 CHANGED
┌─ modules/common/base/default.nix ──────────────────────────────────────────┐
│ diff --git a/modules/common/base/default.nix b/modules/common/base/default.nix │
│ index 1d0f493..6f7b869 100644 │
│ --- a/modules/common/base/default.nix │
│ +++ b/modules/common/base/default.nix │
│ @@ -7,6 +7,5 @@ │
│ ./home-manager.nix │
│ ./locale.nix │
│ ./nix.nix │
│ - ./options.nix │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ modules/common/base/default.nix ────┐
│ diff --git a/modules/common/base/default.nix │
│ b/modules/common/base/default.nix │
│ index 1d0f493..6f7b869 100644 │
│ --- a/modules/common/base/default.nix │
│ +++ b/modules/common/base/default.nix │
│ @@ -7,6 +7,5 @@ │
│ ./home-manager.nix │
│ ./locale.nix │
│ ./nix.nix │
│ - ./options.nix │
│ ]; │
│ } │
└──────────────────────────────────────────────┘
┌─ modules/common/console/default.nix ───────────────────────────────────────┐
│ diff --git a/modules/common/console/default.nix b/modules/common/console/default.n │
│ ix │
│ index c96a183..ca6cefa 100644 │
│ --- a/modules/common/console/default.nix │
│ +++ b/modules/common/console/default.nix │
│ @@ -10,7 +10,6 @@ in { │
│ imports = [ │
│ ./shell │
│ ./profile │
│ - ./options.nix │
│ ]; │
│ │
│ home-manager.users = mkIf admin.homeManager { │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...es/common/console/default.nix ───┐
│ diff --git a/modules/common/console/default. │
│ nix b/modules/common/console/default.nix │
│ index c96a183..ca6cefa 100644 │
│ --- a/modules/common/console/default.nix │
│ +++ b/modules/common/console/default.nix │
│ @@ -10,7 +10,6 @@ in { │
│ imports = [ │
│ ./shell │
│ ./profile │
│ - ./options.nix │
│ ]; │
│ │
│ home-manager.users = mkIf admin.homeManag │
│ er { │
└──────────────────────────────────────────────┘
┌─ modules/nixos/hardware/cpu/default.nix ───────────────────────────────────┐
│ diff --git a/modules/nixos/hardware/cpu/default.nix b/modules/nixos/hardware/cpu/d │
│ efault.nix │
│ index d126fb9..b0acb52 100644 │
│ --- a/modules/nixos/hardware/cpu/default.nix │
│ +++ b/modules/nixos/hardware/cpu/default.nix │
│ @@ -2,6 +2,5 @@ │
│ imports = [ │
│ ./amd.nix │
│ ./intel.nix │
│ - ./options.nix │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...ixos/hardware/cpu/default.nix ───┐
│ diff --git a/modules/nixos/hardware/cpu/defa │
│ ult.nix b/modules/nixos/hardware/cpu/default │
│ .nix │
│ index d126fb9..b0acb52 100644 │
│ --- a/modules/nixos/hardware/cpu/default.nix │
│ +++ b/modules/nixos/hardware/cpu/default.nix │
│ @@ -2,6 +2,5 @@ │
│ imports = [ │
│ ./amd.nix │
│ ./intel.nix │
│ - ./options.nix │
│ ]; │
│ } │
└──────────────────────────────────────────────┘
┌─ modules/nixos/hardware/cpu/options.nix ───────────────────────────────────┐
│ diff --git a/modules/nixos/hardware/cpu/options.nix b/modules/nixos/hardware/cpu/o │
│ ptions.nix │
│ deleted file mode 100644 │
│ index 679a6a7..0000000 │
│ --- a/modules/nixos/hardware/cpu/options.nix │
│ +++ /dev/null │
│ @@ -1,139 +0,0 @@ │
│ -{ │
│ - lib, │
│ - config, │
│ - ... │
│ -}: let │
│ - inherit (lib) mkOption mkEnableOption; │
│ - inherit (lib.types) enum int str nullOr float; │
│ - cfg = config.ooknet.hardware.cpu; │
│ - microArchMapping = import ./micro-architectures; │
│ - │
│ - lookupMicroArch = cpu: let │
│ - vendor = cpu.type; │
│ - family = toString cpu.model.family; │
│ - model = toString cpu.model.id; │
│ - in │
│ - microArchMapping.${vendor}.${family}.${model} or null; │
│ -in { │
│ - options.ooknet.hardware.cpu = { │
│ - type = mkOption { │
│ - type = nullOr (enum ["intel" "amd"]); │
│ - default = null; │
│ - }; │
│ - │
│ - model = { │
│ - id = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "CPU model from CPUID"; │
│ - }; │
│ - family = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "CPU family from CPUID"; │
│ - }; │
│ - stepping = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "CPU stepping from CPUID"; │
│ - }; │
│ - name = mkOption { │
│ - type = nullOr str; │
│ - default = null; │
│ - description = "CPU Model Name"; │
│ - example = "Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz"; │
│ - }; │
│ - microArchitecture = mkOption { │
│ - type = str; │
│ - default = lookupMicroArch cfg; │
│ - description = "CPU microarchitecture (e.g, skylake, zen4)"; │
│ - readOnly = true; │
│ - }; │
│ - }; │
│ - │
│ - spec = { │
│ - sockets = mkOption { │
│ - type = nullOr int; │
│ - default = 1; │
│ - description = "Number of CPU sockets"; │
│ - }; │
│ - baseClock = mkOption { │
│ - type = nullOr float; │
│ - default = null; │
│ - description = "Base clock frequency in GHz"; │
│ - example = 3.8; │
│ - }; │
│ - │
│ - boostClock = mkOption { │
│ - type = nullOr float; │
│ - default = null; │
│ - description = "Boost clock frequency in GHz"; │
│ - example = 4.7; │
│ - }; │
│ - │
│ - coresPerSocket = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Number of Physical CPU core per socket"; │
│ - }; │
│ - │
│ - threadsPerCore = mkOption { │
│ - type = int; │
│ - default = 1; │
│ - description = "Number of threads per physical core (hyperthreading)"; │
│ - }; │
│ - │
│ - totalThreads = mkOption { │
│ - type = int; │
│ - default = │
│ - if cfg.spec.sockets == null || cfg.spec.coresPerSocket == null │
│ - then null │
│ - else (cfg.cpu.spec.coresPerSocket * cfg.cpu.spec.sockets) * cfg.cpu.spe │
│ c.threadsPerCore; │
│ - description = "Number of cpu threads the cpu has"; │
│ - readOnly = true; │
│ - }; │
│ - │
│ - tdp = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = '' │
│ - Thermal Design Power in watts. │
│ - Must be manually specified based on CPU model. │
│ - Refer to manufacturer specifications: │
│ - - Intel: https://ark.intel.com │
│ - - AMD: https://www.amd.com/en/products/specifications.html │
│ - ''; │
│ - example = 65; │
│ - }; │
│ - │
│ - cache = { │
│ - l1i = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L1 instruction cache in Bytes"; │
│ - example = 192; │
│ - }; │
│ - l1d = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L1 data cache in Bytes"; │
│ - example = 192; │
│ - }; │
│ - l2 = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L2 cache in Bytes"; │
│ - example = 6; │
│ - }; │
│ - l3 = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L3 cache in Bytes"; │
│ - example = 32; │
│ - }; │
│ - }; │
│ - }; │
│ - │
│ - amd.pstate.enable = mkEnableOption ""; │
│ - }; │
│ -} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...ixos/hardware/cpu/options.nix ───┐
│ diff --git a/modules/nixos/hardware/cpu/opti │
│ ons.nix b/modules/nixos/hardware/cpu/options │
│ .nix │
│ deleted file mode 100644 │
│ index 679a6a7..0000000 │
│ --- a/modules/nixos/hardware/cpu/options.nix │
│ +++ /dev/null │
│ @@ -1,139 +0,0 @@ │
│ -{ │
│ - lib, │
│ - config, │
│ - ... │
│ -}: let │
│ - inherit (lib) mkOption mkEnableOption; │
│ - inherit (lib.types) enum int str nullOr f │
│ loat; │
│ - cfg = config.ooknet.hardware.cpu; │
│ - microArchMapping = import ./micro-archite │
│ ctures; │
│ - │
│ - lookupMicroArch = cpu: let │
│ - vendor = cpu.type; │
│ - family = toString cpu.model.family; │
│ - model = toString cpu.model.id; │
│ - in │
│ - microArchMapping.${vendor}.${family}.${ │
│ model} or null; │
│ -in { │
│ - options.ooknet.hardware.cpu = { │
│ - type = mkOption { │
│ - type = nullOr (enum ["intel" "amd"]); │
│ - default = null; │
│ - }; │
│ - │
│ - model = { │
│ - id = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "CPU model from CPUID │
│ "; │
│ - }; │
│ - family = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "CPU family from CPUI │
│ D"; │
│ - }; │
│ - stepping = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "CPU stepping from CP │
│ UID"; │
│ - }; │
│ - name = mkOption { │
│ - type = nullOr str; │
│ - default = null; │
│ - description = "CPU Model Name"; │
│ - example = "Intel(R) Core(TM) i3-101 │
│ 00 CPU @ 3.60GHz"; │
│ - }; │
│ - microArchitecture = mkOption { │
│ - type = str; │
│ - default = lookupMicroArch cfg; │
│ - description = "CPU microarchitectur │
│ e (e.g, skylake, zen4)"; │
│ - readOnly = true; │
│ - }; │
│ - }; │
│ - │
│ - spec = { │
│ - sockets = mkOption { │
│ - type = nullOr int; │
│ - default = 1; │
│ - description = "Number of CPU socket │
│ s"; │
│ - }; │
│ - baseClock = mkOption { │
│ - type = nullOr float; │
│ - default = null; │
│ - description = "Base clock frequency │
│ in GHz"; │
│ - example = 3.8; │
│ - }; │
│ - │
│ - boostClock = mkOption { │
│ - type = nullOr float; │
│ - default = null; │
│ - description = "Boost clock frequenc │
│ y in GHz"; │
│ - example = 4.7; │
│ - }; │
│ - │
│ - coresPerSocket = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Number of Physical C │
│ PU core per socket"; │
│ - }; │
│ - │
│ - threadsPerCore = mkOption { │
│ - type = int; │
│ - default = 1; │
│ - description = "Number of threads pe │
│ r physical core (hyperthreading)"; │
│ - }; │
│ - │
│ - totalThreads = mkOption { │
│ - type = int; │
│ - default = │
│ - if cfg.spec.sockets == null || cf │
│ g.spec.coresPerSocket == null │
│ - then null │
│ - else (cfg.cpu.spec.coresPerSocket │
│ * cfg.cpu.spec.sockets) * cfg.cpu.spec.thre │
│ adsPerCore; │
│ - description = "Number of cpu thread │
│ s the cpu has"; │
│ - readOnly = true; │
│ - }; │
│ - │
│ - tdp = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = '' │
│ - Thermal Design Power in watts. │
│ - Must be manually specified based │
│ on CPU model. │
│ - Refer to manufacturer specificati │
│ ons: │
│ - - Intel: https://ark.intel.com │
│ - - AMD: https://www.amd.com/en/pro │
│ ducts/specifications.html │
│ - ''; │
│ - example = 65; │
│ - }; │
│ - │
│ - cache = { │
│ - l1i = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L1 instruc │
│ tion cache in Bytes"; │
│ - example = 192; │
│ - }; │
│ - l1d = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L1 data ca │
│ che in Bytes"; │
│ - example = 192; │
│ - }; │
│ - l2 = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L2 cache i │
│ n Bytes"; │
│ - example = 6; │
│ - }; │
│ - l3 = mkOption { │
│ - type = nullOr int; │
│ - default = null; │
│ - description = "Size of L3 cache i │
│ n Bytes"; │
│ - example = 32; │
│ - }; │
│ - }; │
│ - }; │
│ - │
│ - amd.pstate.enable = mkEnableOption ""; │
│ - }; │
│ -} │
└──────────────────────────────────────────────┘
┌─ modules/nixos/hardware/default.nix ───────────────────────────────────────┐
│ diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.n │
│ ix │
│ index 5d0603a..710bbc1 100644 │
│ --- a/modules/nixos/hardware/default.nix │
│ +++ b/modules/nixos/hardware/default.nix │
│ @@ -4,6 +4,5 @@ │
│ ./gpu │
│ ./features │
│ ./common.nix │
│ - ./options.nix │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...es/nixos/hardware/default.nix ───┐
│ diff --git a/modules/nixos/hardware/default. │
│ nix b/modules/nixos/hardware/default.nix │
│ index 5d0603a..710bbc1 100644 │
│ --- a/modules/nixos/hardware/default.nix │
│ +++ b/modules/nixos/hardware/default.nix │
│ @@ -4,6 +4,5 @@ │
│ ./gpu │
│ ./features │
│ ./common.nix │
│ - ./options.nix │
│ ]; │
│ } │
└──────────────────────────────────────────────┘
┌─ modules/nixos/hardware/options.nix ───────────────────────────────────────┐
│ diff --git a/modules/nixos/hardware/options.nix b/modules/nixos/hardware/options.n │
│ ix │
│ deleted file mode 100644 │
│ index 5c420da..0000000 │
│ --- a/modules/nixos/hardware/options.nix │
│ +++ /dev/null │
│ @@ -1,103 +0,0 @@ │
│ -{ │
│ - lib, │
│ - config, │
│ - ... │
│ -}: let │
│ - inherit (builtins) filter length head; │
│ - inherit (lib) mkOption mkEnableOption; │
│ - inherit (lib.types) nullOr enum bool submodule listOf int str; │
│ - │
│ - cfg = config.ooknet.hardware; │
│ - hasMonitors = length cfg.monitors != 0; │
│ - primaryAttr = filter (m: m.primary or false) cfg.monitors; │
│ - primaryCount = length primaryAttr; │
│ -in { │
│ - options.ooknet.hardware = { │
│ - gpu = { │
│ - type = mkOption { │
│ - type = nullOr (enum ["intel" "amd" "nvidia"]); │
│ - default = null; │
│ - }; │
│ - lact.enable = mkEnableOption "Enable amd tuning software lact"; │
│ - benchmark.enable = mkEnableOption "Enable benchmarking tools"; │
│ - }; │
│ - │
│ - features = mkOption { │
│ - type = listOf (enum [ │
│ - "audio" │
│ - "video" │
│ - "bluetooth" │
│ - "backlight" │
│ - "battery" │
│ - "ssd" │
│ - "printing" │
│ - "fingerprint" │
│ - ]); │
│ - default = ["ssd"]; │
│ - }; │
│ - │
│ - # monitor module inspired by misterio77 │
│ - # includes the addition of transform option │
│ - primaryMonitor = mkOption { │
│ - type = nullOr str; │
│ - default = │
│ - if !hasMonitors │
│ - then null │
│ - else (head primaryAttr).name; │
│ - description = "Name of the primary monitor, derived from the monitors list" │
│ ; │
│ - readOnly = true; │
│ - }; │
│ - monitors = mkOption { │
│ - type = listOf (submodule { │
│ - options = { │
│ - name = mkOption { │
│ - type = str; │
│ - example = "DP-1"; │
│ - }; │
│ - primary = mkOption { │
│ - type = bool; │
│ - default = false; │
│ - }; │
│ - width = mkOption { │
│ - type = int; │
│ - example = 1920; │
│ - }; │
│ - height = mkOption { │
│ - type = int; │
│ - example = 1080; │
│ - }; │
│ - refreshRate = mkOption { │
│ - type = int; │
│ - default = 60; │
│ - }; │
│ - x = mkOption { │
│ - type = int; │
│ - default = 0; │
│ - }; │
│ - y = mkOption { │
│ - type = int; │
│ - default = 0; │
│ - }; │
│ - transform = mkOption { │
│ - type = int; │
│ - default = 0; │
│ - }; │
│ - enabled = mkOption { │
│ - type = bool; │
│ - default = true; │
│ - }; │
│ - }; │
│ - }); │
│ - default = []; │
│ - }; │
│ - }; │
│ - │
│ - config = { │
│ - assertions = [ │
│ - { │
│ - assertion = hasMonitors -> primaryCount == 1; │
│ - message = "Error: config.ooknet.hardware.monitors. When monitors are conf │
│ igured, exactly one monitor must be designated as primary (found ${toString primar │
│ yCount} primary monitors)"; │
│ - } │
│ - ]; │
│ - }; │
│ -} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...es/nixos/hardware/options.nix ───┐
│ diff --git a/modules/nixos/hardware/options. │
│ nix b/modules/nixos/hardware/options.nix │
│ deleted file mode 100644 │
│ index 5c420da..0000000 │
│ --- a/modules/nixos/hardware/options.nix │
│ +++ /dev/null │
│ @@ -1,103 +0,0 @@ │
│ -{ │
│ - lib, │
│ - config, │
│ - ... │
│ -}: let │
│ - inherit (builtins) filter length head; │
│ - inherit (lib) mkOption mkEnableOption; │
│ - inherit (lib.types) nullOr enum bool subm │
│ odule listOf int str; │
│ - │
│ - cfg = config.ooknet.hardware; │
│ - hasMonitors = length cfg.monitors != 0; │
│ - primaryAttr = filter (m: m.primary or fal │
│ se) cfg.monitors; │
│ - primaryCount = length primaryAttr; │
│ -in { │
│ - options.ooknet.hardware = { │
│ - gpu = { │
│ - type = mkOption { │
│ - type = nullOr (enum ["intel" "amd" │
│ "nvidia"]); │
│ - default = null; │
│ - }; │
│ - lact.enable = mkEnableOption "Enable │
│ amd tuning software lact"; │
│ - benchmark.enable = mkEnableOption "En │
│ able benchmarking tools"; │
│ - }; │
│ - │
│ - features = mkOption { │
│ - type = listOf (enum [ │
│ - "audio" │
│ - "video" │
│ - "bluetooth" │
│ - "backlight" │
│ - "battery" │
│ - "ssd" │
│ - "printing" │
│ - "fingerprint" │
│ - ]); │
│ - default = ["ssd"]; │
│ - }; │
│ - │
│ - # monitor module inspired by misterio77 │
│ - # includes the addition of transform op │
│ tion │
│ - primaryMonitor = mkOption { │
│ - type = nullOr str; │
│ - default = │
│ - if !hasMonitors │
│ - then null │
│ - else (head primaryAttr).name; │
│ - description = "Name of the primary mo │
│ nitor, derived from the monitors list"; │
│ - readOnly = true; │
│ - }; │
│ - monitors = mkOption { │
│ - type = listOf (submodule { │
│ - options = { │
│ - name = mkOption { │
│ - type = str; │
│ - example = "DP-1"; │
│ - }; │
│ - primary = mkOption { │
│ - type = bool; │
│ - default = false; │
│ - }; │
│ - width = mkOption { │
│ - type = int; │
│ - example = 1920; │
│ - }; │
│ - height = mkOption { │
│ - type = int; │
│ - example = 1080; │
│ - }; │
│ - refreshRate = mkOption { │
│ - type = int; │
│ - default = 60; │
│ - }; │
│ - x = mkOption { │
│ - type = int; │
│ - default = 0; │
│ - }; │
│ - y = mkOption { │
│ - type = int; │
│ - default = 0; │
│ - }; │
│ - transform = mkOption { │
│ - type = int; │
│ - default = 0; │
│ - }; │
│ - enabled = mkOption { │
│ - type = bool; │
│ - default = true; │
│ - }; │
│ - }; │
│ - }); │
│ - default = []; │
│ - }; │
│ - }; │
│ - │
│ - config = { │
│ - assertions = [ │
│ - { │
│ - assertion = hasMonitors -> primaryC │
│ ount == 1; │
│ - message = "Error: config.ooknet.har │
│ dware.monitors. When monitors are configured │
│ , exactly one monitor must be designated as │
│ primary (found ${toString primaryCount} prim │
│ ary monitors)"; │
│ - } │
│ - ]; │
│ - }; │
│ -} │
└──────────────────────────────────────────────┘
┌─ modules/nixos/server/default.nix ─────────────────────────────────────────┐
│ diff --git a/modules/nixos/server/default.nix b/modules/nixos/server/default.nix │
│ index 08ad3ca..7629813 100644 │
│ --- a/modules/nixos/server/default.nix │
│ +++ b/modules/nixos/server/default.nix │
│ @@ -1,6 +1,5 @@ │
│ { │
│ imports = [ │
│ - ./options.nix │
│ ./debloat.nix │
│ ./services │
│ ./webserver │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ modules/nixos/server/default.nix ───┐
│ diff --git a/modules/nixos/server/default.ni │
│ x b/modules/nixos/server/default.nix │
│ index 08ad3ca..7629813 100644 │
│ --- a/modules/nixos/server/default.nix │
│ +++ b/modules/nixos/server/default.nix │
│ @@ -1,6 +1,5 @@ │
│ { │
│ imports = [ │
│ - ./options.nix │
│ ./debloat.nix │
│ ./services │
│ ./webserver │
└──────────────────────────────────────────────┘
┌─ modules/nixos/virtualization/default.nix ─────────────────────────────────┐
│ diff --git a/modules/nixos/virtualization/default.nix b/modules/nixos/virtualizati │
│ on/default.nix │
│ index d30f37b..be776a5 100644 │
│ --- a/modules/nixos/virtualization/default.nix │
│ +++ b/modules/nixos/virtualization/default.nix │
│ @@ -1,6 +1,5 @@ │
│ { │
│ imports = [ │
│ - ./options.nix │
│ ./host │
│ ./guest │
│ ]; │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...os/virtualization/default.nix ───┐
│ diff --git a/modules/nixos/virtualization/de │
│ fault.nix b/modules/nixos/virtualization/def │
│ ault.nix │
│ index d30f37b..be776a5 100644 │
│ --- a/modules/nixos/virtualization/default.n │
│ ix │
│ +++ b/modules/nixos/virtualization/default.n │
│ ix │
│ @@ -1,6 +1,5 @@ │
│ { │
│ imports = [ │
│ - ./options.nix │
│ ./host │
│ ./guest │
│ ]; │
└──────────────────────────────────────────────┘
┌─ modules/nixos/workstation/default.nix ────────────────────────────────────┐
│ diff --git a/modules/nixos/workstation/default.nix b/modules/nixos/workstation/def │
│ ault.nix │
│ index a47840e..e6129b9 100644 │
│ --- a/modules/nixos/workstation/default.nix │
│ +++ b/modules/nixos/workstation/default.nix │
│ @@ -13,7 +13,6 @@ │
│ ]; │
│ in { │
│ imports = [ │
│ - ./options.nix │
│ ./services │
│ ./programs │
│ ./gaming │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...nixos/workstation/default.nix ───┐
│ diff --git a/modules/nixos/workstation/defau │
│ lt.nix b/modules/nixos/workstation/default.n │
│ ix │
│ index a47840e..e6129b9 100644 │
│ --- a/modules/nixos/workstation/default.nix │
│ +++ b/modules/nixos/workstation/default.nix │
│ @@ -13,7 +13,6 @@ │
│ ]; │
│ in { │
│ imports = [ │
│ - ./options.nix │
│ ./services │
│ ./programs │
│ ./gaming │
└──────────────────────────────────────────────┘
┌─ modules/options/console/default.nix ──────────────────────────────────────┐
│ diff --git a/modules/common/console/options.nix b/modules/options/console/default. │
│ nix │
│ similarity index 100% │
│ rename from modules/common/console/options.nix │
│ rename to modules/options/console/default.nix │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...s/options/console/default.nix ───┐
│ diff --git a/modules/common/console/options. │
│ nix b/modules/options/console/default.nix │
│ similarity index 100% │
│ rename from modules/common/console/options.n │
│ ix │
│ rename to modules/options/console/default.ni │
│ x │
└──────────────────────────────────────────────┘
┌─ modules/options/default.nix ──────────────────────────────────────────────┐
│ diff --git a/modules/options/default.nix b/modules/options/default.nix │
│ new file mode 100644 │
│ index 0000000..85dfa25 │
│ --- /dev/null │
│ +++ b/modules/options/default.nix │
│ @@ -0,0 +1,10 @@ │
│ +{ │
│ + imports = [ │
│ + ./host │
│ + ./console │
│ + ./server │
│ + ./workstation │
│ + ./hardware │
│ + ./virtualization │
│ + ]; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ modules/options/default.nix ────────┐
│ diff --git a/modules/options/default.nix b/m │
│ odules/options/default.nix │
│ new file mode 100644 │
│ index 0000000..85dfa25 │
│ --- /dev/null │
│ +++ b/modules/options/default.nix │
│ @@ -0,0 +1,10 @@ │
│ +{ │
│ + imports = [ │
│ + ./host │
│ + ./console │
│ + ./server │
│ + ./workstation │
│ + ./hardware │
│ + ./virtualization │
│ + ]; │
│ +} │
└──────────────────────────────────────────────┘
┌─ modules/options/hardware/default.nix ─────────────────────────────────────┐
│ diff --git a/modules/options/hardware/default.nix b/modules/options/hardware/defau │
│ lt.nix │
│ new file mode 100644 │
│ index 0000000..1d8e284 │
│ --- /dev/null │
│ +++ b/modules/options/hardware/default.nix │
│ @@ -0,0 +1,235 @@ │
│ +{ │
│ + lib, │
│ + config, │
│ + ... │
│ +}: let │
│ + inherit (builtins) filter length head; │
│ + inherit (lib) mkOption mkEnableOption; │
│ + inherit (lib.types) nullOr enum bool submodule listOf int str float; │
│ + │
│ + cfg = config.ooknet.hardware; │
│ + hasMonitors = length cfg.monitors != 0; │
│ + primaryAttr = filter (m: m.primary or false) cfg.monitors; │
│ + primaryCount = length primaryAttr; │
│ + │
│ + cpuCfg = config.ooknet.hardware.cpu; │
│ + microArchMapping = import ../nixos/hardware/cpu/micro-architectures; │
│ + │
│ + lookupMicroArch = cpu: let │
│ + vendor = cpu.type; │
│ + family = toString cpu.model.family; │
│ + model = toString cpu.model.id; │
│ + in │
│ + microArchMapping.${vendor}.${family}.${model} or null; │
│ +in { │
│ + options.ooknet.hardware = { │
│ + gpu = { │
│ + type = mkOption { │
│ + type = nullOr (enum ["intel" "amd" "nvidia"]); │
│ + default = null; │
│ + }; │
│ + lact.enable = mkEnableOption "Enable amd tuning software lact"; │
│ + benchmark.enable = mkEnableOption "Enable benchmarking tools"; │
│ + }; │
│ + │
│ + features = mkOption { │
│ + type = listOf (enum [ │
│ + "audio" │
│ + "video" │
│ + "bluetooth" │
│ + "backlight" │
│ + "battery" │
│ + "ssd" │
│ + "printing" │
│ + "fingerprint" │
│ + ]); │
│ + default = ["ssd"]; │
│ + }; │
│ + │
│ + # monitor module inspired by misterio77 │
│ + # includes the addition of transform option │
│ + primaryMonitor = mkOption { │
│ + type = nullOr str; │
│ + default = │
│ + if !hasMonitors │
│ + then null │
│ + else (head primaryAttr).name; │
│ + description = "Name of the primary monitor, derived from the monitors list" │
│ ; │
│ + readOnly = true; │
│ + }; │
│ + monitors = mkOption { │
│ + type = listOf (submodule { │
│ + options = { │
│ + name = mkOption { │
│ + type = str; │
│ + example = "DP-1"; │
│ + }; │
│ + primary = mkOption { │
│ + type = bool; │
│ + default = false; │
│ + }; │
│ + width = mkOption { │
│ + type = int; │
│ + example = 1920; │
│ + }; │
│ + height = mkOption { │
│ + type = int; │
│ + example = 1080; │
│ + }; │
│ + refreshRate = mkOption { │
│ + type = int; │
│ + default = 60; │
│ + }; │
│ + x = mkOption { │
│ + type = int; │
│ + default = 0; │
│ + }; │
│ + y = mkOption { │
│ + type = int; │
│ + default = 0; │
│ + }; │
│ + transform = mkOption { │
│ + type = int; │
│ + default = 0; │
│ + }; │
│ + enabled = mkOption { │
│ + type = bool; │
│ + default = true; │
│ + }; │
│ + }; │
│ + }); │
│ + default = []; │
│ + }; │
│ + │
│ + cpu = { │
│ + type = mkOption { │
│ + type = nullOr (enum ["intel" "amd"]); │
│ + default = null; │
│ + }; │
│ + │
│ + model = { │
│ + id = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "CPU model from CPUID"; │
│ + }; │
│ + family = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "CPU family from CPUID"; │
│ + }; │
│ + stepping = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "CPU stepping from CPUID"; │
│ + }; │
│ + name = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + description = "CPU Model Name"; │
│ + example = "Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz"; │
│ + }; │
│ + microArchitecture = mkOption { │
│ + type = str; │
│ + default = lookupMicroArch cpuCfg; │
│ + description = "CPU microarchitecture (e.g, skylake, zen4)"; │
│ + readOnly = true; │
│ + }; │
│ + }; │
│ + │
│ + spec = { │
│ + sockets = mkOption { │
│ + type = nullOr int; │
│ + default = 1; │
│ + description = "Number of CPU sockets"; │
│ + }; │
│ + baseClock = mkOption { │
│ + type = nullOr float; │
│ + default = null; │
│ + description = "Base clock frequency in GHz"; │
│ + example = 3.8; │
│ + }; │
│ + │
│ + boostClock = mkOption { │
│ + type = nullOr float; │
│ + default = null; │
│ + description = "Boost clock frequency in GHz"; │
│ + example = 4.7; │
│ + }; │
│ + │
│ + coresPerSocket = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Number of Physical CPU core per socket"; │
│ + }; │
│ + │
│ + threadsPerCore = mkOption { │
│ + type = int; │
│ + default = 1; │
│ + description = "Number of threads per physical core (hyperthreading)"; │
│ + }; │
│ + │
│ + totalThreads = mkOption { │
│ + type = int; │
│ + default = │
│ + if cpuCfg.spec.sockets == null || cpuCfg.spec.coresPerSocket == null │
│ + then null │
│ + else (cpuCfg.cpu.spec.coresPerSocket * cpuCfg.cpu.spec.sockets) * cpu │
│ Cfg.cpu.spec.threadsPerCore; │
│ + description = "Number of cpu threads the cpu has"; │
│ + readOnly = true; │
│ + }; │
│ + │
│ + tdp = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = '' │
│ + Thermal Design Power in watts. │
│ + Must be manually specified based on CPU model. │
│ + Refer to manufacturer specifications: │
│ + - Intel: https://ark.intel.com │
│ + - AMD: https://www.amd.com/en/products/specifications.html │
│ + ''; │
│ + example = 65; │
│ + }; │
│ + │
│ + cache = { │
│ + l1i = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L1 instruction cache in Bytes"; │
│ + example = 192; │
│ + }; │
│ + l1d = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L1 data cache in Bytes"; │
│ + example = 192; │
│ + }; │
│ + l2 = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L2 cache in Bytes"; │
│ + example = 6; │
│ + }; │
│ + l3 = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L3 cache in Bytes"; │
│ + example = 32; │
│ + }; │
│ + }; │
│ + }; │
│ + │
│ + amd.pstate.enable = mkEnableOption ""; │
│ + }; │
│ + }; │
│ + │
│ + config = { │
│ + assertions = [ │
│ + { │
│ + assertion = hasMonitors -> primaryCount == 1; │
│ + message = "Error: config.ooknet.hardware.monitors. When monitors are conf │
│ igured, exactly one monitor must be designated as primary (found ${toString primar │
│ yCount} primary monitors)"; │
│ + } │
│ + ]; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ .../options/hardware/default.nix ───┐
│ diff --git a/modules/options/hardware/defaul │
│ t.nix b/modules/options/hardware/default.nix │
│ new file mode 100644 │
│ index 0000000..1d8e284 │
│ --- /dev/null │
│ +++ b/modules/options/hardware/default.nix │
│ @@ -0,0 +1,235 @@ │
│ +{ │
│ + lib, │
│ + config, │
│ + ... │
│ +}: let │
│ + inherit (builtins) filter length head; │
│ + inherit (lib) mkOption mkEnableOption; │
│ + inherit (lib.types) nullOr enum bool subm │
│ odule listOf int str float; │
│ + │
│ + cfg = config.ooknet.hardware; │
│ + hasMonitors = length cfg.monitors != 0; │
│ + primaryAttr = filter (m: m.primary or fal │
│ se) cfg.monitors; │
│ + primaryCount = length primaryAttr; │
│ + │
│ + cpuCfg = config.ooknet.hardware.cpu; │
│ + microArchMapping = import ../nixos/hardwa │
│ re/cpu/micro-architectures; │
│ + │
│ + lookupMicroArch = cpu: let │
│ + vendor = cpu.type; │
│ + family = toString cpu.model.family; │
│ + model = toString cpu.model.id; │
│ + in │
│ + microArchMapping.${vendor}.${family}.${ │
│ model} or null; │
│ +in { │
│ + options.ooknet.hardware = { │
│ + gpu = { │
│ + type = mkOption { │
│ + type = nullOr (enum ["intel" "amd" │
│ "nvidia"]); │
│ + default = null; │
│ + }; │
│ + lact.enable = mkEnableOption "Enable │
│ amd tuning software lact"; │
│ + benchmark.enable = mkEnableOption "En │
│ able benchmarking tools"; │
│ + }; │
│ + │
│ + features = mkOption { │
│ + type = listOf (enum [ │
│ + "audio" │
│ + "video" │
│ + "bluetooth" │
│ + "backlight" │
│ + "battery" │
│ + "ssd" │
│ + "printing" │
│ + "fingerprint" │
│ + ]); │
│ + default = ["ssd"]; │
│ + }; │
│ + │
│ + # monitor module inspired by misterio77 │
│ + # includes the addition of transform op │
│ tion │
│ + primaryMonitor = mkOption { │
│ + type = nullOr str; │
│ + default = │
│ + if !hasMonitors │
│ + then null │
│ + else (head primaryAttr).name; │
│ + description = "Name of the primary mo │
│ nitor, derived from the monitors list"; │
│ + readOnly = true; │
│ + }; │
│ + monitors = mkOption { │
│ + type = listOf (submodule { │
│ + options = { │
│ + name = mkOption { │
│ + type = str; │
│ + example = "DP-1"; │
│ + }; │
│ + primary = mkOption { │
│ + type = bool; │
│ + default = false; │
│ + }; │
│ + width = mkOption { │
│ + type = int; │
│ + example = 1920; │
│ + }; │
│ + height = mkOption { │
│ + type = int; │
│ + example = 1080; │
│ + }; │
│ + refreshRate = mkOption { │
│ + type = int; │
│ + default = 60; │
│ + }; │
│ + x = mkOption { │
│ + type = int; │
│ + default = 0; │
│ + }; │
│ + y = mkOption { │
│ + type = int; │
│ + default = 0; │
│ + }; │
│ + transform = mkOption { │
│ + type = int; │
│ + default = 0; │
│ + }; │
│ + enabled = mkOption { │
│ + type = bool; │
│ + default = true; │
│ + }; │
│ + }; │
│ + }); │
│ + default = []; │
│ + }; │
│ + │
│ + cpu = { │
│ + type = mkOption { │
│ + type = nullOr (enum ["intel" "amd"] │
│ ); │
│ + default = null; │
│ + }; │
│ + │
│ + model = { │
│ + id = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "CPU model from CPU │
│ ID"; │
│ + }; │
│ + family = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "CPU family from CP │
│ UID"; │
│ + }; │
│ + stepping = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "CPU stepping from │
│ CPUID"; │
│ + }; │
│ + name = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + description = "CPU Model Name"; │
│ + example = "Intel(R) Core(TM) i3-1 │
│ 0100 CPU @ 3.60GHz"; │
│ + }; │
│ + microArchitecture = mkOption { │
│ + type = str; │
│ + default = lookupMicroArch cpuCfg; │
│ + description = "CPU microarchitect │
│ ure (e.g, skylake, zen4)"; │
│ + readOnly = true; │
│ + }; │
│ + }; │
│ + │
│ + spec = { │
│ + sockets = mkOption { │
│ + type = nullOr int; │
│ + default = 1; │
│ + description = "Number of CPU sock │
│ ets"; │
│ + }; │
│ + baseClock = mkOption { │
│ + type = nullOr float; │
│ + default = null; │
│ + description = "Base clock frequen │
│ cy in GHz"; │
│ + example = 3.8; │
│ + }; │
│ + │
│ + boostClock = mkOption { │
│ + type = nullOr float; │
│ + default = null; │
│ + description = "Boost clock freque │
│ ncy in GHz"; │
│ + example = 4.7; │
│ + }; │
│ + │
│ + coresPerSocket = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Number of Physical │
│ CPU core per socket"; │
│ + }; │
│ + │
│ + threadsPerCore = mkOption { │
│ + type = int; │
│ + default = 1; │
│ + description = "Number of threads │
│ per physical core (hyperthreading)"; │
│ + }; │
│ + │
│ + totalThreads = mkOption { │
│ + type = int; │
│ + default = │
│ + if cpuCfg.spec.sockets == null │
│ || cpuCfg.spec.coresPerSocket == null │
│ + then null │
│ + else (cpuCfg.cpu.spec.coresPerS │
│ ocket * cpuCfg.cpu.spec.sockets) * cpuCfg.cp │
│ u.spec.threadsPerCore; │
│ + description = "Number of cpu thre │
│ ads the cpu has"; │
│ + readOnly = true; │
│ + }; │
│ + │
│ + tdp = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = '' │
│ + Thermal Design Power in watts. │
│ + Must be manually specified base │
│ d on CPU model. │
│ + Refer to manufacturer specifica │
│ tions: │
│ + - Intel: https://ark.intel.com │
│ + - AMD: https://www.amd.com/en/p │
│ roducts/specifications.html │
│ + ''; │
│ + example = 65; │
│ + }; │
│ + │
│ + cache = { │
│ + l1i = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L1 instr │
│ uction cache in Bytes"; │
│ + example = 192; │
│ + }; │
│ + l1d = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L1 data │
│ cache in Bytes"; │
│ + example = 192; │
│ + }; │
│ + l2 = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L2 cache │
│ in Bytes"; │
│ + example = 6; │
│ + }; │
│ + l3 = mkOption { │
│ + type = nullOr int; │
│ + default = null; │
│ + description = "Size of L3 cache │
│ in Bytes"; │
│ + example = 32; │
│ + }; │
│ + }; │
│ + }; │
│ + │
│ + amd.pstate.enable = mkEnableOption "" │
│ ; │
│ + }; │
│ + }; │
│ + │
│ + config = { │
│ + assertions = [ │
│ + { │
│ + assertion = hasMonitors -> primaryC │
│ ount == 1; │
│ + message = "Error: config.ooknet.har │
│ dware.monitors. When monitors are configured │
│ , exactly one monitor must be designated as │
│ primary (found ${toString primaryCount} prim │
│ ary monitors)"; │
│ + } │
│ + ]; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘
┌─ modules/options/host/default.nix ─────────────────────────────────────────┐
│ diff --git a/modules/common/base/options.nix b/modules/options/host/default.nix │
│ similarity index 100% │
│ rename from modules/common/base/options.nix │
│ rename to modules/options/host/default.nix │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ modules/options/host/default.nix ───┐
│ diff --git a/modules/common/base/options.nix │
│ b/modules/options/host/default.nix │
│ similarity index 100% │
│ rename from modules/common/base/options.nix │
│ rename to modules/options/host/default.nix │
└──────────────────────────────────────────────┘
┌─ modules/options/server/default.nix ───────────────────────────────────────┐
│ diff --git a/modules/nixos/server/options.nix b/modules/options/server/default.nix │
│ similarity index 97% │
│ rename from modules/nixos/server/options.nix │
│ rename to modules/options/server/default.nix │
│ index d0daf19..b1a1395 100644 │
│ --- a/modules/nixos/server/options.nix │
│ +++ b/modules/options/server/default.nix │
│ @@ -14,7 +14,7 @@ in { │
│ description = "The server profile the host will use as a base"; │
│ }; │
│ services = mkOption { │
│ - type = listOf (enum ["media-server" "website" "forgejo" "ookflix" "minecraf │
│ t" "minecraft-proxy" "copyparty" "monitoring" "authelia"]); │
│ + type = listOf (enum ["media-server" "website" "forgejo" "ookflix" "minecraf │
│ t" "minecraft-proxy" "copyparty" "monitoring" "authelia" "authentik"]); │
│ default = []; │
│ description = "List of services the server will host"; │
│ }; │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...es/options/server/default.nix ───┐
│ diff --git a/modules/nixos/server/options.ni │
│ x b/modules/options/server/default.nix │
│ similarity index 97% │
│ rename from modules/nixos/server/options.nix │
│ rename to modules/options/server/default.nix │
│ index d0daf19..b1a1395 100644 │
│ --- a/modules/nixos/server/options.nix │
│ +++ b/modules/options/server/default.nix │
│ @@ -14,7 +14,7 @@ in { │
│ description = "The server profile the │
│ host will use as a base"; │
│ }; │
│ services = mkOption { │
│ - type = listOf (enum ["media-server" " │
│ website" "forgejo" "ookflix" "minecraft" "mi │
│ necraft-proxy" "copyparty" "monitoring" "aut │
│ helia"]); │
│ + type = listOf (enum ["media-server" " │
│ website" "forgejo" "ookflix" "minecraft" "mi │
│ necraft-proxy" "copyparty" "monitoring" "aut │
│ helia" "authentik"]); │
│ default = []; │
│ description = "List of services the s │
│ erver will host"; │
│ }; │
└──────────────────────────────────────────────┘
┌─ modules/options/virtualization/default.nix ───────────────────────────────┐
│ diff --git a/modules/nixos/virtualization/options.nix b/modules/options/virtualiza │
│ tion/default.nix │
│ similarity index 100% │
│ rename from modules/nixos/virtualization/options.nix │
│ rename to modules/options/virtualization/default.nix │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...ns/virtualization/default.nix ───┐
│ diff --git a/modules/nixos/virtualization/op │
│ tions.nix b/modules/options/virtualization/d │
│ efault.nix │
│ similarity index 100% │
│ rename from modules/nixos/virtualization/opt │
│ ions.nix │
│ rename to modules/options/virtualization/def │
│ ault.nix │
└──────────────────────────────────────────────┘
┌─ modules/options/workstation/default.nix ──────────────────────────────────┐
│ diff --git a/modules/nixos/workstation/options.nix b/modules/options/workstation/d │
│ efault.nix │
│ similarity index 100% │
│ rename from modules/nixos/workstation/options.nix │
│ rename to modules/options/workstation/default.nix │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...tions/workstation/default.nix ───┐
│ diff --git a/modules/nixos/workstation/optio │
│ ns.nix b/modules/options/workstation/default │
│ .nix │
│ similarity index 100% │
│ rename from modules/nixos/workstation/option │
│ s.nix │
│ rename to modules/options/workstation/defaul │
│ t.nix │
└──────────────────────────────────────────────┘
┌─ outputs/lib/builders.nix ─────────────────────────────────────────────────┐
│ diff --git a/outputs/lib/builders.nix b/outputs/lib/builders.nix │
│ index 72fe3af..c751b52 100644 │
│ --- a/outputs/lib/builders.nix │
│ +++ b/outputs/lib/builders.nix │
│ @@ -15,6 +15,7 @@ │
│ nixosModules = "${self}/modules/nixos"; │
│ commonModules = "${self}/modules/common"; │
│ hostModules = "${self}/hosts"; │
│ + options = "${self}/modules/options"; │
│ │
│ nixos-hm = inputs.home-manager.nixosModules.home-manager; │
│ darwin-hm = inputs.home-manager.darwinModules.home-manager; │
│ @@ -35,12 +36,13 @@ │
│ darwin = "${self}/modules/darwin"; │
│ │
│ nixosMinimal = [ │
│ - (common.base + "/options.nix") │
│ + options │
│ (common.base + "/admin.nix") │
│ (nixos.base + "/openssh.nix") │
│ ]; │
│ │
│ core = [ │
│ + options │
│ common.base │
│ common.console │
│ ]; │
│ @@ -62,9 +64,6 @@ │
│ darwin │
│ darwin-hm │
│ darwinSecrets │
│ - │
│ - # TODO: this is jank please make better... actually this whole thing is jan │
│ k │
│ - (nixos.workstation + "/options.nix") │
│ ]; │
│ │
│ isoModules = [ │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/lib/builders.nix ───────────┐
│ diff --git a/outputs/lib/builders.nix b/outp │
│ uts/lib/builders.nix │
│ index 72fe3af..c751b52 100644 │
│ --- a/outputs/lib/builders.nix │
│ +++ b/outputs/lib/builders.nix │
│ @@ -15,6 +15,7 @@ │
│ nixosModules = "${self}/modules/nixos"; │
│ commonModules = "${self}/modules/common"; │
│ hostModules = "${self}/hosts"; │
│ + options = "${self}/modules/options"; │
│ │
│ nixos-hm = inputs.home-manager.nixosModul │
│ es.home-manager; │
│ darwin-hm = inputs.home-manager.darwinMod │
│ ules.home-manager; │
│ @@ -35,12 +36,13 @@ │
│ darwin = "${self}/modules/darwin"; │
│ │
│ nixosMinimal = [ │
│ - (common.base + "/options.nix") │
│ + options │
│ (common.base + "/admin.nix") │
│ (nixos.base + "/openssh.nix") │
│ ]; │
│ │
│ core = [ │
│ + options │
│ common.base │
│ common.console │
│ ]; │
│ @@ -62,9 +64,6 @@ │
│ darwin │
│ darwin-hm │
│ darwinSecrets │
│ - │
│ - # TODO: this is jank please make bett │
│ er... actually this whole thing is jank │
│ - (nixos.workstation + "/options.nix") │
│ ]; │
│ │
│ isoModules = [ │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET