refactor: major architectural restructure for theme-centric organization
Theme System: - Move all theme app configs to apps/ subdirectory (20 themes) - Add theme-loader.nix for dynamic theme config deployment - Simplify stylix.nix to focus on base theming only Override System: - Add overrides.nix for file-based config overrides - Add behavior-configs.nix for non-visual configuration - Split hypr/nomarchy.conf into behavior vs visual sections Module Improvements: - Add lib.mkDefault to all customizable settings - Add modules/lib/ with shared utilities and state schema - Update all home and system modules for downstream overridability Installer: - New minimal TTY installer (installer/install.sh) - Golden path: BTRFS + LUKS2 (disko-golden.nix) - New installer-iso.nix for TTY-only installation - Keep graphical installer as installerIsoGraphical option Cleanup: - Remove obsolete install.sh, disko-ext4.nix, install-nomarchy.sh - Update live-iso.nix references - Add .claude/ to .gitignore for local IDE settings Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,14 +1,31 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
themePath = ../../assets/themes + "/${config.nomarchy.theme}";
|
||||
themeAppsPath = themePath + "/apps";
|
||||
nordAppsPath = ../../assets/themes/nord/apps;
|
||||
|
||||
# Check if theme has apps/hyprland.conf
|
||||
hasHyprlandConf = builtins.pathExists (themeAppsPath + "/hyprland.conf");
|
||||
in
|
||||
{
|
||||
xdg.configFile."nomarchy/current/theme" = {
|
||||
source = ../../assets/themes/${config.nomarchy.theme};
|
||||
source = themePath;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
|
||||
# Ensure theme-specific hyprland config exists, fallback to nord if not
|
||||
xdg.configFile."nomarchy/current/theme/hyprland.conf" = lib.mkIf (! builtins.pathExists (../../assets/themes + "/${config.nomarchy.theme}/hyprland.conf")) {
|
||||
source = ../../assets/themes/nord/hyprland.conf;
|
||||
# Now checking in apps/ subdirectory
|
||||
xdg.configFile."nomarchy/current/theme/apps/hyprland.conf" = lib.mkIf (!hasHyprlandConf) {
|
||||
source = nordAppsPath + "/hyprland.conf";
|
||||
};
|
||||
|
||||
# Legacy compatibility: symlink apps/hyprland.conf to root for scripts expecting old path
|
||||
xdg.configFile."nomarchy/current/theme/hyprland.conf" = {
|
||||
source =
|
||||
if hasHyprlandConf
|
||||
then themeAppsPath + "/hyprland.conf"
|
||||
else nordAppsPath + "/hyprland.conf";
|
||||
};
|
||||
|
||||
xdg.configFile."nomarchy/current/theme.name".text = config.nomarchy.theme;
|
||||
|
||||
Reference in New Issue
Block a user