Add opt-in nomarchy.updates (modules/home/updates.nix): a nomarchy-updates checker on a systemd user timer (interval, default daily) that surfaces a Waybar indicator + a notification when updates are available, without ever changing anything (you still run sys-update / flatpak update). It counts: - flake inputs behind upstream — only the flake's DIRECT inputs (root.inputs: nixpkgs, the Nomarchy input, home-manager, stylix…), not the transitive closure, via `git ls-remote` vs the locked rev. Offline → skipped, never a false alarm. - Flatpak updates, when the flatpak CLI is present (.flatpak, gated on services.flatpak being on) — Bernardo's suggestion. Waybar custom/updates self-gates (hidden until the timer finds something; accent " N", signal 9 for instant refresh), in the generated bar and both summer whole-swaps. The notification fires only when the count grows, so a daily timer doesn't nag. Click → the upgrade flow in a terminal (sys-update / flatpak update, each confirmed). nomarchy-updates ships always on PATH and self-gates so the static whole-swap bars can exec it even when the feature is off. Verified: flake check clean; home generation builds; the jq direct-input filter + status self-gate exercised against the real flake.lock; script passes bash -n. Pending an on-machine check (ls-remote/notify/timer need a live session). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
55 lines
2.0 KiB
Nix
55 lines
2.0 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
|
|
./rofi.nix # launcher theming + the nomarchy-menu dispatcher
|
|
./swaync.nix # notification daemon, themed from the same JSON
|
|
./idle.nix # hyprlock + hypridle, themed from the same JSON
|
|
./yazi.nix # flagship TUI file manager, themed + plugins
|
|
./osd.nix # swayosd volume/brightness OSD, themed
|
|
./nightlight.nix # scheduled blue-light filter (hyprsunset), opt-in
|
|
./updates.nix # passive update-awareness indicator + notification, opt-in
|
|
./shell.nix # zsh + starship + bat/eza/zoxide, themed
|
|
./keys.nix # gpg-agent (fronts SSH) + pinentry-qt
|
|
./fastfetch.nix # system info with the themed Nomarchy logo
|
|
];
|
|
|
|
# Clipboard history (wl-paste watcher); browsed via the SUPER+CTRL+V
|
|
# menu module.
|
|
services.cliphist.enable = true;
|
|
|
|
# Wifi from the bar: nm-applet lives in waybar's tray (SNI flag via
|
|
# preferStatusNotifierItems — without it there is no tray icon).
|
|
services.network-manager-applet.enable = true;
|
|
xsession.preferStatusNotifierItems = true;
|
|
|
|
home.stateVersion = "26.05";
|
|
|
|
home.packages = with pkgs; [
|
|
awww # wallpaper daemon with animated transitions (the swww fork)
|
|
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;
|
|
}
|