Releases: sorkila/lockpaw
Releases · sorkila/lockpaw
v1.0.7
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
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/checkoutv4 → v6 (Node.js 20 deprecation) - Release workflow no longer fails if GitHub Release already exists
v1.0.5
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 (
takeRetainedValue→takeUnretainedValueon 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
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
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
Fix: overlay not covering full external display
- Set
autoresizingMaskonNSHostingViewso 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.screensdata 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
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'supdatewas 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)