diff options
| author | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-24 03:42:25 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-24 03:42:25 +0530 |
| commit | 30f8fea050f3242f0e6a2072779e706b5c8ceaf1 (patch) | |
| tree | a02b517bd112d4e91fab15166a4866bff252c2d3 /modules/system | |
| parent | ad96214c9ab94bce925000a6059e3c68e2ff6a22 (diff) | |
| download | home-manager-config-30f8fea050f3242f0e6a2072779e706b5c8ceaf1.tar.gz home-manager-config-30f8fea050f3242f0e6a2072779e706b5c8ceaf1.zip | |
refactor(modules): introduce cfg local bindings and submodule option types
Diffstat (limited to 'modules/system')
| -rw-r--r-- | modules/system/brightnessctl/default.nix | 7 | ||||
| -rw-r--r-- | modules/system/btop/default.nix | 37 | ||||
| -rw-r--r-- | modules/system/deep-clean/default.nix | 6 | ||||
| -rw-r--r-- | modules/system/nix-update/default.nix | 6 | ||||
| -rw-r--r-- | modules/system/systemctl-tui/default.nix | 13 |
5 files changed, 49 insertions, 20 deletions
diff --git a/modules/system/brightnessctl/default.nix b/modules/system/brightnessctl/default.nix index af5746a..34e9a24 100644 --- a/modules/system/brightnessctl/default.nix +++ b/modules/system/brightnessctl/default.nix @@ -5,6 +5,9 @@ pkgs, ... }: +let + cfg = config.system.brightnessctl; +in { options.system.brightnessctl = { enable = lib.mkEnableOption "Enables brightnessctl."; @@ -16,7 +19,7 @@ }; }; - config = lib.mkIf config.system.brightnessctl.enable { - home.packages = [ config.system.brightnessctl.package ]; + config = lib.mkIf cfg.enable { + home.packages = [ cfg.package ]; }; } diff --git a/modules/system/btop/default.nix b/modules/system/btop/default.nix index 4f84036..453bafb 100644 --- a/modules/system/btop/default.nix +++ b/modules/system/btop/default.nix @@ -1,39 +1,58 @@ # Cross-platform graphical process and system monitor { config, - pkgs, lib, + pkgs, ... }: +let + cfg = config.system.btop; +in { imports = [ ./assertions.nix ]; options.system.btop = { enable = lib.mkEnableOption "Enables btop."; - nvidia.enable = lib.mkEnableOption "Build btop with NVIDIA GPU monitoring support (CUDA)."; - amd.enable = lib.mkEnableOption "Build btop with AMD GPU monitoring support (ROCm)."; + nvidia = lib.mkOption { + type = lib.types.submodule { + options = { + enable = lib.mkEnableOption "Build btop with NVIDIA GPU monitoring support (CUDA)."; + }; + }; + default = { }; + description = "NVIDIA GPU monitoring configuration."; + }; + amd = lib.mkOption { + type = lib.types.submodule { + options = { + enable = lib.mkEnableOption "Build btop with AMD GPU monitoring support (ROCm)."; + }; + }; + default = { }; + description = "AMD GPU monitoring configuration."; + }; package = lib.mkOption { type = lib.types.package; readOnly = true; default = pkgs.btop.override { - cudaSupport = config.system.btop.nvidia.enable; - rocmSupport = config.system.btop.amd.enable; + cudaSupport = cfg.nvidia.enable; + rocmSupport = cfg.amd.enable; }; description = "The btop package to use."; }; }; config = lib.mkMerge [ - (lib.mkIf config.system.btop.enable { + (lib.mkIf cfg.enable { programs.btop = { enable = true; - package = config.system.btop.package; + package = cfg.package; }; }) - (lib.mkIf (config.system.btop.enable && config.terminal.kitty.enable) { + (lib.mkIf (cfg.enable && config.terminal.kitty.enable) { xdg.desktopEntries."btop" = { name = "btop++"; - exec = "${lib.getExe config.terminal.kitty.package} --class btop -e ${lib.getExe config.system.btop.package}"; + exec = "${lib.getExe config.terminal.kitty.package} --class btop -e ${lib.getExe cfg.package}"; icon = "btop"; categories = [ "System" diff --git a/modules/system/deep-clean/default.nix b/modules/system/deep-clean/default.nix index 99b4617..1942837 100644 --- a/modules/system/deep-clean/default.nix +++ b/modules/system/deep-clean/default.nix @@ -6,6 +6,8 @@ ... }: let + cfg = config.system.deep-clean; + deepCleanScript = pkgs.writeShellApplication { name = "deep-clean"; runtimeInputs = [ config.terminal.bash.package ]; @@ -24,7 +26,7 @@ in }; }; - config = lib.mkIf config.system.deep-clean.enable { - home.packages = [ config.system.deep-clean.package ]; + config = lib.mkIf cfg.enable { + home.packages = [ cfg.package ]; }; } diff --git a/modules/system/nix-update/default.nix b/modules/system/nix-update/default.nix index 9f93a4e..fb9151d 100644 --- a/modules/system/nix-update/default.nix +++ b/modules/system/nix-update/default.nix @@ -6,6 +6,8 @@ ... }: let + cfg = config.system.nix-update; + nixUpdateScript = pkgs.writeShellApplication { name = "nix-update"; runtimeInputs = [ @@ -48,7 +50,7 @@ in }; }; - config = lib.mkIf config.system.nix-update.enable { - home.packages = [ config.system.nix-update.package ]; + config = lib.mkIf cfg.enable { + home.packages = [ cfg.package ]; }; } diff --git a/modules/system/systemctl-tui/default.nix b/modules/system/systemctl-tui/default.nix index 17b7ec4..66b23a6 100644 --- a/modules/system/systemctl-tui/default.nix +++ b/modules/system/systemctl-tui/default.nix @@ -1,10 +1,13 @@ # TUI for systemctl { config, - pkgs, lib, + pkgs, ... }: +let + cfg = config.system.systemctl-tui; +in { options.system.systemctl-tui = { enable = lib.mkEnableOption "Enables systemctl-tui."; @@ -17,17 +20,17 @@ }; config = lib.mkMerge [ - (lib.mkIf config.system.systemctl-tui.enable { + (lib.mkIf cfg.enable { home.file.".local/share/icons/hicolor/scalable/apps/systemd.svg" = { source = ../../../assets/icons/apps/systemd.svg; }; - home.packages = [ config.system.systemctl-tui.package ]; + home.packages = [ cfg.package ]; }) - (lib.mkIf (config.system.systemctl-tui.enable && config.terminal.kitty.enable) { + (lib.mkIf (cfg.enable && config.terminal.kitty.enable) { xdg.desktopEntries."systemctl-tui" = { name = "systemctl-tui"; - exec = "${lib.getExe config.terminal.kitty.package} --class systemctl-tui -e ${lib.getExe config.system.systemctl-tui.package}"; + exec = "${lib.getExe config.terminal.kitty.package} --class systemctl-tui -e ${lib.getExe cfg.package}"; icon = "systemd"; categories = [ "System" ]; comment = "TUI for systemctl"; |
