Table of Contents#
- Understanding the Redshift Flickering Issue
- Common Causes of Flickering
- Step-by-Step Solutions
- Solution 1: Update Redshift to the Latest Version
- Solution 2: Fix Redshift Configuration Errors
- Solution 3: Resolve Conflicts with Multiple Redshift Instances
- Solution 4: Address Display Manager/Desktop Environment Conflicts
- Solution 5: Troubleshoot Graphics Driver Issues
- Solution 6: Use Alternative Tools (Gammastep)
- Troubleshooting with Verbose Logs
- Conclusion
- References
Understanding the Redshift Flickering Issue#
Redshift flickering typically manifests as rapid, unintended changes in screen color temperature—often switching between "day" (cool, blue) and "night" (warm, amber) modes within seconds. The Redshift icon in the system tray may also toggle on/off repeatedly. This issue commonly occurs:
- At startup or login.
- After waking the system from sleep/hibernation.
- Randomly during extended use.
The root cause usually lies in misconfiguration, outdated software, or conflicts with system components like graphics drivers or the desktop environment.
Common Causes of Flickering#
To fix the issue, first identify its source. Here are the most likely culprits:
1. Outdated Redshift Version#
Ubuntu 16.04 LTS (Xenial Xerus) reached end-of-life (EOL) in April 2021. Its default repositories include Redshift 1.10, which is over 8 years old and contains known bugs (e.g., location detection failures, gamma adjustment glitches).
2. Misconfigured Redshift Settings#
Redshift relies on a configuration file (~/.config/redshift.conf) to define location, time zones, and color temperature rules. Missing or incorrect settings (e.g., undefined latitude/longitude, conflicting time ranges) can cause it to toggle unpredictably.
3. Conflicting Processes#
Redshift may run multiple instances (e.g., started manually and via systemd/Upstart), leading to competing color temperature adjustments.
4. Desktop Environment/Display Manager Interference#
Ubuntu 16.04 uses the Unity desktop by default. Unity’s compositor or hardware acceleration can conflict with Redshift’s gamma adjustments, especially on systems with NVIDIA/AMD graphics.
5. Faulty Graphics Drivers#
Proprietary drivers (e.g., NVIDIA’s nvidia-340 or AMD’s fglrx) often clash with Redshift, as they handle color management differently than open-source alternatives (e.g., nouveau for NVIDIA).
Step-by-Step Solutions#
Solution 1: Update Redshift to the Latest Version#
Older Redshift versions have critical bugs. Update to a newer release (even on EOL Ubuntu 16.04) using these methods:
Option A: Use APT (If Repositories Still Work)#
Ubuntu 16.04’s official repos may not have updates, but run these commands to check:
sudo apt update && sudo apt upgrade redshift redshift-gtkOption B: Compile from Source (More Reliable for EOL Systems)#
If APT fails, compile the latest Redshift (v1.12 or newer) from source:
-
Install dependencies:
sudo apt install git build-essential autoconf automake libtool pkg-config libdrm-dev libxcb1-dev libxcb-randr0-dev libglib2.0-dev libgeoclue0-dev -
Clone the Redshift GitHub repo:
git clone https://github.com/jonls/redshift.git cd redshift -
Compile and install:
autoreconf -i ./configure --enable-gui make sudo make install -
Verify installation:
redshift --version # Should show v1.12+
Solution 2: Fix Redshift Configuration Errors#
A misconfigured redshift.conf is the most common cause of flickering. Let’s audit and repair it:
Step 1: Locate the Configuration File#
Redshift uses ~/.config/redshift.conf (user-specific) or /etc/redshift.conf (system-wide). If missing, create it:
nano ~/.config/redshift.confStep 2: Add/Edit Critical Settings#
Paste this template and adjust values for your location/time zone:
[redshift]
temp-day=6500K # Cool temperature for daytime (6000K-6500K)
temp-night=3200K # Warm temperature for night (2700K-3500K)
transition=1 # Smooth transition (0 = instant, 1 = gradual)
gamma=1.0:1.0:1.0 # Default gamma (adjust if screen is too dim/bright)
location-provider=manual # Use manual location (avoids geoclue bugs)
adjustment-method=randr # Use X RandR for display control (most reliable)
[manual]
lat=40.7128 # Your latitude (e.g., New York = 40.7128)
lon=-74.0060 # Your longitude (e.g., New York = -74.0060)- Why this works: Defining
lat/lonensures Redshift knows when to switch between day/night modes. Usingrandravoids conflicts with other adjustment methods.
Step 3: Test the Configuration#
Restart Redshift and check for flickering:
killall redshift-gtk # Stop all running instances
redshift-gtk & # Restart with GUISolution 3: Resolve Conflicts with Multiple Redshift Instances#
Redshift may flicker if multiple processes run simultaneously. Fix this by:
-
Killing all active Redshift instances:
pkill redshift pkill redshift-gtk -
Checking if Redshift is started automatically (e.g., via systemd):
systemctl --user status redshift # For systemd usersIf active, disable auto-start to prevent conflicts:
systemctl --user disable redshift -
Restart Redshift manually:
redshift-gtk &
Solution 4: Address Display Manager/Desktop Environment Conflicts#
Unity (Ubuntu 16.04’s default DE) or its compositor may interfere with Redshift. Try these fixes:
Disable Unity Hardware Acceleration#
- Open "System Settings" → "Appearance" → "Behavior" tab.
- Under "Window animations", uncheck "Enable animations".
- Log out and back in, then restart Redshift.
Adjust Compositor Settings#
If animations are critical, tweak Unity’s compositor:
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ vsync 'none'Note: Disabling vsync may cause screen tearing, but it often resolves Redshift conflicts.
Solution 5: Troubleshoot Graphics Driver Issues#
Graphics drivers are a frequent culprit. Test these fixes based on your GPU:
For NVIDIA Users#
-
Switch to Open-Source Drivers: Proprietary NVIDIA drivers (e.g.,
nvidia-340) often clash with Redshift. Usenouveau(open-source) instead:sudo apt purge nvidia-* # Remove proprietary drivers sudo apt install xserver-xorg-video-nouveau # Install nouveau sudo reboot -
Update Proprietary Drivers: If
nouveauis too slow, install the latest NVIDIA driver for 16.04 (e.g.,nvidia-390):sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-390 sudo reboot
For AMD/Intel Users#
- Intel and AMD GPUs typically work better with open-source drivers. Ensure
xserver-xorg-video-intel(Intel) orxserver-xorg-video-amdgpu(AMD) are installed:sudo apt install xserver-xorg-video-intel # Intel # OR sudo apt install xserver-xorg-video-amdgpu # AMD
Solution 6: Use Alternative Tools (Gammastep)#
If Redshift still flickers, try Gammastep—a modern fork of Redshift with better EOL support:
-
Compile Gammastep from source (Ubuntu 16.04 compatible):
sudo apt install git build-essential meson ninja-build pkg-config libdrm-dev libxcb1-dev libglib2.0-dev libgeoclue-2-dev git clone https://github.com/cimbali/gammastep.git cd gammastep meson build ninja -C build sudo ninja -C build install -
Run Gammastep:
gammastep-gtk &
Gammastep fixes many Redshift bugs and supports newer display protocols.
Troubleshooting with Verbose Logs#
If issues persist, run Redshift in verbose mode to identify errors:
redshift -v # Runs Redshift with detailed logsLook for these common errors:
Failed to get location: Fix by settinglat/loninredshift.conf.Adjustment method randr failed to apply settings: Reinstall graphics drivers.Multiple instances detected: Kill all Redshift processes (see Solution 3).
Conclusion#
Redshift flickering on Ubuntu 16.04 is fixable with a mix of updates, configuration tweaks, and driver adjustments. Start with updating Redshift and fixing redshift.conf, then move to resolving process conflicts or driver issues. For persistent problems, Gammastep offers a reliable alternative.
Note: Ubuntu 16.04 is EOL and unsupported. For long-term stability, consider upgrading to a newer LTS release (e.g., 20.04 or 22.04).