refactor: consolidate app configurations and utility scripts

- Move 32+ app-specific scripts from features/apps/scripts/ to features/scripts/utils/ for centralized packaging.
- Create individual Nix modules for orphaned app configurations (btop, kitty, tmux, etc.) in features/apps/ using xdg.configFile.
- Fix broken paths in core/system/makima.nix and features/apps/vscode.nix.
- Update VSCode configuration to use the modern 'profiles.default.userSettings' API, resolving deprecation warnings.
- Merge duplicate 'nomarchy-launch-walker' scripts into a single robust utility.
- Remove stale root 'config/' directory.
- Update README.md and docs/creating-themes.md to reflect the new architecture and keybindings.
- Ensure all modules are correctly imported and verified via nix flake check.
This commit is contained in:
Bernardo Magri
2026-04-12 22:32:44 +01:00
parent a7dbca80a6
commit 5f0834f30c
59 changed files with 382 additions and 78 deletions

View File

@@ -5,9 +5,16 @@ let
themePath = ../palettes + "/${config.nomarchy.theme}";
themeAppsPath = themePath + "/apps";
nordAppsPath = ../../features/desktop/hyprland/themes/nord;
hyprlandThemePath = ../../features/desktop/hyprland/themes + "/${config.nomarchy.theme}";
# Check if theme has apps/hyprland.conf
# Check if theme has hyprland.conf in palette apps/ or feature themes/
hasHyprlandConf = builtins.pathExists (themeAppsPath + "/hyprland.conf");
hasHyprlandFeatureConf = builtins.pathExists (hyprlandThemePath + "/hyprland.conf");
hyprlandConfSource =
if hasHyprlandConf then themeAppsPath + "/hyprland.conf"
else if hasHyprlandFeatureConf then hyprlandThemePath + "/hyprland.conf"
else nordAppsPath + "/hyprland.conf";
# Get palette for dynamic CSS generation
palette = nomarchyLib.getPalette config.nomarchy.theme;
@@ -26,18 +33,16 @@ in
@define-color accent #${palette.base0D};
'';
# Ensure theme-specific hyprland config exists, fallback to nord if not
# Now checking in apps/ subdirectory
# Ensure theme-specific hyprland config exists
# Lookup priority: palette apps/ > feature themes/ > nord fallback
xdg.configFile."nomarchy/current/theme/apps/hyprland.conf" = lib.mkIf (!hasHyprlandConf) {
source = nordAppsPath + "/hyprland.conf";
source = if hasHyprlandFeatureConf then hyprlandThemePath + "/hyprland.conf"
else 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";
source = hyprlandConfSource;
};
xdg.configFile."nomarchy/current/theme.name".text = config.nomarchy.theme;