What's New
Added
- Screen recording: Record your screen as MP4 video with ScreenCaptureKit. Includes a floating status bar with timer, pause/resume, stop, and discard controls. Access via the new "Record" button in the menu bar or
⌘⇧2 - Restart recording: New restart button in the recording status bar — cancels the current recording and immediately starts a new one
- Recording pill redesign: Minimal icon-only controls (pause, stop, restart, discard) with solid dark background, proper SwiftUI observation for live timer updates, and auto-sized panel
- Video editor with effects: Full video editor with padding, corner radius, shadow, and background picker (solid colors, gradients, macOS wallpapers, custom images) — matching the image editor's inspector sidebar. Trim timeline with thumbnail strip, transport controls, and export with effects baked in
- Recording settings tab: Dedicated settings panel for recording preferences — FPS (24/30/60), show cursor, capture audio, and open editor after recording toggles
- Record Screen keyboard shortcut (
⌘⇧2): Configurable global hotkey for screen recording, shown in Capture settings alongside screenshot shortcuts - Separate History and Videos tabs: Screenshots and recordings are now in separate tabs in Settings. History shows only screenshots, Videos shows only recordings — each with their own clear button and appropriate actions
- Preview panel for recordings: After stopping a recording, the floating preview overlay appears (same as screenshots). Click it to open the video editor
- Drag-to-app from preview: Dragging from the floating preview card now provides the actual file URL, enabling drop into apps like Figma, Slack, and Finder
- App appearance setting: Choose between System, Light, and Dark mode in Settings > General > Appearance
- Recent menu with sub-menus: Single "Recent" button in the menu bar with nested "Screenshots" and "Recordings" sub-menus
- Image crop: Crop screenshots in the editor with draggable corner and edge handles, dark mask overlay, and rule-of-thirds grid
- Video crop: Crop recordings in the video editor with the same overlay UX, baked into the exported MP4
- MP4 recording and export: Screen recording now records directly as MP4 instead of MOV
- Changelog page: Dedicated
/changelogpage on the landing site, auto-generated from CHANGELOG.md
Fixed
- Race condition:
BundledBackgrounds.ImageCache: AddedNSLockto the image cache dictionary — concurrent access from multiple threads could crash - Race condition:
ShortcutService.cachedShortcuts: Protected the static shortcut cache withNSLock - Race condition:
RecordingSession.appendVideoSample: Movedwriter.startSessionoutside the lock to avoid calling AVAssetWriter while holding the lock - Race condition:
ScreenRecordingManagerstop/cancel: Added.stoppingstate guard so concurrent stop calls can't both proceed - Memory leak:
RecordingStatusBarController: Panel was never set tonilon dismiss - Memory leak:
PreviewOverlay: Panel was never released on dismiss - Memory leak:
VideoEditorModel.generateThumbnails: Changed to[weak self]to prevent retaining the model after window close - Recording timer stuck at 00:00: Fixed SwiftUI observation by using
@Stateinstead ofletforScreenRecordingManager.shared - Recording pill invisible/clipped: Panel now uses
hostingView.fittingSizefor exact sizing - Recording saved to wrong location: Raw video now stays in the user's save directory after stopping
- Filename collision on rapid capture: Appends a UUID suffix when a file with the same timestamp already exists
- Orphaned files on delete:
deleteRecordnow cleans up beautified files and base images - Windows open on wrong screen: All windows now open on the same screen where the menu bar icon was clicked
- Recording pill visible in recordings: Fixed by setting
sharingType = .noneon the panel - Export deletes files from save directory: Exported file now stays in the save directory
- Annotation export positioning: Annotations now render at the correct position in exported images
- Annotations mispositioned with crop: Annotations are now remapped to cropped-image coordinate space
- Duplicate file on Desktop: Raw source image now stored internally in Application Support
- Video export missing background: Fixed by setting instruction background to clear
- Video editor not loading default effects: Now loads defaults from
AppPreferences.defaultBeautifierConfig - Video trim handles: Fixed coordinate space bug with drag gestures
- Recording dimensions in history: Videos tab now shows correct pixel dimensions
Removed
- Auto-export with effects on recording stop: Recordings are saved as raw video immediately; effects only applied on explicit export
Changed
- Recording pill UI: Icon-only buttons, solid dark background, forced dark color scheme, hover-only highlights
- Version bumped to 0.3.7 (build 10)
Download
| File | Architecture |
|---|---|
BetterShot-0.3.7_arm64.dmg
| Apple Silicon (M1/M2/M3/M4) |
BetterShot-0.3.7_x86_64.dmg
| Intel |