inputs: { config, pkgs, lib, ... }: let packages = import ../packages.nix { inherit pkgs lib; exclude_packages = config.hyperdeepnix.exclude_packages; }; themes = import ../themes.nix; # Handle theme selection - either predefined or generated selectedTheme = if (config.hyperdeepnix.theme == "generated_light" || config.hyperdeepnix.theme == "generated_dark") then null else themes.${ if config.hyperdeepnix.theme == "catppuccin" then "catppuccin-macchiato" else config.hyperdeepnix.theme }; # Generate color scheme from wallpaper for generated themes generatedColorScheme = if (config.hyperdeepnix.theme == "generated_light" || config.hyperdeepnix.theme == "generated_dark") then (inputs.nix-colors.lib.contrib { inherit pkgs; }).colorSchemeFromPicture { path = config.hyperdeepnix.theme_overrides.wallpaper_path; variant = if config.hyperdeepnix.theme == "generated_light" then "light" else "dark"; } else null; in { assertions = [ { assertion = !(config.hyperdeepnix.theme == "generated_light" || config.hyperdeepnix.theme == "generated_dark") || (config.hyperdeepnix.theme_overrides.wallpaper_path != null); message = "hyperdeepnix.theme_overrides.wallpaper_path must be set for generated_light or generated_dark themes."; } ]; imports = [ (import ./hyprland.nix inputs) (import ./hyprlock.nix inputs) (import ./hyprpaper.nix) (import ./hypridle.nix) (import ./kitty.nix inputs) (import ./btop.nix) (import ./direnv.nix) (import ./git.nix) (import ./mako.nix) (import ./waybar.nix inputs) (import ./wofi.nix) (import ./zoxide.nix) (import ./pyprland.nix) (import ./bat.nix) (import ./wob.nix inputs) (import ./jolt.nix inputs) ]; home.file = { ".local/share/hyperdeepnix/bin" = { source = ../../bin; recursive = true; }; ".local/share/hyperdeepnix/cheatsheets" = { source = ../../config/cheatsheets; recursive = true; }; ".local/share/hyperdeepnix/sounds" = { source = ../../sounds; recursive = true; }; }; home.packages = packages.homePackages; colorScheme = if (config.hyperdeepnix.theme == "generated_light" || config.hyperdeepnix.theme == "generated_dark") then generatedColorScheme else inputs.nix-colors.colorSchemes.${selectedTheme.base16-theme}; gtk = { enable = true; theme = { name = if config.hyperdeepnix.theme == "generated_light" then "Adwaita" else "Adwaita:dark"; package = pkgs.gnome-themes-extra; }; }; }