Fix Infinix Air Pro+ Screen Color
Fixing Infinix Air Pro+ washed out screen color in Windows and Linux
The Infinix Air Pro+ has a 2.5K OLED panel — one of the reasons I picked it. It also has a firmware quirk: drop the brightness below ~50%, let the display sleep, and when it wakes up the colors look washed out. Flat blacks, muddy shadows. Crank brightness above 50% and everything snaps back. Drop it again and the blacks stay correct.
The fix: briefly spike the brightness above 50% on every screen wake, then restore the original level. Two scripts, one trigger — covered for both Windows and Linux.
Windows
The Windows approach uses Event Viewer to catch the screen wake event and NirCmd to control brightness.
Catching the screen wake event
The right event is Kernel-Power, event ID 507 — fires when the display turns back on.
The script
# Infinix Air Pro Plus suffers from washed out colors# after the display goes off and back on if the brightness is below 50%.# This script will increase the brightness to 60% when initial brightness# is below 50% else it will increase 10% from current brightness and turn# back to initial brightness value.
# Path to NirCmd executable$nircmd = "C:\nircmd-x64\nircmd.exe"
# Function to temporarily adjust brightnessfunction Adjust-Brightness { param ( [int]$InitialBrightness, [int]$TargetBrightness )
# Set brightness to target & $nircmd "setbrightness" $TargetBrightness Start-Sleep -Seconds 2
# Restore to initial brightness & $nircmd "setbrightness" $InitialBrightness}
# Dummy current brightness (replace this with actual detection logic if available)$currentBrightness = (Get-CimInstance -Namespace root/WMI -ClassName WmiMonitorBrightness).CurrentBrightness
if ($currentBrightness -lt 50) { # If brightness is below 50%, temporarily set to 60 Adjust-Brightness -InitialBrightness $currentBrightness -TargetBrightness 60} else { # Otherwise, increase brightness by 10% $newBrightness = [Math]::Min($currentBrightness + 10, 100) Adjust-Brightness -InitialBrightness $currentBrightness -TargetBrightness $newBrightness}Scheduling it
Use Task Scheduler to run the script whenever the Kernel-Power 507 event fires. You can import this task directly — just update the script path and change the author to YOUR_PC_NAME\YOUR_USERNAME.
Linux
This guide uses systemd. Adjust accordingly if you’re on a different init system.
Catching the screen wake event
acpi and udev didn’t yield a reliable screen-on event. The approach that works: poll /sys/class/drm/card1-eDP-1/dpms, which switches between On and Off as the display state changes.
The scripts
#!/bin/bash# monitor /sys/class/drm/card1-eDP-1/dpms value# place it to /usr/local/bin/monitor_screen_power.sh
prev_state=""
while true; do state=$(cat /sys/class/drm/card1-eDP-1/dpms)
if [[ "$state" != "$prev_state" && "$state" == "On" ]]; then echo "Screen turned on! Running script..." /usr/local/bin/brightness_fix.sh fi
prev_state=$state sleep 1 # Adjust polling interval as neededdone#!/bin/bash# adjust the brightness# place it to /usr/local/bin/brightness_fix.sh
# Path to brightness control (may vary based on hardware, check /sys/class/backlight/)BRIGHTNESS_PATH="/sys/class/backlight/intel_backlight/brightness"MAX_BRIGHTNESS_PATH="/sys/class/backlight/intel_backlight/max_brightness"
# Read current brightnessCURRENT_BRIGHTNESS=$(cat "$BRIGHTNESS_PATH")MAX_BRIGHTNESS=$(cat "$MAX_BRIGHTNESS_PATH")
# Convert brightness levels to percentageCURRENT_PERCENT=$(( CURRENT_BRIGHTNESS * 100 / MAX_BRIGHTNESS ))
# Function to set brightness based on percentageset_brightness() { local TARGET_PERCENT=$1 local TARGET_BRIGHTNESS=$(( TARGET_PERCENT * MAX_BRIGHTNESS / 100 )) echo $TARGET_BRIGHTNESS | sudo tee "$BRIGHTNESS_PATH" > /dev/null}
# Adjust brightness logicif [ "$CURRENT_PERCENT" -lt 50 ]; then set_brightness 60 sleep 0.5 set_brightness "$CURRENT_PERCENT"else TARGET_PERCENT=$(( CURRENT_PERCENT + 10 )) if [ "$TARGET_PERCENT" -gt 100 ]; then TARGET_PERCENT=100 fi set_brightness "$TARGET_PERCENT" sleep 0.5 set_brightness "$CURRENT_PERCENT"fiSetting up the systemd services
Create /etc/systemd/system/brightness-fix.service to run the monitor script:
[Unit]Description=Fix screen brightness on wakeAfter=multi-user.target
[Service]ExecStart=/usr/local/bin/monitor_screen_power.shRestart=alwaysUser=user
[Install]WantedBy=multi-user.targetAnd /etc/systemd/system/brightness-fix-wakeup.service to run the fix after suspend:
[Unit]Description=Fix screen brightness after wakeupAfter=suspend.target
[Service]Type=oneshotExecStart=/usr/local/bin/brightness_fix.sh
[Install]WantedBy=suspend.targetEnable and start:
sudo systemctl daemon-reloadsudo systemctl enable brightness-fix.servicesudo systemctl enable brightness-fix-wakeup.servicesudo systemctl start brightness-fix.serviceAlso add /usr/local/bin/brightness_fix.sh to autostart so it runs on login — KDE’s Autostart settings handle this.