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>
147 lines
5.9 KiB
Nix
147 lines
5.9 KiB
Nix
# Your user environment. The Nomarchy desktop (Hyprland, Waybar,
|
|
# Ghostty, theming engine, Stylix) comes from homeModules.nomarchy;
|
|
# tune it via the nomarchy.* options, add your own packages and
|
|
# programs below.
|
|
{ pkgs, ... }:
|
|
|
|
{
|
|
# ── Overrides (the desktop is on by default; tweak or opt out) ──────
|
|
# nomarchy.terminal = "kitty"; # swap the default terminal
|
|
# nomarchy.waybar.enable = false; # bring your own bar
|
|
# nomarchy.stylix.enable = false; # opt out of GTK/Qt theming
|
|
# nomarchy.keyboard.layout = "de"; # session keyboard (set the matching
|
|
# # services.xserver.xkb.layout in
|
|
# # system.nix too; the console + LUKS
|
|
# # prompt follow it automatically)
|
|
|
|
# ── Opt-in features — uncomment and tweak to enable ─────────────────
|
|
# nomarchy.nightlight = { # scheduled blue-light filter (hyprsunset)
|
|
# enable = true;
|
|
# temperature = 4000; # night warmth in K — lower is warmer
|
|
# sunset = "20:00";
|
|
# sunrise = "07:00";
|
|
# };
|
|
#
|
|
# nomarchy.updates = { # passive update-awareness indicator + notification
|
|
# enable = true;
|
|
# interval = "daily"; # how often to check (systemd OnCalendar)
|
|
# flatpak = true; # also count Flatpak updates when flatpak is on
|
|
# };
|
|
#
|
|
# nomarchy.monitors = [ # declarative per-output layout, hotplug-applied
|
|
# { name = "eDP-1"; position = "0x0"; }
|
|
# { name = "HDMI-A-1"; position = "auto-right"; }
|
|
# ]; # names from `hyprctl devices`
|
|
#
|
|
# nomarchy.keyboard.devices = { # a specific keyboard's own layout
|
|
# "keychron-keychron-k2" = { layout = "de"; };
|
|
# };
|
|
#
|
|
# nomarchy.keyboard.layouts = [ "de" "fr" ]; # rofi-prompt for a layout when a
|
|
# # new keyboard connects + remember it
|
|
|
|
# ── Application suite ───────────────────────────────────────────────
|
|
# A starter complete-workstation set, installed for your user — yours to
|
|
# curate. Delete a line to slim the machine; uncomment a suggestion (or
|
|
# add your own) to extend it. The desktop itself — terminal, editor
|
|
# keybinds, theming — comes from the modules; these are the heavier
|
|
# standalone apps the distro doesn't impose by default.
|
|
#
|
|
# Apps that need system setup beyond a package (Steam's 32-bit stack,
|
|
# a daemon, group membership, a kernel module) are NOT here — they're
|
|
# opt-in service toggles in system.nix instead (nomarchy.services.* —
|
|
# steam, libvirt, obs, docker, gamemode, kdeconnect, adb, wireshark,
|
|
# ollama, printing).
|
|
home.packages = with pkgs; [
|
|
libreoffice-fresh # office suite (documents, sheets, slides)
|
|
vscode # code editor (unfree; allowUnfree is on)
|
|
gimp # raster image editor
|
|
inkscape # vector graphics
|
|
mpv # media player
|
|
amberol # music player (local library; streaming → spotify below)
|
|
|
|
# ── More apps — uncomment to add ─────────────────────────────────
|
|
# Web browsers
|
|
# firefox
|
|
# chromium
|
|
# ungoogled-chromium
|
|
# brave # (unfree)
|
|
# google-chrome # (unfree)
|
|
|
|
# Communication
|
|
# signal-desktop
|
|
# telegram-desktop
|
|
# element-desktop # Matrix
|
|
# vesktop # Discord (themeable client)
|
|
# slack # (unfree)
|
|
# zoom-us # (unfree)
|
|
# teams-for-linux # community client (no official Linux app)
|
|
# thunderbird # email
|
|
|
|
# Office & documents
|
|
# onlyoffice-desktopeditors # stronger MS-Office fidelity
|
|
# kdePackages.okular # PDF viewer
|
|
# xournalpp # PDF annotation
|
|
# pdfarranger
|
|
# calibre # ebook library
|
|
# texliveFull # full LaTeX toolchain — multi-GB (texliveMedium is lighter)
|
|
|
|
# Notes / research
|
|
# logseq
|
|
# obsidian # (unfree)
|
|
# joplin-desktop
|
|
# anki-bin # flashcards
|
|
# zotero # reference manager
|
|
|
|
# Code & data
|
|
# zed-editor
|
|
# lazygit
|
|
# dbeaver-bin # database GUI
|
|
# bruno # API client
|
|
# distrobox # containerized dev shells
|
|
|
|
# Graphics & design
|
|
# krita # digital painting
|
|
# blender # 3D
|
|
# darktable # RAW photo
|
|
|
|
# Audio / video
|
|
# audacity
|
|
# shotcut # video editor
|
|
# kdePackages.kdenlive # video editor (pulls in KDE libs)
|
|
# handbrake # transcoder
|
|
|
|
# Media
|
|
# vlc
|
|
# spotify # (unfree)
|
|
# newsflash # RSS reader
|
|
|
|
# Gaming (Steam + GameMode are service toggles in system.nix)
|
|
# lutris
|
|
# heroic # Epic/GOG launcher
|
|
# bottles # Wine prefixes
|
|
# prismlauncher # Minecraft
|
|
# protonup-qt # Proton-GE manager
|
|
# mangohud # in-game overlay
|
|
|
|
# Files, sync & torrents
|
|
# nextcloud-client
|
|
# localsend # AirDrop-like transfer
|
|
# qbittorrent
|
|
|
|
# Security
|
|
# keepassxc
|
|
# bitwarden-desktop
|
|
|
|
# System
|
|
# gnome-disk-utility
|
|
# gparted
|
|
# baobab # disk usage
|
|
# wireguard-tools # WireGuard CLI (NetworkManager imports .conf tunnels natively)
|
|
|
|
# Local AI (Ollama is a service toggle in system.nix)
|
|
# lmstudio # (unfree; large closure)
|
|
# alpaca # GTK Ollama UI
|
|
];
|
|
}
|