You can't distinguish the red error bar from the green data series
You are reviewing a chart in LibreOffice Calc or scanning a terminal full of syntax highlighting. The red trend line merges with the green background. The error messages in your IDE wash out into the same hue as the comments. The colors aren't broken. Your perception needs a different mapping.
Fedora Workstation includes system-wide color filters to remap the display spectrum. These filters run inside the GNOME compositor, correcting colors before the frame buffer hits your monitor. You do not need to patch individual applications. The compositor applies the transformation to every window, video stream, and terminal session.
How the filter pipeline works
GNOME Shell uses Mutter as the display compositor. When you enable a color filter, the settings daemon injects a transformation matrix into the rendering pipeline. The matrix shifts specific color channels to increase separation between hues that are hard to distinguish.
The filter operates after applications render their pixels. This means the correction is consistent across the entire desktop. A browser tab, a video player, and a terminal emulator all receive the same color mapping. The compositor handles the math, so you get uniform results without configuring each app separately.
Convention aside: gsettings is the safe interface for these changes. The dconf database stores the values, but gsettings validates inputs against the schema. Always use gsettings to avoid corrupting the configuration with invalid types.
Enable and configure filters from the terminal
The GUI in Settings → Accessibility → Seeing works for quick toggles. The terminal gives you precise control over the profile and intensity, and it lets you script the configuration for multiple machines.
Here's how to disable Night Light, enable the filter, and set the correction profile. Night Light shifts the entire spectrum toward amber to reduce blue light. Running Night Light alongside color filters can distort the correction and make colors muddy. Disable it first.
# Disable Night Light to prevent spectral interference.
# Night Light applies a temperature shift that conflicts with color blindness matrices.
gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled false
# Enable the accessibility color filter pipeline.
# This flag activates the filter logic in the settings daemon.
gsettings set org.gnome.desktop.a11y.display color-blindness-correction true
# Set the correction profile.
# 'deuteranopia' targets green-red confusion, the most common form of color vision deficiency.
# Other valid values: protanopia, tritanopia, achromatopsia, none.
gsettings set org.gnome.desktop.a11y.display color-blindness-type 'deuteranopia'
The filter types map to specific vision deficiencies:
- Deuteranopia: Difficulty distinguishing green from red. The filter shifts the green channel to separate it from red.
- Protanopia: Difficulty distinguishing red from green. The filter adjusts the red channel intensity and hue.
- Tritanopia: Difficulty distinguishing blue from yellow. The filter remaps the blue-yellow axis.
- Achromatopsia: Complete color blindness. The filter converts the display to greyscale based on luminance.
Adjust filter strength
The full correction profile can be too aggressive for some users. GNOME exposes a shift parameter to dial in the intensity. The value controls how far the color matrix moves toward the target correction.
# Adjust the intensity of the color shift.
# 0.0 applies no shift. 1.0 applies the maximum correction defined by the profile.
# A value of 0.7 is often a good starting point for subtle correction without washing out details.
gsettings set org.gnome.desktop.a11y.display color-blindness-shift 0.7
Start at 0.7 and adjust in increments of 0.1. A value of 1.0 can oversaturate certain channels and reduce contrast in others. Find the point where the colors separate without losing texture.
Assign a keyboard shortcut
Toggling the filter via the terminal every time is tedious. GNOME supports a dedicated accessibility shortcut. You can configure it from the terminal to match your muscle memory.
# Check the current keyboard shortcut for toggling color filters.
# An empty list means no shortcut is assigned.
gsettings get org.gnome.desktop.a11y.keybindings toggle-color-filters
# Assign a custom shortcut, for example Control+Alt+C.
# The value must be a list of strings, even for a single shortcut.
gsettings set org.gnome.desktop.a11y.keybindings toggle-color-filters "['<Control><Alt>c']"
Press the shortcut to toggle the filter on and off. The shortcut respects the current shift value and profile. It flips the color-blindness-correction boolean without changing the type.
Verify the configuration
Always confirm the settings took effect. The compositor reads the values from the settings daemon, but a typo in the schema name can leave the filter disabled.
# Verify the active configuration.
# The output should match the values you just set.
gsettings get org.gnome.desktop.a11y.display color-blindness-correction
gsettings get org.gnome.desktop.a11y.display color-blindness-type
gsettings get org.gnome.desktop.a11y.display color-blindness-shift
Run gsettings get to confirm. The terminal output is the truth. If the values don't match, check for typos in the schema path or key name.
Common pitfalls and error patterns
Night Light interference: If you enable Night Light after setting up color filters, the amber tint will override the correction. The display will look orange and the color separation will degrade. Keep Night Light disabled when using color filters.
Wayland and xcalib: The original input mentions xcalib for custom gamma curves. xcalib communicates directly with the X server to modify the gamma ramp. Fedora Workstation uses Wayland by default. Wayland's security model prevents applications from modifying the global color matrix or gamma ramp. xcalib will fail silently or refuse to run on Wayland. Stick to GNOME filters on Wayland. If you absolutely need xcalib, you must switch to an X11 session at the login screen, which reduces security and performance.
Filter not applying immediately: The compositor caches the color matrix. If you change the profile and the screen doesn't update, log out and back in. A session restart forces the compositor to reload the filter state.
High Contrast vs Color Filter: High Contrast mode changes the theme to black and white with bold borders. It does not correct color perception. It helps users with low vision distinguish UI elements. Color filters correct hue mapping. They solve different problems. Do not confuse them.
Run gsettings get before you guess. The config is the source of truth.
When to use this vs alternatives
Use GNOME color filters when you need a system-wide correction for red-green or blue-yellow confusion. Use High Contrast mode when you need maximum luminance difference between UI elements and text, regardless of color accuracy. Use xcalib when you are running an X11 session and require precise gamma curve adjustments that GNOME profiles cannot express. Stick to the default GNOME profiles when you want a tested correction that works across all GNOME applications and Mutter compositing effects.
Log out and back in if the matrix doesn't update. The compositor caches the filter state.