Skip to content

Releases: sorkila/lockpaw

v1.0.7

31 Mar 07:14

Choose a tag to compare

What's New

Multi-display support — Secondary screens now show a beautiful ambient display instead of mirroring the primary lock screen.

Added

  • Ambient secondary screens — 5 morphing gradient blobs (teal, blue, amber, rose) on independent orbital paths with a 3-second fade-in from black. Premium screensaver-quality visuals.
  • Multi-display setting — Choose between "Ambient on secondary" (default) or "Same on all screens" in Settings → Lock Screen.
  • Per-screen animation offset — Each screen's animation is phase-shifted so multi-monitor setups breathe independently.

Changed

  • Secondary screen overlay windows now ignore mouse events (all interaction on primary screen only)
  • OverlayWindowManager uses a per-screen content factory for independent screen content

v1.0.6

31 Mar 06:32

Choose a tag to compare

What's New

Bug fix: Hotkey stops working after app update

After updating Lockpaw, macOS invalidates the Accessibility permission (TCC) because the binary signature changes. Previously, the hotkey event tap would silently die — CGEvent.tapCreate returns a valid-looking tap even without Accessibility, and the app would never recover.

Fixed

  • HotkeyManager now checks AXIsProcessTrusted() before creating event taps, preventing dead taps
  • App automatically polls for Accessibility restoration and re-registers the hotkey when granted — no restart needed

CI

  • Updated actions/checkout v4 → v6 (Node.js 20 deprecation)
  • Release workflow no longer fails if GitHub Release already exists

v1.0.5

30 Mar 12:41

Choose a tag to compare

Fixes

  • Fix inability to lock screen — Accessibility prompt no longer loops on every launch when TCC entry is stale (after rebuild/update). The prompt now only appears when you actually try to lock.
  • Fix memory bug in accessibility checker (takeRetainedValuetakeUnretainedValue on a global CF constant)
  • Fix hotkey becoming unresponsive — HotkeyManager now re-enables its event tap when macOS disables it (timeout/user input), matching InputBlocker's existing behavior

Install

Download Lockpaw.dmg below, or update via Sparkle (Check for Updates in Settings).

brew upgrade --cask lockpaw

v1.0.4

30 Mar 10:56

Choose a tag to compare

Fixed

  • Fixed "Check for Updates" button not responding — Sparkle's dialogs don't surface in menu bar apps. Now shows inline feedback: spinner, checkmark, or error directly in Settings.
  • Deferred Sparkle updater startup to prevent silent initialization failures.

See CHANGELOG.md for details.

v1.0.3

30 Mar 09:36

Choose a tag to compare

Fixed

  • Fixed lock screen disappearing when connecting an external monitor during an active lock session
  • Fixed race condition in screen change debounce that could cause overlapping window recreation

See CHANGELOG.md for details.

LockPaw v1.0.2

20 Mar 12:49

Choose a tag to compare

Fix: overlay not covering full external display

  • Set autoresizingMask on NSHostingView so SwiftUI content fills the entire window on external/scaled displays
  • Explicitly size the hosting view to match window.contentLayoutRect
  • Debounce screen change handler (300ms) to avoid stale NSScreen.screens data when monitors are hot-plugged
  • Added diagnostic logging for screen frame, backing scale factor, and content view size mismatches

Download: Lockpaw.dmg

LockPaw v1.0.1

20 Mar 12:11

Choose a tag to compare

DMG installer fixes

  • Fixed Applications folder showing broken/generic icon on macOS Sonoma+
    (Finder alias instead of symlink)
  • Fixed volume icon missing from title bar
    (AppleScript's update was deleting .VolumeIcon.icns)
  • Fixed hidden folders (.background, .fseventsd) appearing in DMG window
  • Rebuilt DMG pipeline: single R/W → UDZO conversion, no metadata loss
  • Light background for readable icon labels
  • Inside-out codesigning in CI (no more --deep)

Download: Lockpaw.dmg (3.4 MB)

v1.0.0

20 Mar 08:30

Choose a tag to compare