From daea646972aa03ce8e58bff2edaed16bf7fbf9db Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 20 Sep 2026 04:15:53 +0530 Subject: chore: added better assertions for options for submodules Now setting options for submodules requires the submodule to be enabled first. --- modules/desktop/niri/assertions.nix | 14 ++++++++++++++ modules/desktop/niri/default.nix | 5 ++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 modules/desktop/niri/assertions.nix (limited to 'modules/desktop') diff --git a/modules/desktop/niri/assertions.nix b/modules/desktop/niri/assertions.nix new file mode 100644 index 0000000..99e9d29 --- /dev/null +++ b/modules/desktop/niri/assertions.nix @@ -0,0 +1,14 @@ +# Validates niri hardware GPU options require desktop to be enabled +{ config, ... }: +{ + assertions = [ + { + assertion = !config.desktop.hardware.gpu.nvidia.enable || config.desktop.enable; + message = "desktop.hardware.gpu.nvidia.enable requires desktop.enable."; + } + { + assertion = !config.desktop.hardware.gpu.amd.enable || config.desktop.enable; + message = "desktop.hardware.gpu.amd.enable requires desktop.enable."; + } + ]; +} diff --git a/modules/desktop/niri/default.nix b/modules/desktop/niri/default.nix index 9b0b160..a5de8d8 100644 --- a/modules/desktop/niri/default.nix +++ b/modules/desktop/niri/default.nix @@ -9,7 +9,10 @@ let base16Colors = import ../../colors/base16 { inherit config lib pkgs; }; in { - imports = [ ./keybindings.nix ]; + imports = [ + ./keybindings.nix + ./assertions.nix + ]; options.desktop = { niri.package = lib.mkOption { -- cgit v1.2.3