- Reorganize directory structure into core/, features/, and themes/ - Colocate application Nix logic, configs, scripts, and theme overrides - Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts - Update flake.nix and shared library paths to match the new structure - Document the new Feature-Centric architecture in README.md
43 lines
1.4 KiB
Nix
43 lines
1.4 KiB
Nix
{ config, lib, ... }:
|
|
|
|
let
|
|
nomarchyLib = import ../lib { inherit lib; };
|
|
assetsPath = ../../assets/themes;
|
|
|
|
# Read unified state from ~/.config/nomarchy/state.json
|
|
togglesState = nomarchyLib.readHomeState config.home.homeDirectory;
|
|
in
|
|
{
|
|
config = {
|
|
nomarchy = {
|
|
toggles = {
|
|
suspend = togglesState.suspend or true;
|
|
screensaver = togglesState.screensaver or true;
|
|
idle = togglesState.idle or true;
|
|
nightlight = togglesState.nightlight or false;
|
|
waybar = togglesState.waybar or true;
|
|
skipVsCodeTheme = togglesState.skipVsCodeTheme or false;
|
|
};
|
|
nightlightTemperature = togglesState.nightlightTemperature or 4000;
|
|
theme = togglesState.theme or "nord";
|
|
wallpaper = togglesState.wallpaper or "";
|
|
hyprland = {
|
|
gaps_in = togglesState.hyprland.gaps_in or 5;
|
|
gaps_out = togglesState.hyprland.gaps_out or 10;
|
|
border_size = togglesState.hyprland.border_size or 2;
|
|
};
|
|
fonts.monospace = togglesState.font or "JetBrainsMono Nerd Font";
|
|
|
|
# Derived properties from the theme directory
|
|
isLightMode = nomarchyLib.isThemeLightMode {
|
|
themeName = togglesState.theme or "nord";
|
|
inherit assetsPath;
|
|
};
|
|
iconsTheme = nomarchyLib.getIconsTheme {
|
|
themeName = togglesState.theme or "nord";
|
|
inherit assetsPath;
|
|
};
|
|
};
|
|
};
|
|
}
|