v1.5
March 6, 2026Screen Annotation, Cursor Highlight & Spotlight
New Features
- Screen Annotation — Draw directly on your screen during recordings. 9 tools: Pen, Highlighter, Arrow, Line, Rectangle, Ellipse, Text, Eraser, and Laser Pointer (fades after 2s). Floating toolbar with keyboard shortcuts, 5-color palette, line width slider, undo/redo, and a record overlay toggle. Whiteboard mode (press
W) gives you a clean canvas with 4 background patterns (Blank, Dots, Grid, Lines). Works across multiple displays and during active recordings via ScreenCaptureKit - Cursor Highlight — A visual highlight follows your cursor during recordings and presentations. 4 shapes: Ring, Filled, Squircle, and Rhombus. Click animations for left click (scale) and right click (flash). Customizable size, color, opacity, and border width in Settings > Presentation
- Spotlight — A dim overlay covers the screen with a bright circular cutout following your cursor to focus viewer attention. Adjustable size, dim intensity, edge softness, and follow speed (Instant or Smooth). Works across multiple displays
- Menu Bar Status Item — New menu bar icon with recording state indicators (idle, recording, paused, countdown) and elapsed time. Dropdown menu for Start/Pause/Resume/Stop Recording, Show Lumary, and Quit
- Teleprompter Hotkeys — New global hotkeys for Play/Pause, Reset to Top, Speed Up, and Speed Down (configurable in Settings > Shortcuts)
- Presentation Tools Integration — Cursor Highlight and Spotlight buttons in the main toolbar, global hotkeys, URL scheme commands (
lumary://toggle-cursor-highlight,lumary://toggle-spotlight), and Stream Deck plugin support
Improvements
- Metal Composite Rendering — Composite mode now uses a custom Metal compute shader instead of CoreImage, eliminating per-frame CIFilter graph rebuilds. SDF-based shape rendering with anti-aliased edges, separable Gaussian blur for shadows, and zero-copy IOSurface sharing between recording and preview
- Standard Mode Performance — Preview frames wrapped as Metal textures via CVMetalTextureCache (no GPU-to-CPU readback). Three separate timers consolidated into a single 30Hz timer with ~15ms/sec CPU savings
- Non-Blocking File Writing —
FileSink.append()now dispatches writes asynchronously, removingusleepretry loops that could stall frame delivery by up to 2.5ms per frame - Auto-transcription now skips sessions with no microphone source
- Fixed transcription spinner stuck indefinitely when transcription fails
- Settings Shortcuts section reorganized into groups: Recording, Teleprompter, Annotation, Presentation
- Removed 10fps preview cap during recording — preview runs at full framerate
Bug Fixes
- Fixed tooltips disappearing quickly across the entire app — now uses AppKit's native
NSView.toolTipvia NSViewRepresentable - Fixed potential crash from force unwraps in AnnotationOverlayView and ScreenSource
- Fixed NotificationCenter observer leak in SessionsWindow/CoursesWindow on repeated open/close
- Fixed
AVCaptureSession.commitConfiguration()not guaranteed on error paths - Fixed potential deadlock in camera/video-source wait-for-ready continuations
- Fixed folder directory creation errors being silently discarded