Bumps nixpkgs nixos-25.11 -> nixos-26.05, home-manager release-25.11 -> release-26.05, and pins stylix to release-26.05 (was unpinned master). `nix flake check --no-build` and `nomarchy-eval-matrix` are both clean and the full system builds (nixos-system-nomarchy-26.05). Breaking-change fixes required by 26.05: - stylix-compat: drop the `programs.neovim.initLua` shim — HM 26.05 declares it natively, so the shim was a duplicate-option error. - swww was renamed to awww (binaries gone, no `init` subcommand). Dropped swww entirely and unified the wallpaper path on swaybg (the daemon this distro actually runs): nomarchy-theme-bg-next now delegates to nomarchy-theme-bg-set, swaybg added to the theme-engine script deps, swww removed from package lists. - default config: add a placeholder `fileSystems."/"` — 26.05's systemd stage-1 forces fsType during plain toplevel eval (the VM build overrides it). - services.resolved: extraConfig removed, domains/fallbackDns renamed -> migrated to settings.Resolve.* (RFC42). - systemd.sleep.extraConfig removed -> settings.Sleep.HibernateDelaySec (RFC42). - X11 'virtio' video driver removed -> dropped from vm-guest.nix and nomarchy-live.nix (modesetting drives virtio-gpu). - nomarchy-eval-matrix: define /persist + /home in the impermanence scenarios (26.05 maps fsType over every neededForBoot filesystem). - README/MIGRATION/installer: stale swww references -> swaybg. KNOWN BLOCKER (why this is on a branch, not main): In a headless QEMU VM, Hyprland boots and inits GL (virgl) fine but is OOM-killed after ~19s (3.4 GB peak). Likely a no-display-consumer artifact of headless rendering (unthrottled frames), but a real Hyprland-26.05 memory regression can't be ruled out without a real display. Verify on real hardware (a fresh ISO install) before merging to main; if the desktop is stable there, the OOM was the headless VM and this can merge. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
56 lines
1.7 KiB
Bash
Executable File
56 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# Cycles through the background images available for the current theme,
|
|
# then applies the pick via nomarchy-theme-bg-set (see the note at the end).
|
|
|
|
STATE_DIR="$HOME/.config/nomarchy"
|
|
STATE_FILE="$STATE_DIR/state.json"
|
|
mkdir -p "$STATE_DIR"
|
|
[[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE"
|
|
|
|
THEME_NAME=$(jq -r '.theme // "summer-night"' "$STATE_FILE")
|
|
|
|
# Resolve themes directory (Built-in from Nix store via Home Manager, or user extra)
|
|
if [ -d "$HOME/.config/nomarchy/themes/$THEME_NAME" ]; then
|
|
THEMES_DIR="$HOME/.config/nomarchy/themes"
|
|
else
|
|
THEMES_DIR="$HOME/.local/share/nomarchy/themes"
|
|
fi
|
|
|
|
BG_DIR="$THEMES_DIR/$THEME_NAME/backgrounds"
|
|
|
|
if [ ! -d "$BG_DIR" ]; then
|
|
notify-send "No background directory found for theme $THEME_NAME"
|
|
exit 1
|
|
fi
|
|
|
|
mapfile -t BACKGROUNDS < <(ls "$BG_DIR" | sort)
|
|
TOTAL=${#BACKGROUNDS[@]}
|
|
|
|
if (( TOTAL == 0 )); then
|
|
notify-send "No backgrounds found in $BG_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
CURRENT_BG=$(jq -r '.wallpaper' "$STATE_FILE")
|
|
INDEX=-1
|
|
for i in "${!BACKGROUNDS[@]}"; do
|
|
if [[ "$BG_DIR/${BACKGROUNDS[$i]}" == "$CURRENT_BG" ]]; then
|
|
INDEX=$i
|
|
break
|
|
fi
|
|
done
|
|
|
|
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
|
NEW_BG="$BG_DIR/${BACKGROUNDS[$NEXT_INDEX]}"
|
|
|
|
# Apply through the shared setter: it persists state.json, updates the
|
|
# ~/.config/nomarchy/current/background symlink, and restarts swaybg — the
|
|
# single wallpaper daemon this distro actually runs. Previously this script
|
|
# drove swww directly, but it gated on `swww-daemon` (never running, since
|
|
# swaybg owns the wallpaper), so it spawned a second daemon competing with
|
|
# swaybg. swww was also renamed to awww and dropped its `init` subcommand in
|
|
# nixpkgs 26.05, so unifying on swaybg fixes both at once.
|
|
exec nomarchy-theme-bg-set "$NEW_BG"
|