Files
Nomarchy/modules/home/default.nix
Bernardo Magri cfd5e4bb65 feat(core): migrate system state to unified declarative JSON
- Consolidate all configuration toggles (suspend, idle, waybar, etc.) into ~/.config/home-manager/state.json
- Introduce nomarchy.toggles and nomarchy.hyprland options in Nix
- Inject toggle states into all bin/ scripts via environment variables
- Update toggle scripts to mutate JSON and trigger background rebuilds
- Add a migration script to transition legacy flag files to the new format
2026-04-04 10:11:09 +01:00

63 lines
1.5 KiB
Nix

{ config, pkgs, inputs, lib, ... }:
let
palettes = import ../../themes/nomarchy-palettes.nix;
userPackagesFile = "${config.home.homeDirectory}/.config/home-manager/user-packages.json";
userPackages = if builtins.pathExists userPackagesFile then
let
pkgNames = builtins.fromJSON (builtins.readFile userPackagesFile);
# Filter to only packages that exist in pkgs to prevent build failures
validPkgs = builtins.filter (name: builtins.hasAttr name pkgs) pkgNames;
in builtins.map (name: pkgs.${name}) validPkgs
else [];
in
{
imports = [
inputs.nix-colors.homeManagerModules.default
inputs.walker.homeManagerModules.default
./options.nix
./state.nix
./theme-files.nix
./fonts.nix
./alacritty.nix
./nightlight.nix
./idle.nix
./stylix.nix
./hyprland.nix
./waybar.nix
./walker.nix
./theme-switcher.nix
./scripts.nix
./configs.nix
./swayosd.nix
];
colorScheme = palettes.${config.nomarchy.theme} or palettes.nord;
home.packages = with pkgs; [
firefox
xfce.thunar
imv
mpv
neovim
wl-clipboard
grim
slurp
brightnessctl
playerctl
pamixer
mise
jq
xmlstarlet
nerd-fonts.jetbrains-mono
nerd-fonts.roboto-mono
nerd-fonts.fira-code
nerd-fonts.ubuntu-mono
] ++ userPackages;
home.shellAliases = {
sys-update = "sudo nixos-rebuild switch --flake /etc/nixos#default";
env-update = "home-manager switch --flake /etc/nixos#default --impure";
};
}