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.
Swift
113
0 commits
updated Mar 19, 2026
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
| 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 |
Coming soon
FreeDisplay.dmg from Releasesbrew install xcodegen
git clone https://github.com/huberdf/FreeDisplay.git
cd FreeDisplay
xcodegen generate
xcodebuild -scheme FreeDisplay -configuration Release build
| Permission | Why |
|---|---|
| Accessibility | Required for brightness key interception on external displays |
No internet connection required (except optional update checks via GitHub Releases API).
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
FreeDisplay sits in your menu bar and talks directly to your displays:
Issues and PRs welcome. This project uses:
xcodegen for project generation (edit project.yml, not .xcodeproj)SWIFT_STRICT_CONCURRENCY: minimalMIT License — see LICENSE for details.
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.
Swift
113
0 commits
updated Mar 19, 2026
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
| 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 |
Coming soon
FreeDisplay.dmg from Releasesbrew install xcodegen
git clone https://github.com/huberdf/FreeDisplay.git
cd FreeDisplay
xcodegen generate
xcodebuild -scheme FreeDisplay -configuration Release build
| Permission | Why |
|---|---|
| Accessibility | Required for brightness key interception on external displays |
No internet connection required (except optional update checks via GitHub Releases API).
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
FreeDisplay sits in your menu bar and talks directly to your displays:
Issues and PRs welcome. This project uses:
xcodegen for project generation (edit project.yml, not .xcodeproj)SWIFT_STRICT_CONCURRENCY: minimalMIT License — see LICENSE for details.