0

Is there a way to dim specific, individual windows?

Problem

I often find the ubiquitous white or almost-white backgrounds of many programs and pages I browse unpleasantly bright. Often they either cannot be configured at all, or not enough, or have too many special cases to be configured efficiently. Images or videos can introduce excess brightness .

Lowering whole screen/system brightness is not a solution because a bright window next to a bunch of dark windows is a bad no matter how much the global settings are changed.

I want to dim just windows that are too bright for me do that they are tolerable next to my preferred/configured dark windows.

Requirements

Ideally, I would like to:

  1. quickly dim a window when it becomes too bright,
  2. configure some programs to always have all or some their windows dimmed by default,
  3. be able to manually toggle the dimming on individual windows, and
  4. retain full functionality.

At the bare minimum, if you give me a programmatic way to dim a window, I can and will do the rest with some programming language.

Detailed Preferences

I would like to do it without stealing focus or otherwise blocking keystrokes, mouse events, and other window events, so that it stays dimmed even as I interact with it, including resizing, moving, and hiding the window (which I usually do with my own AutoHotKey scripts, but often enough with the built-in keyboard and mouse ways too).

I would prefer a portable solution that I can reuse between Windows 7 and Windows 10 (and if it works on Windows 8 too that would be a plus), but I will gladly accept anything at this point. My most pressing daily need is Windows 7.

The less I have to install to make it work, the better, but I'll install anything remotely reasonable at this point.

I am a libre software zealot at heart, but in a moment of weakness I'd maybe even use a shady binary off the internet if it did the job well enough, and I would definitely pay good money for a polished closed solution from a reputable source.

I would really enjoy it if there to be no weird visual artifacts or noticeable delays, and I would be willing to tolerate some constant CPU load to make that happen, but even a solution that only works while the window is stationary and that I have to manually reapply and even clean up after would be an improvement.

Would be nice if it didn't leak memory, but if I have to restart it once a week or daily, it would still be worth it.

3
  • 1
    As far as I know Windows API doesn't have such capabilities therefore it will require either a lot of work to implement or will look ugly. The only (quick) solution I see here is to set a window transparency together with a dark wallpaper. Commented Jul 3, 2019 at 8:16
  • @montonero That's brilliant, actually. Not a perfect solution, but my wallpaper is already just solid black, so this would work in any situation where two bright windows don't overlap. Most of my bright windows don't regularly end up overlapping, and if they do there are fairly decent solutions for that available to me. Nice, really good creative out-of-the-box thinking. Commented Jul 3, 2019 at 18:33
  • @montonero Alright, already found a couple edge cases in modern Firefox which hint at upcoming problems (which any solutions will probably have to deal with one way or another): when typing in the address bar or opening the settings drop-down ("hamburger menu" button in the top right) those panes are solid opaque white - tolerable for the menu, unpleasantly bright for the address bar. Still, this is already better than nothing. Commented Jul 3, 2019 at 19:00

1 Answer 1

0

I do not suggest doing this via programming. There are so many GUI frameworks out there that might not play well with such attempts.

I can suggest two quick and dirty solutions under windows 10:

  1. Night light (Windows + A -> expand -> night light)
  2. Settings -> ease of access -> color filters -> play with the options until you are comfortable

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.