First public beta , native Swift, under 1 MB, zero dependencies.
Added
- Brightness keys for every display. Your keyboard's brightness keys , plus third-party keyboards, media keys, and QMK/VIA rotary knobs , now adjust every screen, not just the built-in. Apple displays via Apple's native path; everything else over DDC/CI, including on Apple Silicon.
- Route keys where you mean. All displays at once, or just the one under your pointer. Hold a modifier (⌥ by default, configurable) to flip routing for a single press.
- Sub-zero dimming. A "Dim below minimum" toggle takes any slider below the hardware floor with a software gamma stage , a too-bright panel can finally go dark at night. Displays with no hardware path (DisplayLink, mirrored, DDC off) become software-dimmable too, instead of uncontrollable.
- A menu bar icon that's a gauge. A half-sun whose rays track brightness , 3 dim, 7 full, a moon when a screen is blacked out. It animates as you adjust.
- Notch-style HUD. A pill on the display you're looking at , top, or vertical from an edge. On notched MacBooks it becomes the notch, sliding out from behind it.
- Menu bar control deck. Right-click for presets, per-display levels, pause, and exclusions. Scroll over the icon to adjust. Save named profiles ("Day", "Movie", "Present") and apply them anywhere.
- Automation, no CLI needed. A
luma://URL scheme (set,up/down,profile,pause) drives Luma from Shortcuts, Raycast, or any script. Hand-editsettings.jsonand it applies live. - Stays out of your way. No dock icon, launch at login, restore-on-reconnect for DDC monitors that reset on power-cycle, and a flight-recorder log in Copy Diagnostics for bug reports.
Also in this build
- A settings menu in the panel. The gear beside the Luma wordmark opens profiles, display refresh, diagnostics, update checks, and quit , everything that doesn't earn a permanent row, without hunting for a right-click.
- Updates that explain themselves. Luma checks GitHub once a day and, when there's something newer, shows the release notes inline with a Download button. No Sparkle, no background daemon, no telemetry , and you can skip a version.
- The build you're on, in plain sight. The panel footer shows the version and links straight to this page.
- Switches you can read at a glance. A toggle that's on now carries the same warm fill as the buttons beside it, instead of the system switch's near-identical on and off states.
Fixed before release
- DDC reads never worked. The I2C read passed the write sub-address instead of
0, so every monitor returned garbage. Cross-checked against two independent implementations. - DDC went to the wrong monitor. External display ports were paired to displays by enumeration order, so on a Mac with an Apple external plus a third-party one, the third-party monitor's brightness was sent to the Apple display's bus. Ports are now matched by the panel's own EDID identity.
- Read requests carried a bad checksum, which stricter monitors reject outright. Packets are also sent twice now, as every other implementation does , I2C acknowledges a packet the monitor then ignores, so a dropped first packet is invisible to a retry.
- Mirrored displays were unreachable. Mirror a laptop to a TV and the TV's brightness couldn't be adjusted at all. Every member of a mirror set is controllable now.
- Sliders that did nothing. Displays that refuse a gamma table , AirPlay, Sidecar, DisplayLink , were still given a software-dimming slider. Luma now checks whether the display accepts it and says so honestly when it doesn't.
- Waking from sleep lost the restore. The DDC bus is unresponsive for seconds after wake, so the restore burned its retries into a dead channel and flagged healthy monitors as failed.
- The menu bar icon froze while dragging a slider. Two separate causes: the animation timer was restarted faster than it could tick, and it ran in a mode that AppKit suspends during a drag.
Notes
- Apple Silicon, macOS 13+. Free forever, MIT-licensed, no telemetry, no accounts, no caps.
- Ships unsigned , first launch, right-click → Open → Open, or
xattr -dr com.apple.quarantine /Applications/Luma.app. - This is a beta. DDC behaviour varies a lot between monitors. If yours misbehaves, open an issue and paste ⚙ → Copy Diagnostics.