Skip to content

neocode24/Veil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Veil

Veil

Softly blanks other monitors when fullscreen video is detected — or instantly on demand with a hotkey

GitHub release Homebrew Platform Swift License

Language · English · 한국어 · 日本語


Veil — Before / After: fullscreen detected, veil applied Veil — 3 monitors: fullscreen active, veiled with clock, excluded

Features

  • Auto-detection — Detects fullscreen video playback on any monitor via CoreGraphics
  • Manual Veil — Press ⌃⌥⌘ V or toggle from the menu bar to veil instantly, regardless of fullscreen state
  • Soft blank — Instantly overlays inactive monitors with a black veil
  • FlipClock — Optional clock display on veiled monitors
  • Lightweight — Lives in the menu bar, no Dock icon, near-zero CPU at idle
  • Custom apps — Add or exclude any app from detection via the menu bar UI

Install

Homebrew (Recommended)

brew tap neocode24/tap
brew install --cask --no-quarantine veil

Updating: --no-quarantine is required on upgrade too, as Veil is not notarized by Apple.

brew upgrade --cask --no-quarantine veil

Manual

Download the latest .zip from Releases and drag Veil.app to /Applications.

Note: On first launch, grant Accessibility permission:
System Settings → Privacy & Security → Accessibility → Enable Veil

How It Works

Auto Mode

  1. Veil monitors all windows using CoreGraphics APIs
  2. When a known media app enters fullscreen, it identifies the active monitor
  3. Every other connected monitor gets a black overlay (soft-off / veil)
  4. When fullscreen exits, all monitors are instantly restored

Manual Mode

Press ⌃⌥⌘ V or toggle Veil Now in the menu bar to veil on demand:

  • The monitor under your cursor stays visible; all others are veiled
  • Manual mode takes priority over auto-detection — fullscreen changes are ignored while active
  • Press ⌃⌥⌘ V again, toggle Veil Now off, or click Restore All to exit

Supported Apps

Category Apps
Browsers Safari, Chrome, Firefox, Arc, Edge
Players VLC, QuickTime, IINA, mpv, Infuse, Plex
Streaming Netflix, Disney+, Prime Video, Apple TV
Video Call Zoom, FaceTime

Custom apps can be added or excluded from the menu bar UI.

Monitor Control

Each connected display can be individually toggled from the menu bar:

  • Green dot — Active, will be veiled when fullscreen is detected
  • Orange dot — Currently veiled
  • Gray dot — Excluded from veiling

Build from Source

# Requirements: Xcode 16, XcodeGen
brew install xcodegen

make setup   # Generate Xcode project
make build   # Build release binary
# Release workflow
make package   # Build + zip artifact
make release   # Package + create GitHub release

# Tag-based CI release
git tag v0.2.0
git push origin v0.2.0

Requirements

Requirement Version
macOS 14.0+ (Sonoma)
Xcode 16.0+
Swift 5.9+

License

MIT License © 2024 neocode24

About

macOS menu bar app that softly blanks other monitors when fullscreen video is detected

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors