How to Enable High Contrast and Large Text on Fedora

Enable High Contrast and Large Text on Fedora via Settings > Accessibility or gsettings commands.

You need the interface to adapt to your eyes

You migrated your workflow to Fedora and the default GNOME theme looks fine on your old monitor. Then you plug into a 4K display or sit in a sunlit room, and the text vanishes. Or you need high contrast for accessibility reasons and the Settings app feels like it's hiding the real controls. You need the interface to adapt to your eyes, not the other way around.

How GNOME handles text and contrast

GNOME separates the visual style from the text size. High contrast isn't just "darker colors." It swaps the entire theme to one with maximum luminance difference between text and background. Text scaling is a global multiplier. When you set the scaling factor to 1.5, GNOME tells every application to render fonts at 150% of their base size. Applications that respect the GTK settings will scale automatically. Applications that ignore GTK settings will stay small. This distinction matters when you troubleshoot why one app scaled and another didn't.

The settings live in the GSettings schema org.gnome.desktop.interface. The values are stored in the dconf database, which is a low-level key-value store. You interact with dconf through gsettings, which validates your input against the schema. If you try to write a string where a float is expected, gsettings rejects the command. Direct dconf writes skip validation and can corrupt the database if the type is wrong. Use gsettings for all interactive changes.

The multiplier applies everywhere GTK looks. If an app doesn't scale, it's not reading the multiplier.

Apply high contrast and scaling

Open the Settings application and select Accessibility from the sidebar. Toggle the High Contrast switch to enable the theme. Adjust the Text Size slider to increase the font multiplier. The changes apply immediately. You do not need to log out. If the terminal font didn't change, the terminal emulator is ignoring GTK hints.

For terminal control or scripting, use gsettings. The commands below set a 1.5x text scale and enable the high contrast theme. Adjust the factor value to match your needs. Values between 1.0 and 2.0 are standard. Values above 2.0 can break layout in poorly written applications.

# Set the global text scaling factor to 1.5x
# This affects GTK apps immediately without a logout
# Values are floats; 1.0 is default, 1.5 is 150%
gsettings set org.gnome.desktop.interface text-scaling-factor 1.5

# Enable high contrast theme
# GNOME swaps the active theme to a high-contrast variant
# This key expects the theme name string
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita:highcontrast'

# Force dark mode if high contrast alone isn't enough
# Some apps check this key for background color preference
# Valid values are 'default', 'prefer-light', 'prefer-dark'
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'

Changes apply immediately. You do not need to log out. If the terminal font didn't change, the terminal emulator is ignoring GTK hints.

Verify the configuration

Run gsettings get to confirm the values are stored correctly. The output should match what you set. If the value is correct but the screen looks wrong, the application is the problem, not the setting.

# Verify the current text scaling factor
# Output should be '1.5' or your custom value
gsettings get org.gnome.desktop.interface text-scaling-factor

# Verify the active theme
# Output should be 'Adwaita:highcontrast'
gsettings get org.gnome.desktop.interface gtk-theme

# Verify color scheme preference
# Output should be 'prefer-dark'
gsettings get org.gnome.desktop.interface color-scheme

Trust the output of gsettings get. If the value is set but the screen looks wrong, the application is the problem, not the setting.

Common pitfalls and overrides

Electron-based applications like Discord, Slack, and VS Code often ignore the GTK text-scaling-factor. They use their own internal zoom mechanism. You must pass a launch flag to force scaling. Qt applications also ignore GTK settings and use QT_SCALE_FACTOR. You need to set an environment variable for those.

# Launch Discord with forced scaling
# Electron apps ignore GTK text-scaling-factor by default
# This flag forces the device scale factor to match your GTK setting
discord --force-device-scale-factor=1.5

# Launch VS Code with forced scaling
# Code uses the same Electron flag
code --force-device-scale-factor=1.5

For Qt applications, export the environment variable in your shell profile or wrap the command. This applies to KDE apps running on GNOME or any Qt tool.

# Set environment variable for Qt apps
# Qt uses QT_SCALE_FACTOR instead of GTK settings
# Add this to your shell profile if you run Qt apps frequently
export QT_SCALE_FACTOR=1.5

# Launch a Qt app with the variable set
# This ensures the app respects the scaling factor
kate

To revert changes, use gsettings reset. This removes your override and restores the schema default. If you use set 1.0, you hardcode the value. Future Fedora updates might change the default, and a hardcoded override will drift from the system baseline.

# Reset text scaling to default
# Use 'reset' to revert to the schema default, usually 1.0
# This removes the user override completely
gsettings reset org.gnome.desktop.interface text-scaling-factor

# Restore default theme
# Removes the high contrast override
gsettings reset org.gnome.desktop.interface gtk-theme

# Restore default color scheme
gsettings reset org.gnome.desktop.interface color-scheme

Reset with gsettings reset, not by guessing the default value. Future updates might change the default, and a hardcoded override will drift.

Choose the right tool

Use the Settings app when you are making a one-time change and want to see the result instantly.

Use gsettings when you are scripting the configuration or need to apply the change across multiple machines.

Use application-specific zoom when a single app ignores the global GTK settings, such as Electron-based tools or web browsers.

Use dconf when you need to lock a setting for all users via a system-wide profile, though this requires editing /etc/dconf/profile/ and is rarely needed for personal desktop tweaks.

Pick the tool that matches the scope. GUI for quick tweaks. gsettings for control. App flags for outliers.

Where to go next