Commit graph

4 commits

Author SHA1 Message Date
Jis G Jacob
1dffdd05f2 Atoll: freeze Spotify Canvas wallpaper when audio is paused
SIGSTOP WallpaperAgent and the aerial extensions while MusicManager
reports paused so the lockscreen Canvas holds its current frame, and
SIGCONT on resume, hide(), and willTerminate so the agent is never
left suspended.

Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
2026-05-14 08:27:31 +05:30
Jis G Jacob
a8d7dff322 Atoll: deliver Spotify Canvas as lockscreen wallpaper without album-art flash
Two fixes for the right-click-artwork-to-wallpaper flow on Spotify
tracks that have a Canvas video.

1. Force AllSpacesAndDisplays.Type and SystemDefault.Type to
   "individual" while the artwork is active (was: keep existing
   value via nil-coalescing). On macOS Tahoe the user-level
   wallpaper rotation honors the parent Type field, so leaving it
   as "folder" caused WallpaperAgent to advance to the next image
   in a rotating wallpaper pack instead of honoring the patched
   single-image / aerial choice. The original Type is preserved in
   the plist backup at temp/atoll_wallpaper_backup.plist and is
   restored byte-for-byte on dismiss, so rotation resumes normally
   after the artwork is dismissed. The forced override is also
   applied to nested Displays / Spaces blocks but only when Type
   was already present, to avoid mutating block shapes that
   intentionally omit it.

2. When the Canvas is expected at right-click time
   (effectiveVideoURL != nil), defer applyArtworkToPlist and
   restartWallpaperAgent entirely. Previously the flow applied raw
   album art as the static wallpaper, restarted the agent, then
   prepared and applied the aerial in a second restart, causing a
   visible flash of the raw album cover. The deferred path stores
   the blurred fallback URL in pendingFallbackStaticURL and only
   touches the plist once: with the aerial on success, or with the
   blurred album cover via applyDeferredStaticFallback if the
   aerial asset prep or aerial-plist patch fails. The in-app
   videoWindow continues to mask the desktop wallpaper during prep
   on the unlocked screen; the lock screen simply transitions from
   the existing wallpaper straight to the Canvas video.

The earlier ?? nil-coalescing in patchWallpaperEntries also covered
per-Display, per-Space.Default, and per-Space.Displays Type fields,
so those are forced too where present.

Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
2026-05-12 16:10:17 +05:30
delli
c8a6c2b1fa new version 2026-05-08 19:50:26 +02:00
Jis G Jacob
5bd84270aa Atoll: fullscreen album artwork as lockscreen wallpaper
Right-click on the album art in the lock screen music panel to set it
as the desktop wallpaper. Right-click again or click anywhere on the
background to restore the original wallpaper. Wallpaper also restores
automatically on track change or screen unlock.

Uses direct plist manipulation of the wallpaper config to avoid leaving
traces in the wallpaper picker. Album art PNG is pre-cached in the
background on track change for instant application.

Adds video artwork URL fetching from iTunes catalog for Apple Music
tracks (musicVideo entity search).

Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
2026-04-29 18:39:17 +02:00