Skip to content

Repository files navigation

FreeDisplay

Free & open-source alternative to BetterDisplay — all the core display management features, zero cost.

BetterDisplay is a great app, but its best features are locked behind a paid Pro license. FreeDisplay implements the most essential BetterDisplay features as a completely free, open-source macOS menu bar app.

Download Latest Release | Report an Issue


What BetterDisplay Features Does This Replace?

BetterDisplay Feature FreeDisplay Notes
DDC Brightness & Contrast ✅ Hardware control via IOKit I2C (Intel) / IOAVService (Apple Silicon)
Software Brightness (Gamma) ✅ Per-display gamma table control with smooth transitions
Keyboard Brightness Keys for External Displays ✅ Intercepts brightness keys when cursor is on external display, shows native macOS OSD
Auto Brightness Sync ✅ Syncs external display brightness with built-in display changes
HiDPI Virtual Displays ✅ Creates HiDPI dummy displays via CGVirtualDisplay private API
Display Arrangement ✅ Position displays (external above built-in, etc.)
Resolution & HiDPI Switching ✅ Browse and switch all available display modes including HiDPI
ICC Color Profile Management ✅ Switch color profiles per display via ColorSync
Image Adjustment (Gamma/Temperature) ✅ Software contrast, color temperature, RGB channels, invert
Display Presets ✅ Save & restore full display configurations with one click
Virtual Display (Dummy) ✅ Create headless virtual displays
Notch Management ✅ Hide the MacBook notch with a black overlay
Launch at Login ✅ Via SMAppService

Not Included (intentionally)

  • Screen streaming / PiP — rarely used, adds complexity
  • EDID override — requires SIP disabled
  • XDR/HDR extra brightness — requires specific hardware

Screenshots

Coming soon


Installation

Option 1: Download DMG

  1. Download FreeDisplay.dmg from Releases
  2. Open the DMG and drag FreeDisplay.app to Applications
  3. First launch: right-click → Open (unsigned app, one-time approval)

Option 2: Build from Source

brew install xcodegen
git clone https://github.com/huberdf/FreeDisplay.git
cd FreeDisplay
xcodegen generate
xcodebuild -scheme FreeDisplay -configuration Release build

Permissions

Permission Why
Accessibility Required for brightness key interception on external displays

No internet connection required (except optional update checks via GitHub Releases API).


Tech Stack

  • Swift 6 + SwiftUI (MenuBarExtra)
  • IOKit — DDC/CI I2C for hardware brightness/contrast
  • CoreGraphics — Display enumeration, resolution, arrangement
  • ColorSync — ICC color profile management
  • CGVirtualDisplay — Virtual display creation (private API, macOS 14+)
  • CoreDisplay — Built-in display brightness reading (private API, via dlopen)
  • Zero third-party dependencies

Project Structure

FreeDisplay/
├── App/              # AppDelegate, app entry point
├── Models/           # DisplayInfo, DisplayMode, DisplayPreset
├── Services/         # System-level services (DDC, brightness, resolution, gamma, etc.)
└── Views/            # SwiftUI views for each feature section

How It Works

FreeDisplay sits in your menu bar and talks directly to your displays:

  • External monitors: Uses DDC/CI protocol over I2C (Intel) or IOAVService (Apple Silicon) to control hardware brightness, contrast, and other settings
  • Built-in display: Uses CoreGraphics gamma tables for software brightness adjustment
  • Brightness keys: Installs a CGEventTap to intercept keyboard brightness keys and route them to the display under your mouse cursor
  • Auto brightness: Polls the built-in display brightness via CoreDisplay private API and proportionally adjusts external displays
  • HiDPI: Creates virtual displays via CGVirtualDisplay private API, or writes display override plists for persistent HiDPI

Contributing

Issues and PRs welcome. This project uses:

  • xcodegen for project generation (edit project.yml, not .xcodeproj)
  • Swift 6 with SWIFT_STRICT_CONCURRENCY: minimal
  • MVVM architecture (View → ViewModel → Service)

License

MIT License — see LICENSE for details.


Acknowledgments

About

Free & open-source alternative to BetterDisplay for macOS. DDC brightness/contrast control, HiDPI virtual displays, display arrangement, color profiles, auto brightness sync, keyboard brightness key interception with native OSD — all core BetterDisplay features, zero cost.

Topics

Resources

Stars

104 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages