- Edited
Greetings, my fellow Linux eye strain sufferers!
For almost a month I’ve been frantically trying various distributions, DE, WM, kernel and xorg options, and even hardware.
I think I managed to get Linux desktop if not as good for my eyes as Windows but at least good enough to use it everyday. Let me share what I did, what worked for me and what not (but might work for you). I hope not until next update breaks something.
0. I use Arch Linux with KDE.
I have not found any significant differences in major distributions regarding eye strain.
Well, probably Fedora 35 with Gnome/Wayland was a little bit better. Ubuntu and its derivatives seemed a little bit worse for me.
1. My desktop is equipped with Intel UHD graphics 630.
I guess that Intel graphics is especially known for causing eye strain in Linux. You look at the screen and at first glance it is fine, but then you feel that your eyes actually can not focus on the screen and tension starts growing around your eyes. Use computer a little bit more and you are set with a terrible headache.
What really helped me was to disable hardware acceleration.
Create a file /etc/X11/xorg.conf.d/00-Intel.conf :
$$
Section "Device"
Identifier "Card0"
Driver "intel"
#Specify your actual BusID. Use lspci command
BusID "PCI:0:2:0"
Option "NoAccel" "true"
#This may or may not work
#Option "AccelMethod" "uxa"
Option "DRI" "false"
#Some options to prevent tearing
Option "TearFree" "true"
Option "TripleBuffer" "true"
EndSection
Section "Extensions"
Option "GLX" "disable"
EndSection
$$
Instead of disabling hardware acceleration, you may want to try UXA legacy acceleration method. In this case use Option "AccelMethod" "uxa" instead of Option "NoAccel" "true". I’m not sure that it will not cause any eye strain though.
I also use some more options in the “Device” section. They are not helpful probably, but they absolutely do not harm:
Option "XvPreferOverlay" "false"
Option "SwapbuffersWait" "false"
Option "ForceEnablePipeA" "true"
Option "LVDS24Bit" "true"
Option "LVDSFixedMode" "false"
Some people also advise to delete all *.so files from /usr/lib/xorg/modules/
. It did not make any significant difference to me and seems kind of too harsh.
2. I tried all possible i915 kernel command line and kernel module options and could not find any that have any significant impact on the eye strain.
I do use, though i915.enable_psr=0
in kernel command line and the following line in /etc/modprobe.d/i915.conf
options i915 modeset=1 enable_guc=2 enable_dc=0 lvds_channel_mode=1 disable_power_well=1 edp_vswing=2 enable_dpcd_backlight=0
Most likely these options are not necessary.
3. I tried the cheapest videocard I could find – NVIDIA GT 730.
I guess it made a difference, especially with a “ForceCompositionPipeline
” option.
I still decided to go back to Intel though, as it was fine with the options described above.
4. Stock fonts seemed to look good, but it turned out they were contributing in the eye strain too.
I installed stock windows 10 fonts and set up Segoe UI as my general font in KDE settings.
I took my ~/.fonts.conf file here : https://gist.github.com/olegslavkin/bd580bb57ce25cb02e13
Be sure to install all required fonts before.
Not sure what magic happened, but it worked wonders for me! Fonts definitely become more clear and eye strain decreased drastically.
5. Stock Linux display gamma differs from Windows gamma.
Linux font looks darker on the screen while Windows fonts are in fact more grey-ish.
This additional contrast may also contribute to the eye strain.
I increased gamma to 1.10 and fooled around with brightness/contrast monitor settings.
I guess that helped a little bit.
I also discovered my white color was a little bit off. My Hp e273q monitor allows to set various color levels manually. I use Red 253, Green 234, Blue 234. These numbers won’t likely help you, but you get the idea.
6. Some browser adjustments.
Some people say hardware acceleration and smooth scrolling may contribute to eye strain.
I disabled these options just to be safe.
Update after 3 weeks using Arch. I decided to migrate back to Neon. Fonts in Neon are probably better for my eyes. I also disabled hinting and sub-pixel rendering.