The brightness keys on your keyboard adjust your display promptly and smoothly -- for internal displays. Dimmit lets them do the same for external displays.
Simple and reliable on Mac OS X 10.9 Mavericks and Linux Mint. More platforms and package formats forthcoming.
Dimmit is developed with LLM help, without which I wouldn't have bothered figuring out where to start. My feelings about this are mixed, but I'm happy to have Dimmit.
Some big limitations that I hope to lift:
- All connected external displays now dim together in relative lockstep; internal-panel handling on Linux/Windows is still to come (on macOS the OS already dims the built-in panel on the brightness key)
- On modern macOS, the access permissions probably don't stick
- On Linux, mapping the brightness keys is your responsibility
Get the latest release package for your platform.
Before installing:
xattr -dr com.apple.quarantine dimmit-*.pkgAfter installing: enable System Settings → Privacy & Security → Input Monitoring for dimmitd.
Worth a shot. If the brightness keys still don't work, that's a known limitation, being worked on.
Before installing:
sudo usermod -a -G i2c $(whoami)After installing: make sure the new group membership is available in your user session.
Then configure your desktop's keyboard settings to map the brightness keys to dimmit-up and dimmit-down.
Download dimmit-<version>-windows-setup.exe from the latest release and run it.
It installs per-user (no admin), so Windows SmartScreen may warn about an unknown publisher -- choose More info -> Run anyway (the build is not code-signed yet).
The installer starts dimmitd at logon automatically.
dimmitd tries to capture your brightness keys directly (like on macOS). This works where the keys reach Windows as HID "brightness" events -- common on external/USB keyboards. On many laptops the brightness keys are handled by the firmware and never reach dimmit; there, map any keys to dimmit-up / dimmit-down in your keyboard/hotkey tool (the installer put them on your PATH).
- CMake
- Debian:
pkg-configandlibddcutil-dev - macOS: Command Line Tools (or full Xcode)
- Windows: MSYS2 UCRT64 toolchain (
pacman -S mingw-w64-ucrt-x86_64-{gcc,cmake,ninja}); build from the MSYS2 UCRT64 shell
- Debian:
libddcutil4
git clone --recurse-submodulesOr if you've already cloned but didn't know you'd need submodules (sorry):
git submodule update --init --recursivecmake -B build
cmake --build buildsudo cmake --install buildExample service definitions for each platform are in service/.
To override the default control socket (/tmp/dimmit.sock), set DIMMIT_SOCK in the environment.
To override the default log location (stdout), set DIMMIT_LOG in the environment. Exception: on macOS, when stdout is not a terminal (such as a LaunchAgent), the default log location is ~/Library/Logs/dimmitd.log.