Full replacement of the previous iteration, rebuilt around three ideas:
- Pure evaluation: theme-state.json lives inside the flake and is read
via the nomarchy.stateFile option — no --impure, ever.
- All-Home-Manager theming: `nomarchy-theme-sync apply` writes the JSON
and runs `home-manager switch`; every theme change is one atomic,
rollbackable generation. Wallpaper (swww) is the sole runtime piece.
- Flat, downstream-first layout: modules/{nixos,home} with one
options.nix each, exported as nixosModules/homeModules + overlay +
flake template; system (nixos-rebuild) and desktop (home-manager
switch) rebuild paths are fully split.
Ships 21 themes imported from the previous iteration (palettes,
wallpapers, btop themes, six whole-swap Waybar identities), Stylix for
the GTK/Qt/cursor long tail, a live ISO target with offline theme
switching, and docs/TESTING.md with the QEMU verification workflow.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
# Nomarchy — Home Manager entry point.
|
|
# Consume this via homeModules.nomarchy (flake.nix), which also pulls in
|
|
# the stylix home module that stylix.nix configures.
|
|
{ config, pkgs, ... }:
|
|
|
|
{
|
|
imports = [
|
|
./options.nix # the nomarchy.* option surface
|
|
./theme.nix # ingests theme-state.json, owns the live-sync hooks
|
|
./stylix.nix # GTK/Qt/cursor/fonts from the same JSON
|
|
./hyprland.nix
|
|
./waybar.nix
|
|
./ghostty.nix
|
|
./btop.nix
|
|
];
|
|
|
|
home.stateVersion = "26.05";
|
|
|
|
home.packages = with pkgs; [
|
|
swww # wallpaper daemon with animated transitions
|
|
fuzzel # launcher / dmenu (used by the theme picker bind)
|
|
libnotify
|
|
];
|
|
|
|
home.sessionVariables = {
|
|
TERMINAL = config.nomarchy.terminal;
|
|
NIXOS_OZONE_WL = "1"; # Electron/Chromium native Wayland
|
|
|
|
# Where the Nomarchy flake (and therefore theme-state.json) lives on
|
|
# disk. nomarchy-theme-sync writes its state here; rebuilds read from
|
|
# here. Clone/symlink your flake to this path.
|
|
NOMARCHY_PATH = "$HOME/.nomarchy";
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
}
|