A cross-platform desktop app for controlling monitor brightness, contrast, dark mode, and volume -- all from one system tray popup. Works with both built-in laptop displays and external monitors via DDC/CI. Supports macOS, Windows, and Linux.
Grab the latest release from the Releases page.
| Platform | File |
|---|---|
| macOS Apple Silicon (ARM64) | Display DJ_x.x.x_aarch64.dmg |
| macOS Intel (x64) | Display DJ_x.x.x_x64.dmg |
| Windows (x64) | Display DJ_x.x.x_x64-setup.exe / .msi |
| Linux (x64) | Display DJ_x.x.x_amd64.deb / .AppImage |
- Monitor brightness & contrast -- one slider for all monitors, or expand for individual control
- Dark mode toggle -- system-wide dark/light switch
- Volume control -- system volume slider with mute indicator
- Global keyboard shortcuts -- work even when the app isn't focused (configurable via
preferences.json) - Monitor renaming -- click a display name to rename it
- System tray app -- lives in your menu bar / system tray, no dock/taskbar clutter
Prerequisites: Node.js 18+, Rust 1.77+
git clone <repo-url>
cd display-dj2
npm install
npx tauri devThe first build takes a few minutes while Rust compiles from source. After that, incremental builds take ~5-15 seconds.
The app appears in your system tray (not as a regular window):
- macOS: menu bar, top-right
- Windows: system tray, bottom-right (click
^if hidden) - Linux: top panel (may need the AppIndicator extension)
Platform-specific dependencies (external monitor tools, Tauri build libraries, etc.) are covered in CONTRIBUTING.md.
| Command | What it does |
|---|---|
npx tauri dev |
Run the full app in dev mode with hot reload |
npx tauri build |
Production build (binary + installer) |
npm test |
Run frontend tests |
cd src-tauri && cargo test |
Run backend tests |
Config files live in ~/Library/Application Support/display-dj/ (macOS), %APPDATA%\display-dj\ (Windows), or ~/.config/display-dj/ (Linux).
preferences.json-- keyboard shortcuts, brightness/contrast step sizesmonitor-configs.json-- per-monitor names, sort order, disable flags
| Keys | Command |
|---|---|
| Shift + Escape | Toggle Dark Mode |
| Shift + F1 | Brightness 10% + Dark Mode |
| Shift + F2 | Brightness 100% + Light Mode |
| Shift + F3-F5 | Brightness 0% / 50% / 100% |
| Shift + F6-F7 | Volume 0% / 100% |
- Not every external monitor supports DDC/CI (some budget models and certain HDMI connections)
- Built-in HDMI on base M1/M2 Macs doesn't support DDC/CI -- use USB-C/DisplayPort
- Linux global shortcuts may not work under Wayland (X11 works fine)
- Built-in laptop displays don't support contrast adjustment on any platform
See CONTRIBUTING.md for the full development setup (per-platform), architecture, testing, project structure, and code walkthrough.
Use the Issues page. Please include your OS version, monitor model(s), and connection type.
Tauri v2 (Rust) + React 18 + TypeScript + Vite 6