Bright Display is a professional-grade GUI application for Linux that allows precise per-monitor control of brightness and color temperature, with a clean Apple-style interface, intelligent presets, and full support for time-based scheduling using real-world sunrise/sunset data from your city.
Designed to reduce eye strain, improve sleep hygiene, and support advanced multi-monitor setups, this app is lightweight, fully configurable, and integrates smoothly into your desktop.
Modern monitors emit harsh blue light and often ignore OS-level brightness controls. This program was built with a deep understanding of:
- Human circadian rhythm and how brightness & color affect it
- The need for Warm & Bright modes to be independent (not hard-linked)
- Usability: no sliders, no input boxes—just clear, consistent step buttons
- Custom routines: save your setups, load them instantly, or schedule them for any time or daylight condition
This app doesn't impose its logic—you are in control.
- 🔆 Brightness Control from
0.2to1.5per output - 🎨 Color Temperature: Warm / Neutral / Cool
- 📁 Preset Management: Save/load named monitor configs
- ⏰ Optional Time Activation: Schedule presets by hour or daylight condition (e.g. all night)
- 🌐 Sunrise & Sunset Detection (via OpenStreetMap + Sunrise-Sunset API)
- 🐻 Tray Icon: A smart bear icon that reflects "risky" settings at night
- ⚙️ Autostart on Login (optional)
- 🖥️ Supports multiple monitors individually
- 🛟 Default Mode button always available (full reset)
- 🧠 No notifications: All visual cues are intuitive and non-intrusive
- Linux using X11 (e.g. Linux Mint, Ubuntu)
xrandrfor controlling displays
sudo apt install python3-tk x11-xserver-utils
pip install --break-system-packages pystray pillow requests python-dateutil- Save the script as
bright_display.py - Make it executable:
chmod +x bright_display.py- Run it:
./bright_display.pyOn first launch, the app will ask if you'd like it to start automatically at login. If accepted, it creates:
~/.config/autostart/bright_display.desktop
Presets are saved at:
~/.config/bright_display/presets.json
Each preset includes:
{
"HDMI-1": {
"brightness": 0.6,
"temperature": [1.2, 1.0, 0.8]
},
"range": [20, 6],
"city": "Buenos Aires"
}- Optional during Save
- Lets you define from/to hours (e.g. 20 → 6 = night mode)
- App will try to detect
sunrise/sunsetvia your city - If offline, it uses static logic (6-8 = sunrise, etc.)
- ✅ Green check = safe configuration
- ❗ Orange exclamation = cold + high brightness at night = strain risk
- Right-click → Show or Exit
No system notifications will appear. Visual cues only.
- ✅ Avoid sliders: use defined steps for clarity
- ✅ Each monitor handled independently
- ✅ No popups without user request
- ✅ Warn about unsafe brightness only via subtle tray changes
- ✅ Never force any time logic—always optional
- Not compatible with Wayland (use X11)
- No preset auto-activation yet (manual loading or scheduling only)
- App must be running for scheduled presets to be visible/adjusted
MIT License. Free to use, modify, and distribute.
Developed by Silk Designed with professional UX goals and user autonomy in mind.
Contributions welcome.