๐Ÿ“ธ ShotBar: Because โŒƒโ‡งโŒ˜4 is ridiculous

Aug 11, 2025 13:52 ยท 464 words ยท 3 minute read productivity

๐Ÿ“ธ ShotBar: Because โŒƒโ‡งโŒ˜4 is ridiculous

I got tired of doing finger gymnastics every time I wanted to take a screenshot.

You know the drill: โŒƒโ‡งโŒ˜4, wait for the cursor to change, drag to select, hope you got the right area, repeat. It’s 2025 and we’re still doing this dance.

So I vibe-coded ShotBar in a weekend.

What it does

ShotBar sits in your menu bar and gives you three capture modes:

  • Selection - drag to select any area
  • Active Window - grabs the current window
  • Full Screen(s) - captures all displays

Each mode gets its own F-key hotkey (F1, F2, F3 by default). No more finger contortion.

The evolution

Started simple: One massive Swift file (~530 lines) with everything crammed together. Got it working, but it was getting messy.

Then refactored: Broke it into a proper modular architecture because I actually wanted to maintain this thing.

Models/     # Data structures and preferences
Services/   # Business logic and managers
UI/         # SwiftUI views and components
Components/ # Reusable pieces like overlays
Utils/      # Constants and helpers

Clean separation: AppServices coordinates everything, HotkeyManager handles global shortcuts, ScreenshotManager does the heavy lifting with ScreenCaptureKit.

The good parts

Intelligent window detection - Remembers which app you were using before opening the menu. Filters out system windows and ShotBar itself. No more accidentally capturing the Dock.

Smart fallbacks - If window capture fails (black image detection), falls back to display region capture. If that fails, shows actual error messages instead of silent failures.

Respects your setup - Tries to read com.apple.screencapture preferences, falls back to app’s Documents folder. Proper DPI metadata, clipboard format handling.

Menu bar first - Clean popover interface with format toggles (PNG/JPG), destination options (file/clipboard), and real-time feedback.

Technical bits

ScreenCaptureKit integration - Modern APIs instead of legacy CGWindowList stuff. Proper permission handling, multi-display coordinate mapping, quality settings.

Modular architecture - Protocol-oriented design, dependency injection through AppServices, clean separation of concerns. Easy to test individual components.

Respects your settings โ€“ Uses your macOS screenshot preferences or saves to the appโ€™s folder.

Simple menu โ€“ Lets you choose format (PNG/JPG) and destination (file/clipboard).

Why I built it

Every screenshot app I tried was either:

  • Overloaded with features I didn’t need (editing, cloud sync, social sharing)
  • Subscription-based for basic functionality
  • Terrible at window detection

Get it

ShotBar is open source and available on GitHub: github.com/aneesahammed/ShotBarApp

Latest Release: v1.0.0 - The first stable release with all the core functionality.

Build it yourself or steal the selection overlay code - that part was fun to write.

Check it out

For downloads, detailed features, and more information, visit the ShotBar landing page.

Sometimes the simplest tools solve the biggest daily annoyances..


Built this because I was tired of macOS screenshot shortcuts. Started as a weekend vibe-coding hack, evolved into something.

tweet Share