Skip to content

Repository files navigation

Witz Lyte

Unlock your Mac's available XDR brightness — and dim below the OS floor.

A tiny, free, open-source macOS menu-bar app that pushes compatible XDR displays past the SDR ceiling using Apple's native EDR pipeline — then dims below the OS's 0% floor with the same overlay. No gamma hacks or private APIs.

Free alternative to Vivid, BrightIntosh, and Lunar's XDR mode.


Free · No sign-up · macOS 14 Sonoma or later · Universal (Apple Silicon + Intel)

These links always point to the newest version: Witz-Lyte.zip · Witz-Lyte.dmg · signed & notarized by Apple


Download License macOS Swift


Crafted by ZipLyne

ZipLyne

Install · Requirements · How it works · Safety · FAQ


How to install

For anyone (no Terminal needed)

  1. Click here to download Witz-Lyte.zip
  2. Open the downloaded zip — it unpacks to Witz Lyte.app.
  3. Drag Witz Lyte.app into your Applications folder and open it. It opens straight away — every release is code-signed and notarized by Apple, so macOS shows no warnings.
  4. Look for the ☀️ sun icon in your menu bar (top-right of your screen).
  5. Click the icon → Enable Witz Lyte, then drag the slider to make your screen brighter (or dimmer). Open Dashboard… from the same menu to manage every setting in one window.

That's it. No account, no payment, no subscription, nothing to configure. Updates install themselves — when a new version ships, Witz Lyte offers it in-app (signed Sparkle auto-update; you never have to come back here).

For developers (build from source)

git clone https://github.com/ZipLyne-Agency/WitzLyte.git
cd WitzLyte
./build.sh
mv "dist/Witz Lyte.app" /Applications/
open "/Applications/Witz Lyte.app"

Requires Xcode Command Line Tools (xcode-select --install). Swift Package Manager downloads the pinned Sparkle dependency automatically.


Requirements

TL;DR — XDR hardware gets the brightness boost. Other displays still get sub-zero dimming, but may report no boost headroom.

Minimum

Requirement Minimum
Mac chip Apple Silicon or Intel (the release is universal; EDR boost depends on the connected display)
macOS 14.0 Sonoma or later
Display Any display reporting EDR headroom > 1.0 (boost level varies — see table below)

Display compatibility

The brightness boost you get depends entirely on your display's EDR headroom. macOS reports this at runtime — Witz Lyte reads it and hard-clamps the slider so you can never exceed hardware spec.

Display Mac Required Peak Brightness Boost Level Notes
MacBook Pro with Liquid Retina XDR Any supported model Up to the panel/OS limit Full when macOS reports XDR headroom Best-supported built-in display
Apple Pro Display XDR Compatible Mac Up to the display/OS limit Full when macOS reports XDR headroom Capability is read at runtime
Standard built-in Apple display Any supported Mac Varies Usually dim-only Boost is unavailable when reported headroom is 1.0
Apple Studio Display Compatible Mac Display-limited Dim-only when reported headroom is 1.0 The app never invents boost headroom
Third-party HDR monitor Compatible Mac Varies Varies Works only when macOS reports headroom above 1.0

How to check your headroom: Open Terminal and run:

swift -e "import Cocoa; NSScreen.screens.forEach { print($0.localizedName, $0.maximumPotentialExtendedDynamicRangeColorComponentValue) }"

Any value above 1.0 means Witz Lyte will work on that display. 3.2 is full XDR. 1.0 means no boost possible.


Why this exists

macOS caps your 1600-nit XDR panel to ~500 nits for normal desktop content. Beautiful for color-accurate work in a dim studio — brutal outdoors, in a sunlit café, or anywhere your retinas need to overpower the environment. And if you're up at 2am, the OS brightness floor is still too bright.

Witz Lyte uses a single EDR-backed overlay to solve both problems. One slider — slide left to dim below the OS floor, slide right to boost past the SDR cap — powered by Apple's own rendering stack.


Features

One unified slider Dim ← → Boost. Identity (1.0) in the middle snaps magnetically like macOS volume
Full EDR boost Up to your display's reported headroom — no gamma tricks
Sub-zero dim Goes below macOS's 0% brightness floor using multiply blend mode
Global hotkeys ⌘⌥⇧B toggles the overlay · ⌘⌥⇧0 resets to Normal
Multi-display aware One overlay per screen, each independently clamped to that display's reported headroom
Battery protection Optional auto-disable on battery power
Thermal protection Optional auto-disable on .serious / .critical thermal state
Auto-off timer 15m · 30m · 1h · 2h
Launch at login Wired to SMAppService — real macOS login item
Nits estimate Live tooltip shows approximate nit output
Small native app Swift/AppKit/Metal with Sparkle for signed automatic updates

How it works

Each screen gets a borderless, click-through, full-screen NSWindow at .screenSaver level with an NSView hosting a manually-configured CAMetalLayer:

metalLayer.pixelFormat = .rgba16Float
metalLayer.wantsExtendedDynamicRangeContent = true
metalLayer.colorspace = CGColorSpace(name: .extendedLinearDisplayP3)
metalLayer.compositingFilter = "multiplyBlendMode"

The layer clears to (v, v, v, 1.0) in extended linear Display P3. With multiplyBlendMode, the compositor does:

final_pixel = overlay_rgb × underlying_rgb

v = 1.0 is identity (invisible). v = 2.0 doubles brightness of every pixel straight into the display's reserved XDR headroom. v = 0.5 halves every pixel — genuine sub-zero dimming below the OS brightness floor. Atomic present (commit → waitUntilScheduled → present) prevents compositor flashes. 1 Hz keep-alive stops macOS from disengaging EDR on idle.

No LUT manipulation, no private APIs, no SPI, no IOKit trickery.


Is it safe?

Witz Lyte uses public macOS display and Metal APIs, and clamps each screen to the EDR headroom macOS reports. That does not make maximum brightness consequence-free:

  • Higher brightness = more power and more heat. The thermal-protection toggle handles spikes.
  • The app does not override the panel's firmware or macOS display limits.
  • Peak HDR brightness is not the same as indefinitely sustained full-screen brightness; the display and macOS may reduce output as conditions change.

FAQ

I got a warning that the app is from an unidentified developer — is it safe?

Official GitHub releases are Developer ID signed and notarized by Apple. Verify that you downloaded from this repository's Releases page; if macOS still blocks the app, report an issue instead of bypassing Gatekeeper.

Does it work with nano-texture MacBook Pro displays?

Nano-texture does not change the app's mechanism. The actual multiplier is still limited to the headroom macOS reports for that display.

Why does a non-XDR display get less boost than a MacBook Pro?

Witz Lyte does not assume a multiplier from the Mac model. It reads the display's reported EDR headroom; if that value is 1.0, boost is unavailable and only dimming applies.

Does it work with the Studio Display?

Witz Lyte can still dim the display. Brightness boost is unavailable when macOS reports EDR headroom of 1.0.

Does it work on Intel Macs?

The release includes both arm64 and x86_64. Boost capability is display-dependent and is not guaranteed on every Intel setup; check reported headroom with the command above.

How do I uninstall?

Click the ☀️ icon → Quit Witz Lyte, then drag Witz Lyte.app from /Applications to the Trash. That's it.


Project layout

WitzLyte/
├── Package.swift
├── build.sh                    # builds + bundles .app
├── Resources/
│   └── Info.plist
└── Sources/WitzLyte/
    ├── main.swift
    ├── AppDelegate.swift
    ├── DashboardWindow.swift
    ├── Settings.swift          # UserDefaults wrapper
    ├── BrightnessController.swift
    ├── IntensityPolicy.swift   # tested clamping/snap rules
    ├── OverlayWindow.swift     # NSWindow subclass, per-screen
    ├── EDRMetalView.swift      # the actual brightness trick
    ├── MenuBarController.swift
    ├── PowerMonitor.swift      # battery + thermal auto-off
    ├── PowerPolicy.swift       # tested safety decision rules
    └── UpdateManager.swift     # Sparkle integration
└── Tests/WitzLyteTests/        # XCTest regression suite

Development

swift test
swift build
./build.sh

CI runs the XCTest suite and a universal release build. ./build.sh produces an ad-hoc-signed local app at dist/Witz Lyte.app; official GitHub releases use the separate Developer ID signing and notarization workflow.

Security-sensitive reports should use GitHub's private Security → Report a vulnerability flow. Use public issues for ordinary bugs and feature requests.


License

MIT © 2026 ZipLyne.


Built with care by ZipLyne

We design and engineer software products.
ziplyne.agency

About

Free macOS menu-bar brightness control using display-reported XDR headroom, with below-system dimming, thermal safeguards, and signed automatic updates.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages