DockLock v0.2.0
Auto-lock your Mac on Bluetooth proximity + panic-hide sensitive apps with one hotkey.
What's New
πΈ Intruder Capture
- Automatically photographs anyone who fails a Panic Mode unlock attempt (wrong Touch ID or password)
- Photo saved locally to
~/Pictures/DockLock Captures/β never uploaded anywhere - macOS notification fires immediately so you know even when you're away from the desk
- Thumbnail visible in History log β tap to view full-size
- Toggle on/off in Settings β Panic Mode β "Capture photo on failed unlock"
π¨ Panic Mode β Safelist Model (redesign)
- New safelist approach: blur covers everything; only your trusted apps stay visible and interactive above the blur
- Previously hid specific apps (blocklist) β now blurs everything and keeps only safelisted apps visible
- Default safelist: Terminal, Xcode, VS Code, Safari, Chrome, Slack, Notion
- Add/remove apps via the + button or keyboard Delete key
- Blur overlay uses
NSVisualEffectViewwith CGContext bitmap masks punching transparent holes for safelisted windows β updated every 250ms so safelisted apps stay fully interactive - Full-screen apps on non-safelisted apps are automatically exited and hidden
- Auth dialog appears above the blur β Touch ID + password fallback both work correctly
- Overlay stays visible during authentication so nothing leaks while the dialog is open
π Lock History
- Full audit log of every lock event: Proximity Lock triggers, Panic Mode activations, and failed unlock attempts
- Intruder Capture events show thumbnail with tap-to-enlarge
- Clear history at any time (also deletes captured photos from disk)
π Menubar Live Stats
- Live Bluetooth RSSI and lock countdown shown next to the menu bar icon
- Toggle on/off in Settings β General
π Security hardening
panicRequiresTouchIDandintruderCaptureEnabledare local-only β cannot be changed remotely via iCloud- Intruder Capture events (failed unlock timestamps) are excluded from iCloud sync and stay on-device only
- Fixed: duplicate Panic Mode observers when proximity lock triggered while already active
- Fixed: AXValue force casts replaced with safe CFGetTypeID checks β no more crash paths that could leave the screen permanently blurred
- Fixed:
stopRunning()dispatched to background queue (mirrorsstartRunning())
βοΈ iCloud Sync (infrastructure β activates in v0.2.1)
CloudSyncStoreimplemented β routesNSUbiquitousKeyValueStoreexternal-change notifications to Settings, App Safelist, and Lock History- Non-security settings (
panicShortcutEnabled,proximityLockDelay,proximityRSSIThreshold,showMenuBarStats) sync across Macs automatically once the entitlement is enabled - Activation requires the iCloud Key-value storage entitlement β available once the paid Apple Developer account is set up for notarization
Bug Fixes
- Fixed: wrong password during Panic Mode release now correctly triggers Intruder Capture (previously only biometric failure triggered it)
- Fixed: overlay would flash briefly when switching between apps during Panic Mode
- Fixed: full-screen apps could sit above the blur overlay and remain visible
- Fixed:
clear()in Lock History now removes events from iCloud KV store (previously stale events could re-sync back after clearing) - Fixed: concurrent
capturePhotocalls no longer overwrite the completion handler
Installation
- Download
DockLock-v0.2.0.dmgbelow - Open the
.dmgand drag DockLock.app to Applications - Launch from Applications β right-click β Open on first launch (see note below)
- Grant Accessibility and Camera permissions when prompted
β οΈ Gatekeeper warning: macOS will show a security warning on first launch since the app is not yet notarized. Right-click β Open β Open anyway, or run:xattr -cr /Applications/DockLock.appNotarization is planned for v0.2.1 once the Apple Developer account is active.
Requirements: macOS 15 Sequoia or later Β· Apple Silicon or Intel
Build from Source
git clone https://github.com/atomsbaza/DockLock.git
cd DockLock
open DockLock.xcodeprojRequires Xcode 16+ and Swift 6.0+.
What's Next (v0.2.1)
- Notarized release β no Gatekeeper warning, Homebrew Cask (
brew install --cask docklock) - iCloud Sync activated β Settings, App Safelist, and Lock History sync across all your Macs
Feedback
Found a bug? Open an issue
Have a feature request? Request here
Security issue? Email atomsbaza2@gmail.com