Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iris

中文

A macOS menu bar app for adjusting color temperature (2500K–6500K) and brightness on a per-display basis. Built on a black-body radiation model, it rewrites each display's CoreGraphics gamma lookup table so every monitor gets its own white point. Lives in the menu bar — right-click the icon to quit.

Features

  • Per-display color temperature — each screen gets its own 2500K–6500K slider
  • Live temperature readout — the current Kelvin value updates as you drag
  • Quick presetsSun (6500K) / Dusk (4500K) / Moon (3000K)
  • Brightness control — a brightness slider with percentage readout when the display supports it (internal panels); hidden automatically otherwise
  • Multi-monitor layout — single column for one display, two-column grid for two or more
  • Hot-plug aware — relaunches itself when displays are reconfigured
  • No kernel extension — uses CoreGraphics gamma tables and the private DisplayServices framework only

Requirements

  • macOS 10.11 or later
  • Rust (stable) for building from source

Build & Package

Command Output
make binary Build a binary for the current arch
make binary-universal Build a universal (x86_64 + aarch64) binary
make app Build target/release-lto/macos/Iris.app
make app-universal Build a universal Iris.app
make dmg Build target/release-lto/macos/Iris.dmg
make dmg-universal Build a universal Iris.dmg

Examples

cargo run --profile release-lto   # Run directly without packaging
make app                          # Package as .app
make dmg-universal                # Package a universal .dmg installer

Universal binaries require both targets installed:

rustup target add x86_64-apple-darwin aarch64-apple-darwin

Code signing relies on a developer certificate present in the keychain (see the Makefile); all commands use MACOSX_DEPLOYMENT_TARGET=10.11.

Usage

  1. Run Iris — a sun icon appears in the menu bar.
  2. Click the icon to open the panel; drag a display's slider to shift its color temperature.
  3. Use the preset buttons for one-tap switching.
  4. Adjust brightness with the brightness slider (when available).
  5. Right-click the menu bar icon → Quit Iris to exit.

How It Works

Color temperature is mapped to an RGB white point via a precomputed black-body radiation table (1000K–10100K, sourced from the gammastep project). The white point is written into each display's 256-entry gamma lookup table through CGSetDisplayTransferByTable; brightness is read and written through the private DisplayServices framework.

Clean

make clean   # equivalent to cargo clean

About

macOS menu bar app to adjust color temperature (2500K–6500K) & brightness per display, via CoreGraphics gamma tables.

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages