All checks were successful
Check / eval (push) Successful in 2m57s
Extract nomarchy-pull/rebuild/home to pkgs/nomarchy-lifecycle; install via system + home. Home profile wins on PATH so home-manager switch installs the fixed pull (skip git when no upstream) without waiting for a system rebuild that needed a working pull first. V0: flake check --no-build green.
92 lines
3.8 KiB
Nix
92 lines
3.8 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, lib, 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
|
|
./timezone.nix # keep the Waybar clock in step with auto-timezone changes
|
|
./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
|
|
./viewers.nix # zathura (Stylix-themed) + imv — PDF/image viewing
|
|
./mime.nix # default applications (mimeapps.list), degrades with the suite
|
|
./recording.nix # nomarchy-record: screen recording behind Capture + the bar ⏺
|
|
./battery-notify.nix # low-battery toasts at the bar's 25/10% thresholds
|
|
./satty.nix # satty screenshot annotation tool, themed
|
|
];
|
|
|
|
# Clipboard history (wl-paste watcher); browsed via the SUPER+CTRL+V
|
|
# menu module.
|
|
services.cliphist.enable = true;
|
|
|
|
# Automount removable media (USB drives) and provide safe-removal notifications.
|
|
services.udiskie.enable = true;
|
|
|
|
# Microphone noise cancellation (rnnoise) and audio EQ.
|
|
services.easyeffects.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;
|
|
|
|
# Standard XDG user directories (Downloads, Documents, Pictures, Music,
|
|
# Videos, Desktop, Public, Templates): written to user-dirs.dirs so file
|
|
# pickers/browsers resolve them, and created on activation so a fresh
|
|
# install lands with them present (not just on first app use). mkDefault
|
|
# so a downstream home.nix can flip it off or remap individual paths.
|
|
xdg.userDirs = {
|
|
enable = lib.mkDefault true;
|
|
createDirectories = lib.mkDefault true;
|
|
};
|
|
|
|
home.stateVersion = lib.mkDefault "26.05";
|
|
|
|
home.packages = with pkgs; [
|
|
awww # wallpaper daemon with animated transitions (the swww fork)
|
|
libnotify
|
|
hyprpicker
|
|
# Lifecycle CLIs (pull/rebuild/home). HM profile usually precedes
|
|
# /run/current-system on PATH, so nomarchy-home can replace a broken
|
|
# system-generation nomarchy-pull without a full sys rebuild.
|
|
nomarchy-lifecycle
|
|
];
|
|
|
|
home.sessionVariables = {
|
|
TERMINAL = config.nomarchy.terminal;
|
|
NIXOS_OZONE_WL = "1"; # Electron/Chromium native Wayland
|
|
# Same gate as modules/nixos: CLI nix-shell/shell/run for unfree pkgs
|
|
# (system nixpkgs.config alone does not cover those entry points).
|
|
NIXPKGS_ALLOW_UNFREE = "1";
|
|
|
|
# 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";
|
|
};
|
|
|
|
# Classic nix-shell / nix-env read this; pairs with NIXPKGS_ALLOW_UNFREE
|
|
# above so "allow unfree" is the default desktop experience, not a
|
|
# per-command export the user has to remember.
|
|
xdg.configFile."nixpkgs/config.nix".text = ''
|
|
{ allowUnfree = true; }
|
|
'';
|
|
|
|
programs.home-manager.enable = true;
|
|
}
|