Conversation
Extends the wallpaper title/author overlay from a fixed bottom-left position to a user-selected quadrant (top-left, top-right, bottom-left, bottom-right), exposed as a Settings row below the existing visibility toggle. An invalid or unset value safely falls back to bottom-left, matching the previous fixed behavior. The contrast-sampling rect (corner_luminance_frac call in update_attribution()) now tracks the active quadrant too -- it previously always sampled the bottom-left corner of the wallpaper regardless of where the label actually sat, which would have picked light/dark text against the wrong part of the image for any non-bottom-left placement. Needs the wallpaper-attribution-position schema key (singularityos-lab/singularity-desktop#262). This ports and extends a working left/right-only version the operator had running locally (never previously upstreamed) to the full 4-quadrant case the current design calls for. contrast-sample rect to track the active quadrant, added the Settings picker row. Assisted-by: Claude Code:claude-sonnet-5 AI-Scope: Ported and extended prior left/right attribution-position vala logic to full 4-quadrant support, plus fixed the contrast-sample rect to track the active quadrant.
Move top-positioned wallpaper attribution below the panel using the panel height tracked by AppSystem, while retaining the existing edge gutter. Make the position row insensitive whenever wallpaper attribution is disabled. Assisted-by: Codex:gpt-5.6-sol AI-Scope: Fixed top attribution placement to clear the panel and bound the position row sensitivity to the attribution setting.
Persist bounded wallpaper history and favorites, and expose navigation, rotation, and favorite actions in the panel. Assisted-by: Codex:gpt-5 Assisted-by: Codex:gpt-5.6-sol AI-Scope: Rebased and integrated Phase 1 wallpaper favorites, history, panel controls, tests, and the generic rotation-state path.
Add grayscale, blur, oil-paint, and quote effects with a bounded cache, settings UI, schema fixture, and round-trip coverage. Assisted-by: Claude Code:claude-sonnet-5 Assisted-by: Codex:gpt-5.6-sol AI-Scope: Rebased Phase 2, resolved current wallpaper overlaps, added the settings contract fixture and round-trip test, and fixed test linkage.
Add minimum dimensions, aspect preference, favorites weighting, and an immediate-next action with deterministic tests. Assisted-by: Claude Code:claude-sonnet-5 Assisted-by: Codex:gpt-5.6-sol AI-Scope: Rebased Phase 3, retained generic Singularity paths, resolved rotator overlaps, completed schema coverage, and fixed focused test dependencies.
perlowja
force-pushed
the
feat/wallpaper-smart-rotation-phase3-pr
branch
from
September 29, 2026 22:15
015b9c9 to
137443b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on #32. This branch is based on the current Phase 1 PR head because favorites weighting uses
WallpaperFavorites; it must be rebased ontomainafter #32 merges.The shipped GSettings contract is in singularityos-lab/singularity-desktop#266; this PR must not merge before that schema change ships.
Adds minimum image dimensions, display-aspect preference, threefold favorites weighting, and an immediate Next Wallpaper action. All paths use the existing generic Singularity conventions:
~/.config/singularity/wallpaper-rotationandsingularity/wallpaper-collections.Verification:
wallpaper-rotator-test: 19/19 passed, including deterministic dimension, fallback, aspect, exact favorites-weighting, and immediate-next casesAI assistance: disclosed