Changelog

Every Luma release, in order , what was added, changed, and fixed.

0.1.0-beta.1
July 21, 2026
First beta

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-edit settings.json and 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 → OpenOpen, 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.