You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Inconsistent number of brightness steps for built-in display with fine scale enabled #1759
Updated MonitorControl to the latest version (if applicable)
Describe the bug
With MonitorControl set to "Use fine OSD scale for brightness and contrast", when pressing the Brightness keys, there seem to be only about 60 steps from backlight off to full brightness.
In fact, I am not counting the same number of steps each time, even when I turn off key repeat and automatic brightness in System Settings. There seem to be more steps on the way up than down. The OSD visibly moves more for some keypresses than others.
Steps to reproduce
Sorry I closed issue #1748 by mistake. I wanted to add the following:
It's easier to see this happening if I set MonitorControl to "Show percentages" and then leave its menu open while I'm pressing the Brightness keys. For example, starting from 1% and pressing Brightness Up several times, I get the percentages 1, 3, 6, 7, 9, 10, then pressing Brightness Down I get 10, 9, 7, 6, 4, 3, 1. Occasionally, I get 4 on the way up, too. The bigger steps cause visibly bigger brightness changes.
I also have a pair of Asus PB258Q displays for which MonitorControl can set nearly every possible percentage but skips some steps and repeats others, and occasionally sets them to 100% brightness for one step. Just now, starting from 0 and repeatedly pressing Brightness Up, MonitorControl repeated 4% (the monitor's brightness didn't change according to its OSD) then skipped 15, then repeated 29, then when it said 59 it set the monitor to 100%, then when it said 60 it correctly set the monitor to 60, then it counted up to 100 properly.
Expected behavior
MacOS lets me adjust the internal display's brightness smoothly and consistently from 0-64 by holding Option and Shift while pressing the Brightness Up/Down keys.
MonitorControl should alllow me to do this without holding any modifier keys. It should go from either 0-64 or 0-100 with the same size step each time. Going from 0-100 would (I assume) enable better brightness syncing with external monitors.
Anything else?
No response
Environment Information (please complete the following information)
- macOS version: 15.4.1
- Mac model: MacBook Pro 16" M3 Pro
- MonitorControl version: 4.3.3
- Monitor(s): Internal
- Monitor Cable(s)/Connection(s): Internal
- Apple Silicon/M1 (yes or no): yes
Hi @LucaClrk - I should only assign project maintainers but feel free to offer a fix in a fork/PR. If it's some complex AI generated stuff then it will be tagged as AI generated / fork recommendation so it remains accessible to those who need it - but if it's just a plain ordinary fix which can be reasonably reviewed by a human maintainer, it will be merged. :)
This would be easier to diagnose with raw brightness values before and after each keypress. If the fine-scale mapping is non-linear or rounding differently on increment versus decrement, logging the native display value, OSD value, and configured step count during one up/down cycle should reveal where the inconsistency enters.
Activity
LucaClrk commentedon Jun 29, 2026
You can assign me!
waydabber commentedon Jun 29, 2026
Hi @LucaClrk - I should only assign project maintainers but feel free to offer a fix in a fork/PR. If it's some complex AI generated stuff then it will be tagged as
AI generated / fork recommendationso it remains accessible to those who need it - but if it's just a plain ordinary fix which can be reasonably reviewed by a human maintainer, it will be merged. :)hiSandog commentedon Jul 8, 2026
This would be easier to diagnose with raw brightness values before and after each keypress. If the fine-scale mapping is non-linear or rounding differently on increment versus decrement, logging the native display value, OSD value, and configured step count during one up/down cycle should reveal where the inconsistency enters.