From 473b290258e3ac21c2063e79e0efd4749817dde8 Mon Sep 17 00:00:00 2001 From: soraefir Date: Sun, 21 Jun 2026 22:51:54 +0200 Subject: [PATCH] Reduce build size via config restriction --- modules/home/cli/fastfetch/default.nix | 2 +- modules/home/cli/kitty/default.nix | 4 ++-- modules/home/cli/other/default.nix | 6 +++--- modules/home/gui/apps/mpv/default.nix | 4 +--- modules/nixos/system/fonts/default.nix | 4 ++-- modules/nixos/system/hw/base/default.nix | 6 +++--- modules/nixos/system/hw/fs/default.nix | 9 ++++++--- modules/nixos/system/hw/graphics/default.nix | 6 +++--- .../nixos/system/security/polkit/default.nix | 18 ++++++++++-------- modules/nixos/tools/default.nix | 4 ++-- modules/shared/syscfg/make.nix | 3 ++- 11 files changed, 35 insertions(+), 31 deletions(-) diff --git a/modules/home/cli/fastfetch/default.nix b/modules/home/cli/fastfetch/default.nix index 3231a46..ec87fba 100755 --- a/modules/home/cli/fastfetch/default.nix +++ b/modules/home/cli/fastfetch/default.nix @@ -28,7 +28,7 @@ let logoColor1 = p.base07; logoColor2 = p.base07; # ───────────────────────────────────────────────────────────────────────── -in { +in lib.mkIf config.syscfg.make.gui { home.packages = with pkgs; [ fastfetch ]; xdg.configFile."neofetch/config.conf".source = ./config.conf; xdg.configFile."fastfetch/logo.txt".source = ./logo.txt; diff --git a/modules/home/cli/kitty/default.nix b/modules/home/cli/kitty/default.nix index d76e3cf..82589f1 100755 --- a/modules/home/cli/kitty/default.nix +++ b/modules/home/cli/kitty/default.nix @@ -1,5 +1,5 @@ -{ config, ... }: { - programs.kitty = { +{ config, lib, ... }: { + programs.kitty = lib.mkIf config.syscfg.make.gui { enable = true; settings = { foreground = "#${config.colorScheme.palette.base07}"; diff --git a/modules/home/cli/other/default.nix b/modules/home/cli/other/default.nix index a8ea7f8..888a153 100644 --- a/modules/home/cli/other/default.nix +++ b/modules/home/cli/other/default.nix @@ -1,16 +1,16 @@ -{ pkgs, ... }: { +{ config, lib, pkgs, ... }: { home.packages = with pkgs; [ ripgrep unzip socat - appimage-run - cbonsai pipes-rs cmatrix #cava sl + ] ++ lib.optionals (config.syscfg.make.gui || config.syscfg.make.develop) [ + pkgs.appimage-run ]; } diff --git a/modules/home/gui/apps/mpv/default.nix b/modules/home/gui/apps/mpv/default.nix index 38e9d2e..9ac65b3 100755 --- a/modules/home/gui/apps/mpv/default.nix +++ b/modules/home/gui/apps/mpv/default.nix @@ -6,13 +6,11 @@ in{ config = lib.mkIf (config.syscfg.make.gui) { programs.mpv = { enable = true; - scripts = with pkgs.mpvScripts; [ mpris modernz ]; + scripts = with pkgs.mpvScripts; [ mpris ]; config = { hwdec ="auto"; profile ="high-quality"; ytdl-format = "bestvideo+bestaudio"; - osc ="no"; - }; bindings = diff --git a/modules/nixos/system/fonts/default.nix b/modules/nixos/system/fonts/default.nix index 9e1283f..d6141c1 100644 --- a/modules/nixos/system/fonts/default.nix +++ b/modules/nixos/system/fonts/default.nix @@ -1,6 +1,6 @@ -{ pkgs, ... }: { +{ config, lib, pkgs, ... }: { - fonts = { + fonts = lib.mkIf (config.syscfg.make.gui || config.syscfg.make.serverExtras) { enableDefaultPackages = false; fontDir.enable = true; diff --git a/modules/nixos/system/hw/base/default.nix b/modules/nixos/system/hw/base/default.nix index 148e082..8e83e51 100644 --- a/modules/nixos/system/hw/base/default.nix +++ b/modules/nixos/system/hw/base/default.nix @@ -1,5 +1,5 @@ -{ lib, ... }: { - services.fwupd.enable = true; +{ config, lib, ... }: { + services.fwupd.enable = lib.mkDefault (config.syscfg.make.gui || config.syscfg.make.power); hardware.enableAllFirmware = false; - services.power-profiles-daemon.enable = lib.mkDefault true; + services.power-profiles-daemon.enable = lib.mkDefault config.syscfg.make.gui; } diff --git a/modules/nixos/system/hw/fs/default.nix b/modules/nixos/system/hw/fs/default.nix index de7db5f..7cbac6b 100644 --- a/modules/nixos/system/hw/fs/default.nix +++ b/modules/nixos/system/hw/fs/default.nix @@ -1,6 +1,9 @@ -{ pkgs, ... }: { +{ config, lib, pkgs, ... }: +let + hasNfsFileSystems = lib.any (fs: fs.fsType == "nfs" || fs.fsType == "nfs4") (lib.attrValues config.fileSystems); +in { services.fstrim.enable = true; # Improves SSD life - services.gvfs.enable = true; # User Mounted FS + services.gvfs.enable = config.syscfg.make.gui; # User Mounted FS - environment.systemPackages = with pkgs; [ nfs-utils ]; + environment.systemPackages = lib.optionals hasNfsFileSystems [ pkgs.nfs-utils ]; } diff --git a/modules/nixos/system/hw/graphics/default.nix b/modules/nixos/system/hw/graphics/default.nix index 2cfc1d0..1cd3c55 100644 --- a/modules/nixos/system/hw/graphics/default.nix +++ b/modules/nixos/system/hw/graphics/default.nix @@ -1,4 +1,4 @@ -{ ... }: { - hardware.graphics.enable = true; - hardware.graphics.enable32Bit = true; +{ config, ... }: { + hardware.graphics.enable = config.syscfg.make.gui || config.syscfg.make.serverExtras || config.syscfg.make.game; + hardware.graphics.enable32Bit = config.syscfg.make.game; } diff --git a/modules/nixos/system/security/polkit/default.nix b/modules/nixos/system/security/polkit/default.nix index 041da63..ee71124 100644 --- a/modules/nixos/system/security/polkit/default.nix +++ b/modules/nixos/system/security/polkit/default.nix @@ -1,10 +1,12 @@ -{ pkgs, ... }: { - security.polkit.enable = true; - security.pam.services.hyprlock = { #swaylock - text = '' - auth include login - ''; - }; +{ config, lib, pkgs, ... }: { + config = lib.mkIf config.syscfg.make.gui { + security.polkit.enable = true; + security.pam.services.hyprlock = { #swaylock + text = '' + auth include login + ''; + }; - environment.systemPackages = with pkgs; [ polkit_gnome ]; + environment.systemPackages = [ pkgs.polkit_gnome ]; + }; } diff --git a/modules/nixos/tools/default.nix b/modules/nixos/tools/default.nix index 6d0a58e..25fb325 100644 --- a/modules/nixos/tools/default.nix +++ b/modules/nixos/tools/default.nix @@ -1,5 +1,5 @@ -{ pkgs, ... }: { +{ config, lib, pkgs, ... }: { imports = [ ./debug ./develop ./telegraf ]; - environment.systemPackages = with pkgs; [ pkgs.engrampa ]; + environment.systemPackages = lib.optionals config.syscfg.make.gui [ pkgs.engrampa ]; } diff --git a/modules/shared/syscfg/make.nix b/modules/shared/syscfg/make.nix index a122ebd..86dd23f 100644 --- a/modules/shared/syscfg/make.nix +++ b/modules/shared/syscfg/make.nix @@ -2,8 +2,9 @@ with lib; { cli = mkOption { type = types.bool; default = true; }; gui = mkOption { type = types.bool; default = false; }; + serverExtras = mkOption { type = types.bool; default = false; }; virt = mkOption { type = types.bool; default = false; }; power = mkOption { type = types.bool; default = false; }; game = mkOption { type = types.bool; default = false; }; develop = mkOption { type = types.bool; default = false; }; -} \ No newline at end of file +}