Skip to content

feat(niri): stage opt-in ezwallpaper Noctalia dual-screen hourly rotation (#91) - #92

Merged
pkking merged 7 commits into
masterfrom
agent/opt-in-niri-noctalia-ezwallpaper-rotation-91
Oct 31, 2026
Merged

pkking merged 7 commits into
masterfrom
agent/opt-in-niri-noctalia-ezwallpaper-rotation-91

Conversation

@pkking

@pkking pkking commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Parent: #84. Child: #91.

Purpose

Deliver source-controlled, opt-in only chezmoi wiring from pkking/ezwallpaper to existing niri 26.04 + Noctalia v5.2.1 dual-output desktop; not deploy, activate or change anyone's live session.

Fixed source evidence

pkking/ezwallpaper tested source e3d2bc3c4fb50802090ab45d2dd7179b96f26dd9 (master at assessment): src/rotation_cli.rs strict schema v1, separate per-output pools, no adjacent duplicate content IDs, rotate next --rotation-backend noctalia --apply --json; src/backend/noctalia.rs v5 named output path readback with fail-closed no swaybg fallback. Existing docs/examples/ezwallpaper-rotation.{service,timer} supply upstream starting point. Current dotfiles Noctalia TOML has wallpaper.automation.enabled=false.

Changes

  • New dotfiles/dot_config/ezwallpaper/rotation.json.tmpl with actual connector names DP-1 and HDMI-A-1, separate real-file landscape/portrait pools, no external symlink following.
  • New systemd user ezwallpaper-rotation.service/.timer based on upstream, OnCalendar=hourly, fixed local executable path and missing-binary/directory preflight. NOT pre-enabled, not installed or started by this PR; no automatic network download, daemon management, sudo, Noctalia config mutation, or old-timer shutdown.
  • docs/niri-noctalia.md manual read-only inventory, scoped chezmoi diff, explicit approval/deployment sequence and rollback. Distinguishes existing sunset-lake one-image theme from the two genuinely distinct candidates per output required to rotate hourly. Differentiates offline rotation from future daily fetch/replenishment.
  • Independent stdlib-only scripts/test-ezwallpaper-rotation-contract.py and targeted CI workflow to check rendered profile shape, service command and no auto-enable. No live compositor or user desktop contacted.

Safety and limitations

dotfiles#84 notes legacy wallpaper-daily/hourly units, beautify-scene-follow, wallpaper hooks and possibly active/dirty local state. Their current runtime cannot be determined from GitHub. DO NOT stop anything until read-only audit and manual consent; do not run chezmoi apply or systemctl --user enable in CI. Preserve existing agent-status. Old PR #73 is separate and remains untouched.

No proof of actual deployment, desktop pixels, physical 4K/portrait scaling, hotplug, PAM, SDDM/Plymouth or daily automatic refill. Parent #84 remains OPEN. Architecture diagram of ezwallpaper: unchanged (only external opt-in consumer configuration).

Acceptance

Require independent PR exact-head CI green, inspect actual patch and evaluate manual deployment boundaries before merge. Do not auto-close parent #84. Source and test change only, no live action.

@pkking
pkking merged commit 0952986 into master Oct 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant