Skip to content

Conversation

@bkbilly
Copy link
Owner

@bkbilly bkbilly commented Jan 2, 2026

Big Update: Real Hardware Brightness Control

I’ve completely overhauled how brightness works! Instead of using a software trick xrandr to "fake" dimming by tinting your screen darker, the app now talks directly to your monitor's hardware. This means better colors, less power usage, and actual control over the backlight.

What’s New:

  • Real Hardware Support: It now works with laptop screens and external monitors using DDC/CI (the standard protocol for screens).
  • Universal: Since it talks to the hardware through the system kernel, it works perfectly on both X11 and Wayland without needing extra tools like xset or xrandr.
  • Smart Detection: It automatically finds your monitors and gets their real names (like "Dell U2723QE").

⚠️ Heads Up: This is a Breaking Change!

Because I've switched from software "faking" it to real hardware control, the way you set values has changed:

Feature Old Way (xrandr) New Way (Hardware)
Range 0.1 to 1.0 0 to 100
Precision Decimals (0.1) Whole numbers (1, 2, 3...)
Quality Software-tinted True Hardware Backlight

Quick Fix for Permissions

If your brightness isn't moving, you just need to give your user permission to talk to the hardware:

  • External Monitors: Add your user to the i2c group by running: sudo usermod -aG i2c $USER (then reboot!).
  • Laptop Screens: You need to create a "udev rule" so the app can change the backlight files. Run this command: echo 'SUBSYSTEM=="backlight", RUN+="/bin/chmod 666 /sys/class/backlight/%k/brightness /sys/class/backlight/%k/bl_power"' | sudo tee /etc/udev/rules.d/backlight-permissions.rules Then apply it with: sudo udevadm control --reload-rules && sudo udevadm trigger.

Inspired by the screen-brightness-control Python library.

@bkbilly bkbilly merged commit 58b41c5 into master Jan 2, 2026
4 checks passed
@bkbilly bkbilly deleted the Brightness branch January 2, 2026 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants