Skip to content

feat(wallpapers): rework gallery and transition engine - #1083

Merged
amnweb merged 3 commits into
mainfrom
feat/wallpapers-rework
Aug 28, 2026
Merged

feat(wallpapers): rework gallery and transition engine#1083
amnweb merged 3 commits into
mainfrom
feat/wallpapers-rework

Conversation

@amnweb

@amnweb amnweb commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Split the wallpapers service into engine/gallery/images/manager and replace the old paged gallery with four layout types (default, magnified, strip, slide) selected through gallery.type.

The transition engine now lays wallpapers out the way Windows does, so the last frame of the animation lands on the same pixels Windows settles on instead of jumping when the overlay closes:

Add gallery.accent_color, deprecate the removed gallery options, and document the engine's dependency on Windows animation effects together with the known flash on very large images.

  • lay out the transcoded copy Windows uses, not the file on disk
  • anchor fill and span at a third of the vertical overflow, not a half
  • span wide landscape images across all monitors in fit and fill (autospan)
  • truncate integer division toward zero the way Windows does

amnweb added 3 commits August 28, 2026 03:59
Split the wallpapers service into engine/gallery/images/manager and replace
the old paged gallery with four layout types (default, magnified, strip,
slide) selected through gallery.type.

The transition engine now lays wallpapers out the way Windows does, so the
last frame of the animation lands on the same pixels Windows settles on
instead of jumping when the overlay closes:

Add gallery.accent_color, deprecate the removed gallery options, and document
the engine's dependency on Windows animation effects together with the known
flash on very large images.

- lay out the transcoded copy Windows uses, not the file on disk
- anchor fill and span at a third of the vertical overflow, not a half
- span wide landscape images across all monitors in fit and fill (autospan)
- truncate integer division toward zero the way Windows does
- Track queued image loaders so they can be reordered or cancelled when the selection moves.
- Queue and decode the cards nearest the selection first.
- Drop queued loads that are no longer visible to save CPU and bandwidth.
- Cap the image decoding pool at two threads to avoid starving the UI.
- Repaint only when a decoded card is actually on screen.
@amnweb
amnweb merged commit e68b170 into main Aug 28, 2026
6 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