Skip to content

silkux/healthyEyes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Bright Display

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.


🧠 Why Bright Display?

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.


✨ Features

  • 🔆 Brightness Control from 0.2 to 1.5 per 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

📦 Requirements

  • Linux using X11 (e.g. Linux Mint, Ubuntu)
  • xrandr for controlling displays

Install dependencies:

sudo apt install python3-tk x11-xserver-utils
pip install --break-system-packages pystray pillow requests python-dateutil

🛠 Installation

  1. Save the script as bright_display.py
  2. Make it executable:
chmod +x bright_display.py
  1. Run it:
./bright_display.py

On 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

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"
}

Time Range:

  • Optional during Save
  • Lets you define from/to hours (e.g. 20 → 6 = night mode)
  • App will try to detect sunrise/sunset via your city
  • If offline, it uses static logic (6-8 = sunrise, etc.)

📌 Tray Icon Behavior

  • ✅ 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.


🧠 UX Design Principles

  • ✅ 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

🧪 Known Limitations

  • 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

⚖️ License

MIT License. Free to use, modify, and distribute.


✍️ Author

Developed by Silk Designed with professional UX goals and user autonomy in mind.

Contributions welcome.

About

Eyes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages