Skip to content

Releases: harshabala/Lively

Lively v1.2.0

Choose a tag to compare

@harshabala harshabala released this 14 Jul 04:38

What's New in Lively 1.2.0

Curated Wallpaper Library

Browse, download, and apply high-quality looping wallpapers offline from the new Library gallery.

Settings redesign

  • System Settings-style sidebar: General, Playback, Screen Setup, Logs, About
  • Fixed-size menu-bar popover with distinct nav selection languages
  • Screen Setup shows a live multi-display map with wallpaper thumbnails

Battery & power

  • Pause on Battery with a threshold slider (25–100%)
  • Hard floor: always pauses at 25% or below on battery
  • Status banner shows current percentage and why playback paused

Appearance

  • Light, Dark, or System theme for the menu-bar UI

Updates

  • Optional GitHub Releases check
  • In-app banner when a newer version is available (View opens the release page)
  • Does not auto-download or auto-install

Playback controls

Quality, loop behavior, hardware decoding, and max resolution preferences

Install

Homebrew

git -C "$(brew --repository harshabala/lively)" pull 2>/dev/null || brew tap harshabala/lively https://github.com/harshabala/Lively
brew upgrade --cask lively || brew install --cask lively

Manual
Download Lively-1.2.0-macOS.zip below, unzip, and drag Lively.app to Applications.

Requires: macOS 14 Sonoma or later

Full notes: CHANGELOG.md

Lively v1.1.1

Choose a tag to compare

@github-actions github-actions released this 11 Jul 18:58

What's New in Lively 1.1.1

This patch release fixes the wallpaper deletion and switching issues, making wallpaper management robust and intuitive on macOS popovers.

🔧 UI & Wallpaper Management Fixes

  • Instant Wallpaper Removal — macOS popovers and menu bar panels fail to display SwiftUI's standard .confirmationDialog sheets, which was causing the red trash button to silently fail. We removed the confirmation dialog so clicking the trash icon now removes the wallpaper immediately and reliably.
  • Individual Video Clear Buttons — Added a small red x button (xmark.circle.fill) in the top-right corner of each video thumbnail card. This allows you to clear/delete individual video files instantly (useful for clearing just the Light or Dark mode video in Appearance mode).
  • Interactive 'Click to Change' Indicator — Added a persistent overlay indicator at the bottom of the video thumbnail showing "Click to change", making it clear and intuitive that clicking the thumbnail will trigger the file picker.
  • Swift 6 Strict Concurrency & Build Fixes — Fixed compilation issues under strict concurrency mode on macOS 15+ Xcode environments by properly isolating the file picker to the @MainActor and refactoring nested complex views to avoid compiler type-checking timeouts.

Installation

Homebrew (recommended)

Lively is distributed via a custom tap. Sync the latest cask update and install/upgrade:

# 1. Sync tap commits
git -C "$(brew --repository harshabala/lively)" pull

# 2. Install (or upgrade) the cask
brew install --cask lively  # if not installed via Homebrew before
# or
brew upgrade --cask lively   # if already managed by Homebrew

Manual

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

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

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

v1.0.0 — First public release

Choose a tag to compare

@harshabala harshabala released this 06 Jul 18:36

Lively v1.0.0

First public release. Lively is now open source under the MIT License.

Native macOS menu-bar utility for per-Space, per-display video wallpapers — hardware-accelerated, fully offline, zero third-party dependencies.

Highlights

  • Different looping videos on each macOS Space and each display
  • H.264 and HEVC hardware decode (up to 4K)
  • Codec validation before assignment (no more silent black screens)
  • Light / Dark appearance mode with separate videos
  • Security-scoped bookmarks — assignments survive reboots
  • Launch at Login via SMAppService
  • Drag-and-drop or file picker for .mp4, .mov, .m4v
  • Global pause/resume, per-display scale/mute/volume
  • Accessible UI with Reduce Motion and VoiceOver support

Install

Requirements: macOS 14.0 (Sonoma) or later, Xcode or Swift 6.2+ Command Line Tools

git clone https://github.com/harshabala/Lively.git
cd Lively
./package.sh
open /private/tmp/LivelyOutput/Lively.app

Or run directly: swift run LivelyApp

Known limitations

  • H.264 / HEVC only (re-encode VP9/AV1 with ffmpeg)
  • Unsandboxed — not Mac App Store ready as-is
  • No playlists, schedules, or cross-Mac sync
  • Pre-built signed binaries not included in this release — build locally with package.sh

Full changelog: CHANGELOG.md