How to reduce the brightness lower than supported by my display?

Introduction on Android

On Android there are 2 ways to reduce the display brightness to lower than normally possible. One is the built in “extra dark” which applies a set transparent black overlay on top of the display. The other one is “Red Moon” which is more customizable and allows blue-light filtering and a customizable dark overlay.

As phones use OLED screens, this works perfectly and actually reduces the brightness of all non-black elements well.

My Laptop has an IPS display so it should have true black colors, but I am not sure about the other brightness gradients. I assume this would work equally well though.

KDE builtin tool

KDE Plasma has a builtin tool for blue-light reduction and it works great. But it lacks the dark overlay feature to reduce the overall brightness.

Plasmoid, gammastep, redshift

There is a Plasmoid called “Redshift control” and it allows using redshift or gammastep.

I tried both tools, and I am not sure if they work on wayland at all.

gammastep
Error: Could not control gamma, exiting.
Error: Failed to start adjustment method: wayland

Gammastep supports wlr-gamma-control-unstable-v1 protocol for wlroots-based
wayland compositors.

So I assume no kwin support yet. Waycheck flatpak shows me “N/A”, I will try the Fedora package for more access.

Other options?

I tried to find a KWin script but not sure if that is the right place to search.

Anyone know if such a thing exists?

1 Like

so, it seems as if this needs a Kwin effect. I would like to first try a hardcoded value, like a black overlay with 30% opacity.

Then if that works, I would try to make a plasma applet to change that value, so that users could really adjust it.

Interestingly Haruna (MPV) already supports reducing the brightness like that, which is very useful when watching movies at night.

I am honest, I have no idea of C++ so I asked an LLM, this was the result.

After a bit of testing and struggling to compile the effect I did not continue testing further.

I made a repo with what I got for now, and would of course appreciate help. I will try to make it work when I find the time

As an alternative to an effect you could try loading a modified icc profile with alower gamma

1 Like