Skip to content
schmonzPublic

About

Low-latency brightness keys for external displays

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

159 Commits

Folders and files

Repository files navigation

Dimmit

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.

Disclaimit

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.

Caveits

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

Install

Get the latest release package for your platform.

Modern macOS

Before installing:

xattr -dr com.apple.quarantine dimmit-*.pkg

After 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.

Linux

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.

Windows

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).

From Source

Build Dependencies

  • CMake
  • Debian: pkg-config and libddcutil-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

Runtime Dependencies

  • Debian: libddcutil4

Fetch

git clone --recurse-submodules

Or if you've already cloned but didn't know you'd need submodules (sorry):

git submodule update --init --recursive

Build

cmake -B build
cmake --build build

Install

sudo cmake --install build

Example service definitions for each platform are in service/.

Configuration

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.

About

Low-latency brightness keys for external displays

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages