To quote from their readme: “Overriding dark themes to replace the uggly muddy darkgreys by a pure #000000 black: this is ideal on OLED screens which can do pitchblack and give you a higher constrast”
Those muddy dark greys are actually there for purposefully lowering the contrast, to prevent fatigue. It takes a while to accommodate to lesser contrast, but once you do it, you will likely never want the pure blacks back, unless you will also make the foreground colors darker to compensate for it.
Regarding OLEDs, I’ve gotten the best 31.5” professional grade OLED display, and sent it back, because of the flickering (due to pixels changing state) in low light/brightness conditions. It got me tired very fast (30 minutes) while working at night.
I think you're talking about two orthogonal topics. If the fatigue comes from the difference between foreground and background, it's independent of how "pure" the black is. You can have #000 black AND keep a low contrast between bg and fg, which looks great on OLED screens AND doesn't hurt your eyes.
This is anyway very subjective. For example, I feel the widely popular Solarized colorscheme MORE tiring because the low contrast requires more effort to tell the letters apart.
I literally have mentioned that you can have black and low contrast by adjusting the foreground colors.
It’s subjective indeed, and it requires an investment, purposefully putting up with it for a while, to be able to harvest the benefits. But everyone I personally know who did that, doesn’t want to go back to rich contrast.
You can also turn way down the brightness & save even more power if #000 & #fff are used to get a low contrast. Seems folks forget about this adjustment as anyone using a low-contrast theme for their site makes me crank up my brightness just to read it. Books being high contrast black & white wasn’t an issue since it’s in ambient light, but if your screen is brighter than ambient, then of course you’ll want a low-contrast theme, but you could have just lowered your brightness.
I’m happy with my OLED phone, laptop, & monitor while not having daily driven a IPS device in 5 years.
Anyway, if you want to lessen eyestrain, you want light mode. Light text on a dark background blooms more and makes it harder to distinguish the characters.
I asked my optometrist about the best setting for viewing comfort, and she said black letters on white background. So I have that, except with a bit of tint, also following a theory that looking at certain colors affects moods.
>> Light text on a dark background blooms more and makes it harder to distinguish the characters.
> I asked my optometrist about the best setting for viewing comfort, and she said black letters on white background
I did some reading before I started using light themes, and the theory agrees with your optometrist, especially for astigmatism.
However, after getting an OLED screen, my experience didn't match the theory anymore: I could make the dark theme more comfortable with basic settings.
So I went back to check the research and I noticed it was not correctly controlling for ambient illumination and for the screen brightness.
I call that the 3 deltas:
- the 1st delta is between ambient brightness and the screen background color,
- the 2nd delta is between the screen background and the foreground color,
- the 3rd delta is between the ambient screen brightness and the screen foreground color.
In a dark room (at night), if you use a dark theme with a pitchblack background (as possible on an OLED screen) with a foreground of white text, it will NOT be comfortable if you leave the full brightness (usually 400 to 600 nits)
However, an OLED screen gives you precise control over the brightness: reduce it and you'll see it's possible to make the characters easier to distinguish on a dark theme than on a light theme.
I have scripts to do color inversion and different correction filters. I even have a shortcut for each, to reduce friction and try different settings for different conditions: I can go from a dark theme to a light theme in about 200ms, so I just go "click click click" on the keyboard until I find what conditions "clicks" with me :)
Unless I'm sitting in a very well light place (that I consider too bright for my preferences), I'm more often with the dark theme.
I'd encourage you to take into consideration the 3 deltas and try by yourself a dark theme while doing brightness control +- color filters, or at least to check the research (ask GPT!) your optometrist recommendation is based on.
Hyperlinks to scripts? I’ve been wanting to do something similar for ages for those few occasions where ambient sunlight really wanted me moving to something that wasn’t a dark. It seemed like quite a bit of work since, like you, more often than not, I’m not in that sort of environment.
I have no nice release but on hyprland, I use the following to increase /sys/class/backlight/intel_backlight/brightness by steps of +- 200 units that I calibrated with my eyeballs and /sys/class/backlight/intel_backlight/max_brightness:
The script is just reading /sys/class/backlight/intel_backlight/brightness and writing back the same value +- 200
The most important is what plays with that: color inversion, red shift, contrast increase, so install gammarelay-rs and wl-gammactl then do key mappings.
The contrast increase is a nice feature to avoid trimming low contrast element (ex: light key text on a grey background), before moving to use exclusively red on black ("submarine" night mode)
# alt= dark red nightmode
# WARNING conflict betweel wl-gammarelay-rs and wl-gammactl: before using one, must killall the other first
# So unconditionally kill the other before running commands
> I’ve been wanting to do something similar for ages for those few occasions where ambient sunlight really wanted me moving to something that wasn’t a dark.
If it's a rare occasion, you must use a dark theme by default, so I would do
- first Ctrl+Printscreen to try to increase the constrast of your back theme: it's rare and counterintuitive, but if you have no reflections on the screen, it can help in the sun
- if it's not enough cancel it by another Ctrl+PrintScreen, then Shift+Printscreen to toggle the inverted mode
- then Fn F5 (which causes XF86MonBrightnessDown on by thinkpad) to reduce the brightness until you like it
If works best if you have OS-wide theme toggle. I use 2 terminals with different themes because unlike on Windows Terminal, on Linux the hot toggles of colors themes for Terminals isn't working so well.
If you have a brightness sensor (often in the keyboard, for color calibration on thinkpads, or in the webcam housing for balance adjustement), you could do much better: record in a sqlite database the timestamps, the brightness value, and your actions (ex: reducing lightness +400)
After a few days of collecting metrics, you should be able to calibrate a default reponse that would change with your habits: imagine pressing a key and reproducing your modal reponse to this kind of ambiant brightness (this theme, that brightness, this color filter...)
Those muddy dark greys are actually there for purposefully lowering the contrast, to prevent fatigue. It takes a while to accommodate to lesser contrast, but once you do it, you will likely never want the pure blacks back, unless you will also make the foreground colors darker to compensate for it.
Regarding OLEDs, I’ve gotten the best 31.5” professional grade OLED display, and sent it back, because of the flickering (due to pixels changing state) in low light/brightness conditions. It got me tired very fast (30 minutes) while working at night.
Very happy with a Black IPS panel now.