Skip to content

07JP27/ZoomacIt

Repository files navigation

CI Release License Contributors Swift 6.0 macOS target 15+ | supported 26+ Sponsor

English | 日本語


ZoomacIt is a native macOS menu bar app inspired by ZoomIt for Windows. The project aims for feature compatibility with ZoomIt, providing system-wide hotkeys, smooth zooming, and on-screen annotation while minimizing required permissions.

📖 Looking for installation, usage, or keyboard shortcuts? Visit the ZoomacIt Documentation Site.

demo_s.mov

🎥 Watch in high resolution

Feature coverage

Feature Status
Zoom (Still Zoom)
Zoom (Live Zoom)
Draw
DemoType
Break Timer
Snip
Record

Architecture

Pure Swift 6 + AppKit (SwiftUI used only for Settings UI). macOS 15+. No external dependencies. The Xcode project is generated by xcodegen from src/project.yml.

Layer Directory Purpose
App src/ZoomacIt/App/ Entry point (main.swift), AppDelegate, StatusBarController (menu bar)
Core src/ZoomacIt/Core/ HotkeyManager — Carbon RegisterEventHotKey API
Overlay src/ZoomacIt/Overlay/ Fullscreen overlay windows, zoom controllers, ZoomMath
Draw src/ZoomacIt/Draw/ DrawingCanvasView (3-layer compositing), renderers, StrokeManager
Settings src/ZoomacIt/Settings/ SwiftUI-based preferences with hotkey customization
Models / Utils src/ZoomacIt/Models/, Utilities/ State models (DrawingState, Stroke, Settings), extensions

Detailed design documents are in design/.

Development

Prerequisites

  • macOS 15+ (build target)
  • Xcode (with Swift 6 toolchain)

Compatibility note: The minimum deployment target is macOS 15, but the app is tested and officially supported on macOS 26 only. Earlier versions may work but are not guaranteed.

  • xcodegen (brew install xcodegen) — only needed when editing src/project.yml

Build commands

make build       # Debug build
make test        # Run unit tests
make run         # Build and launch the app
make release     # Release build (Developer ID signed)
make notarize    # Release build + Apple notarization
make dmg VERSION=1.0.0  # Notarize + create distributable DMG
make clean       # Clean build artifacts
make generate    # Regenerate .xcodeproj (after editing src/project.yml)
make docs        # Start local documentation dev server
make docs-build  # Build documentation site

Building as a contributor

The project's src/project.yml hardcodes the maintainer's team ID. To build and run locally, replace it with your own:

  1. Find your team ID: security find-certificate -c "Apple Development" -p | openssl x509 -noout -subject | grep -o 'OU=[^,]*' | cut -d= -f2
  2. Edit src/project.yml — replace the DEVELOPMENT_TEAM value with yours (appears twice)
  3. Regenerate and build:
    make generate
    make build
    make run

Note: A valid code signature is required for macOS to launch the app and grant Screen Recording (TCC) permission. Do not commit your team ID — this is a local-only change.

Code signing and notarization

macOS Gatekeeper blocks unsigned apps downloaded from the internet. To distribute ZoomacIt without requiring users to bypass Gatekeeper warnings, the app must be signed with a Developer ID certificate and notarized by Apple.

Copy .env.example to .env and fill in your credentials:

cp .env.example .env
Variable Description
APPLE_ID Your Apple ID email address
TEAM_ID Your Apple Developer Team ID (used by make release / make notarize)
APP_PASSWORD An app-specific password generated at appleid.apple.com
DEVELOPER_NAME Your name as it appears on your Developer ID certificate

Then run:

make dmg VERSION=1.0.0

This builds a Release binary signed with your Developer ID, submits it to Apple for notarization, staples the notarization ticket, and packages the result into a distributable DMG.

Note: Notarization requires an Apple Developer Program membership. The .env file is gitignored and must never be committed.

Contributors

Contributors

Thanks to everyone who helps improve ZoomacIt. See CONTRIBUTORS.md for acknowledgments.

License

This project is licensed under the GNU General Public License v3.0.

About

A native macOS menu bar app inspired by ZoomIt for Windows. Draw on your screen with hotkeys.

Topics

Resources

License

Stars

Watchers

Forks

Contributors