Lunar

Intelligent adaptive brightness for your external monitors

MIT License

Stars
4.3K

Bot releases are visible (Hide)

Lunar - https://github.com/alin23/Lunar/releases/tag/v6.4.5

Published by alin23 11 months ago

6.4.5

Features

  • Adaptive sleep on smooth DDC transitions

Fixes

  • Ensure Shortcuts keep working after automatic and manual app restarts
    • Looks like using exec to restart the app invalidates the XPC connections that Shortcuts opens, who knew..

Improvements

  • Ensure location coordinates update often enough
  • Preserve privacy better by using reduced location data with a maximum of city level accuracy
    • The coordinates never leave the computer, this is just to preserve privacy in case of a rogue program or app
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.4.4

Published by alin23 11 months ago

6.4.4

Features

  • Advanced gamma Shortcut for creating any type of color profile

advanced gamma shortcut

Lunar - https://github.com/alin23/Lunar/releases/tag/v6.4.2

Published by alin23 11 months ago

6.4.2

Hotfix

  • Fix a crash introduced in 6.4.1 related to presets
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.4.1

Published by alin23 11 months ago

6.4.1

Fixes

  • Fix custom preset not being applied correctly if saved with the same name as a previously deleted preset
  • Allow saving the preset by pressing Enter in the text field
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.4.0

Published by alin23 11 months ago

6.4.0

Features

  • Support for the new M3 MacBook Pro and M3 iMac
  • Cleanup UI
    • Use a warmer color palette
    • Make the menubar UI less wide
    • Add option to Dim non-essential UI elements
  • Add lunar lux --listen command for automations based on readings from the internal ambient light sensor

Improvements

  • Disable Lunar adjustments when screen is locked
  • Add new identifiers for the M3 MacBook Pro and iMac
  • Make cursor cling to the middle of the slider knob instead of lagging behind
  • Enable lunar listen to react to display connection changes
  • Disable autoRestartOnFailedDDC and make it opt-in by default
    • New macOS updates have fixed most of the issues that created the need for it

Fixes

  • Fix Auto XDR appearing erroneously in non-Pro builds
  • Fix locked volume OSD when locking brightness
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.3.0

Published by alin23 12 months ago

6.3.0

Features

  • Try to use lux sensors of Apple-vendored external monitors when available

Improvements

  • Use window average for sensor lux when adapting Auto XDR
  • Smaller menubar icon
  • Allow hiding the nits limits from the slider

Fixes

  • Work around Sonoma display connection bug when fetching display info while disconnected
  • Fix OSD chiclets disappearing sometimes on Sonoma
  • Fix app hang on saving display state while restarting from a crash
  • Don't cache isLG to avoid not showing LG specific inputs
  • Fix UI spacing in the Clean layout
  • Fix XDR Contrast going flashing to 0 while in Sub-zero Dimming
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.7

Published by alin23 about 1 year ago

6.2.7

Fixes

  • Fix some Shortcuts not working
  • Fix some typos
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.6

Published by alin23 about 1 year ago

6.2.6

Features

  • Option to Force keep HDR enabled for external monitors

force keep hdr enabled checkbox

  • Option to Use static values instead of offsets for App Presets

Use static values instead of offsets

Improvements

  • Detect possible clamshell sleep and preemptively pause adaptive brightness to avoid flickering
  • Add Skip action if screen is missing for Shortcuts

skip action if screen is missing checkbox

Fixes

  • Fix macOS Sonoma layout issues
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.4

Published by alin23 about 1 year ago

6.2.4

Features

  • Dim keyboard backlight to minimum when Sub-zero dimming is used
  • Automatically detect a light sensor running as the official HomeAssistant Addon
  • Add support for the following boards:
    • Feather ESP32 S2
    • Feather ESP32 S2 Reverse TFT
    • NodeMCU ESP32 S2
    • Adafruit HUZZAH32 Feather ESP32

Improvements

  • Make the reset button do a full reset by default (instead of resetting just the non-display specific settings)
  • Replace watchdog with restartOnCrash signal handler
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.3

Published by alin23 about 1 year ago

6.2.3

Features

  • Turn off keyboard backlight when blacking out the MacBook screen

Improvements

  • Return the current state after toggling boolean values in Shortcuts

Fixes

  • Fix JSON number formatting in lunar listen CLI command
  • Make watchdog more resilient so that Lunar restarts after crashes
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.2

Published by alin23 about 1 year ago

6.2.2

Features

  • Add alternate menubar icon for people with trypophobia

alternate menubar icon

Improvements

  • Don't automatically activate XDR when holding the brightness up key
    • It still activates when pressing the key after 100% brightness

Fixes

  • Fix Main Screen ID fetching
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.1

Published by alin23 over 1 year ago

6.2.1

Fixes

  • Fix auto-learning logic for contrast
  • Ensure brightness and contrast values don't overshoot the min/max values
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.2.0

Published by alin23 over 1 year ago

6.2.0

Improvements

  • Don't beep when doing fine volume adjustments

Features

  • Add --source-address to lunar ddc command for monitors that allow some DDC commands only on the service port (e.g. most newer LG models)
  • Add LG specific inputs for those models where input switching only blinks the monitor but doesn't actually switch the input

LG specific inputs

The new inputs can also be accessed from macOS Shortcuts or from the CLI using commands like:

lunar displays lg input lgHdmi1

# Newly added inputs:
#   lgHdmi1 lgHdmi2 lgHdmi3 lgHdmi4
#   lgUsbC1 lgUsbC2 lgUsbC3 lgUsbC4
#   lgDisplayPort1 lgDisplayPort2 lgDisplayPort3 lgDisplayPort4

Some LG models respond to the 3 and 4 inputs while others use the 1 and 2 inputs. For example 32UD99 uses USB-C 3 and DisplayPort 3 while 32QN650 uses USB-C 1 and DisplayPort 1.

Fixes

  • Fix VCP code for LG specific inputs
  • Fix zero coordinates in UI even when location is available
  • Fix sensor flasher not assigning the correct IDs to the sensors
  • Show when Location Mode doesn't have permissions to request actual coordinates

location mode missing permissions

Lunar - https://github.com/alin23/Lunar/releases/tag/v6.1.5

Published by alin23 over 1 year ago

6.1.5

Features

  • Cleaning Mode: disable screens, keys and clicks to help cleaning the keyboard and screens

cleaning mode UI

Improvements

  • Default max brightness to 500 for Dell Alienware monitors
  • Keep HDR enabled after standby for external monitors when using XDR brightness
  • Allow customizing I2C sensor pins
  • Add support for more hardware light sensors:

Fixes

  • Fix Auto XDR blinking when battery is lower than 20%
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.1.3

Published by alin23 over 1 year ago

6.1.3

Fixes

  • Fix volume OSD not appearing in Sub-zero Dimming
  • Fix Sub-zero Dimming not working with the dark overlay in some cases
  • Fix Lunar not responding for some users

Features

  • MediaMate integration:
    • lunar listen CLI command for getting realtime brightness/contrast/volume changes
    • hideOSD setting forces Lunar to not show any OSD whatsoever
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.1.1

Published by alin23 over 1 year ago

6.1.1

PWM flicker minimization

By combining hardware and software dimming at specific thresholds, Lunar can help people sensitive to PWM flickering.

For the Apple Silicon MacBooks adjust the Min Brightness to 38 in Display Settings to get advantage of this.

For other screens, play with the Min Brightness setting until you find the threshold under which PWM flicker becomes noticeable. Then set the min brightness to the lowest value that doesn't cause flicker.

Here's a thread that explains how to better find the flicker limit: https://forums.macrumors.com/threads/macbook-pro-14-m2pro-pwm-solution.2386836/?post=32099271#post-32099271

Limiting the min brightness to the range which does not cause PWM flicker will allow Lunar to lower LED voltage in that range, while keeping voltage steady and only blocking light through the liquid crystals below that range.

Improvements

  • Added sidecar option to lunar toggle-connection CLI command

Fixes

  • Fix Sub-zero Dimming being overridden by the system adaptive brightness
  • Fix contrast jumping from max to min when going to/from Sub-zero Dimming
  • Fix flashes and sudden transitions when going in and out of Sub-zero Dimming
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.1.0

Published by alin23 over 1 year ago

6.1.0

Clock Mode improvements

  • Added Sub-zero dimming range (can be disabled from the Controls menu)

sub-zero dimming in clock mode

Algorithm Variations

fully automated clock mode selector

Fully Automated

This makes Clock Mode override any manual adjustments done by the user.

It also makes it re-apply the brightness of the previous schedule after standby/wake or after a screen reconnection.

User Controlled

This makes Clock Mode respect manual adjustments done by the user.

Brightness will always transition to the next schedule starting from the user adjusted brightness.

Also if the system wakes within 30 minutes of a passed schedule, the brightness of that previous schedule is re-applied

Features

  • Add Send volume to all monitors setting
    • Helpful for setups with multiple similar monitors, where the audio device can't be matched to the correct monitor

send volume to all monitors setting

Improvements

  • Remove Menu button and allow Control+Click on the menubar icon to see the menu
    • Right Click or Two Finger Trackpad Click also works
  • Renamed Options button to Settings
  • Renamed Preferences button to Display Settings
  • Fix an annoying macOS bug that keeps resetting the brightness of Apple displays to 50% after wake
  • Remove the jitterAfterWake setting since it's no longer needed
  • When disconnecting a screen, re-apply previous scaling on remaining screens one by one instead of all at once
Lunar - https://github.com/alin23/Lunar/releases/tag/v6.0.1

Published by alin23 over 1 year ago

6.0.1

Features

  • Show useful info about the adaptive mode in the menu header

adaptive mode useful info

Improvements

  • Improved Reconnect and Toggle Connection Shortcuts by returning the UUID of the connected screen

Fixes

  • Fixed some crashes and hangs
Lunar - https://github.com/alin23/Lunar/releases/tag/v5.9.5

Published by alin23 over 1 year ago

5.9.5

Features

Support for M2 Pro/Max

Both Thunderbolt/DP and HDMI connections on M2 Pro/Max should support DDC in this version.

Disconnect screens

You'll notice two new actions in macOS Shortcuts: Disconnect screen and Reconnect screen.

disconnect screen shortcuts

This new method can really disconnect and power off the screen just like closing the MacBook lid or disconnecting a cable would do, freeing up the GPU resources.

You retain the ability to use the MacBook keyboard/trackpad/webcam as usual, and disconnected external monitors usually keep the ability to charge the laptop.

These are the effort of reverse engineering the MacBook's clamshell mode which you can read about in this article

I'm planning to integrate them into BlackOut eventually but there's a lot more testing I have to do first.

Improvements

  • Make the arrangements/layouts in Shortcuts work when the main display is not the built-in display
  • Add "Set screen as main" Shortcut
  • Add a way to disable sensor checking on the network
    • disable sensor checker
Lunar - https://github.com/alin23/Lunar/releases/tag/v5.9.4

Published by alin23 over 1 year ago

5.9.4

Improvements

  • Add adaptiveSubzero display property that allows disabling using Sub-zero Dimming range automatically in adaptive algorithms
  • Add UI checkbox for the adaptiveSubzero setting

adaptive subzero setting

Fixes

  • Volume slider was not showing for network controlled monitors
  • Lock the panel manager when using resolution/preset Shortcuts