Skip to content

v1.1.0 — Flow Metrics, Thermal Awareness & Design Spells

Choose a tag to compare

@harshabala harshabala released this 11 Jul 18:12

What's New in Lively 1.1

📊 Flow Metrics (LV-1 · LV-2 · LV-3)

First-run activation tracking
Lively now quietly marks the moment your first wallpaper plays. A friendly confirmation toast appears — "Playing on this Space. Switch Spaces to set another." — so you know it worked.

Days-active counter
A subtle footer in the Displays view counts the number of days you've had Lively actively rendering. The counter rolls up with a satisfying spring animation every time you open the panel.

Privacy: All metrics are stored only on this device using system defaults. Nothing is uploaded, transmitted, or shared — ever.

Thermal throttling (performance honesty)
Lively now monitors your Mac's thermal state. If it detects your machine running hot (serious or critical), it automatically pauses all wallpaper playback to protect battery life and reduce heat. An orange banner appears so you always know why playback stopped. When things cool down, Lively resumes automatically.


✨ Design Spells

  • Breathing dots loader — The "detecting displays" spinner is replaced by three staggered breathing dots that pulse in cascade. Purely decorative; hidden from accessibility tree.
  • Aurora drop-zone border — Drag a video over a drop zone and a rotating angular gradient halo lights up the border, inviting the drop. Each drop zone owns its own independent animation state.
  • Number roll-up — The days-active counter animates from 0 to its real value on every open, using SwiftUI's native .numericText content transition.
  • PillTabBar glow bloom — The active tab now casts a soft teal shadow bloom with a springy bounce on switch.

All animations respect Reduce Motion — they are completely disabled when the system accessibility setting is on.


🔧 Code Quality Improvements (post code-review)

  • Drop zones in appearance mode now have independent animation state (no more cross-zone reset glitch)
  • Task cancellation in toast/error timers is now semantically correct (do/catch instead of try?/isCancelled)
  • AppMetrics is @MainActor isolated (was @unchecked Sendable without a lock)
  • DateFormatter allocated once with en_US_POSIX locale — day deduplication is now locale-stable on all devices
  • Roll-up animation uses Task { @MainActor in } (auto-cancelled on view disappear, replacing GCD asyncAfter)
  • Deprecated .foregroundColor replaced with .foregroundStyle throughout
  • Metrics footer hidden on first launch (no awkward "Active 0 days.")

Installation

Homebrew (recommended)

Lively is distributed via a custom tap — not the main Homebrew Cask repository. Use the full tap name:

# First time
brew tap harshabala/lively https://github.com/harshabala/Lively
brew install --cask lively

# Update existing install
brew upgrade --cask harshabala/lively/lively

Manual

Download Lively-1.1.0-macOS.zip below, unzip, and drag Lively.app to your Applications folder.

Requires: macOS 14 Sonoma or later · Apple Silicon or Intel