Skip to content
Intelligent adaptive brightness for your external display
Swift C Objective-C Shell Python Makefile
Branch: master
Clone or download

Latest commit

Latest commit 16e2d4c May 12, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add more issue templates Dec 18, 2019
.gitsecret Better analytics Apr 9, 2020
EDIDReader Lunar 3.1 Mar 5, 2020
Frameworks Update sparkle May 12, 2020
Images Update frameworks May 6, 2020
Lunar.xcodeproj Update frameworks May 6, 2020
Lunar.xcworkspace Remove playground Jul 3, 2018
Lunar Update frameworks May 6, 2020
LunarPlayground.playground Brightness clip limits Apr 10, 2020
LunarService Better analytics Apr 9, 2020
PreBuiltFrameworks Update sparkle May 12, 2020
ReleaseNotes Update frameworks May 6, 2020
Releases Update frameworks May 6, 2020
bin Remove edidreader bin Mar 28, 2020
.env.sh.secret Better analytics Apr 9, 2020
.gitignore Remove edidreader bin Mar 28, 2020
.pre-commit-config.yaml Fix signing Mar 26, 2020
.sourcery.yml Better analytics Apr 9, 2020
.swift-version Check for chart entry bounds Mar 23, 2019
CHANGELOG.md 3.2.3 May 7, 2020
Cartfile Update frameworks May 6, 2020
Cartfile.resolved Update frameworks May 6, 2020
GoogleService-Info.plist.secret Release 2.9.0 Oct 23, 2019
LICENSE Add license Jul 3, 2018
Makefile 3.2.3 May 7, 2020
README.md Brightness clip limits Apr 10, 2020
buildscript.sh
gencode.sh Replace Fabric with Sentry and fix hotkeys Nov 20, 2019
lunar.sublime-project Volume control, OSD and media keys Feb 23, 2020
pack Fix pack script Apr 23, 2020
pre-commit.sh Replace Fabric with Sentry and fix hotkeys Nov 20, 2019
release.sh Detect slow reads and disable reading in those cases Dec 4, 2019
update_appcast.py Fix signing Mar 26, 2020

README.md

Lunar

Intelligent adaptive brightness for your external display

Note: Lunar changes the actual (physical) brightness and contrast of the monitor.

It doesn't use a software overlay.

Table of Contents

Installation methods

Display page Settings page Hotkeys page

Features

  • Sync-based Adaptive Brightness (and contrast) based on the built-in light sensor of the Macbook or iMac
  • Location-based Adaptive Brightness (and contrast) based on the sunrise/sunset times in your location
  • App Exception list if you need more brightness for specific activities (watching movies, design work)
  • individual settings per display
  • Manual controls hotkeys for setting brightness and contrast that respect the min/max values per monitor

It doesn't interfere at all with the native adaptive brightness that macOS implements for the built-in display.

Tested and known to work with the following types of connections

  • HDMI (1.0 - 2.1)
  • DisplayPort (1.0 - 2.0)
  • Thunderbolt 3 (USB Type-C)
  • Thunderbolt 2 (mini DisplayPort)
  • VGA
  • Adapters that forward DDC messages properly

Troubleshooting

  1. If Lunar doesn't start at all, try installing the Swift 5 Runtime Support from Apple
    • Some older macOS versions don't have these libraries pre-installed and Lunar requires them
  2. If Lunar freezes your system, make sure you have the latest version installed
    • Version 2.9.1 was trying to read the monitor brightness periodically through DDC and if the monitor didn't support that, the system freezed
  3. If you activated the Read Monitor Brightness Periodically and your system freezes when using Lunar
    • Make sure Lunar is not running
    • Open Terminal.app
    • Run the following command defaults write site.lunarapp.Lunar refreshValues 0
    • If the above doesn't work, you can reset Lunar settings by deleting the following file:
      • ~/Library/Preferences/site.lunarapp.Lunar.plist
    • If Lunar starts at login and freezes the computer before you can do anything, try doing the above in Safe Mode
  4. If you get system lag or occasional UI freeze, this might be caused by a slow DDC response from the monitor
    • Make sure Smooth Transition is turned off in Lunar preferences
    • If you are using Sync mode, set the Polling Interval to a bigger value like 5 seconds to avoid making DDC requests too often
  5. If you don't get the Location Permissions prompt, run the following commands in a terminal and restart Lunar:
    sudo defaults delete /var/db/locationd/clients.plist site.lunarapp.Lunar
    sudo pkill -9 locationd

Caveats

  • Lunar usually doesn't work with monitors connected through USB hubs/docks/adapters because a lot of them don't forward DDC messages properly
  • Sync mode doesn't work when the Macbook lid is closed because the light sensor is completely covered

Contributing

Run make dev to prepare dev environment.

You can’t perform that action at this time.