guidox / Hardware

Fix Blurry Text with Per-App DPI Scaling Overrides

TL;DR

Open the executable's **Properties > Compatibility > Change high DPI settings**, tick **Override high DPI scaling behavior** and try **System** or **System (Enhanced)**. Verify with the process's DPI awareness.

Before you start

Requirements

  • A high-DPI display
  • The blurry app
  • 10 minutes
Step by step

Instructions

01

Confirm the display scaling and the app

Blurriness comes from a mismatch between the app's DPI awareness and the desktop scale. Both values are readable before you change anything.

Get-ItemProperty 'HKCU:\Control Panel\Desktop\PerMonitorSettings\*' -ErrorAction SilentlyContinue | Select-Object PSChildName,DpiValue
Get-ItemProperty 'HKCU:\Control Panel\Desktop' | Select-Object LogPixels,Win8DpiScaling
Get-Process app | Select-Object Id,Path
02

Check what the app declares

The manifest names the awareness mode: **dpiAware true** means system aware, **PerMonitorV2** means fully aware. An app with no entry is unaware and gets bitmap stretching.

Get-Content "C:\Program Files\App\app.exe.manifest" -ErrorAction SilentlyContinue | Select-String -Pattern 'dpiAware|dpiAwareness'
Get-Item "C:\Program Files\App\app.exe" | Select-Object VersionInfo | Format-List
03

Apply the compatibility override

The compatibility tab writes the mode into the per-user AppCompatFlags key. **System** keeps the app at system DPI, **System (Enhanced)** lets Windows scale the window bitmap for sharper text on some apps.

reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\App\app.exe" /t REG_SZ /d "~ HIGHDPIAWARE" /f
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers'
tipThe same value is written by the checkbox in Properties. Use the UI when you are unsure which mode fits; the registry is for scripting many machines.
04

Try the alternative modes in order

There is no single correct mode. System first, then System (Enhanced), then Application if the app supports it. Restart the app after each change because the flag is read at process start.

# HIGHDPIAWARE        = System
# HIGHDPIAWARE + GDI  = System (Enhanced)
# DPIUNAWARE         = Application
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\App\app.exe" /t REG_SZ /d "~ GDIDPISCALING HIGHDPIAWARE" /f
Start-Process "C:\Program Files\App\app.exe"
05

Fix only the text when the layout is fine

Windows' font size setting and the app's own font setting are separate from DPI. A larger font in the app solves a small-text complaint without touching scaling at all.

Start-Process ms-settings:display
Start-Process ms-settings:easeofaccess-textsize
Get-ItemProperty 'HKCU:\Software\Microsoft\Accessibility' | Select-Object TextScaleFactor
06

Verify and record the result

The window should be sharp at 100 percent zoom, and the app should report the correct monitor DPI. Note which of the three modes worked, because a reinstall can drop the flag.

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Screen]::PrimaryScreen.Bounds
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers' | Select-Object -Property * -ExcludeProperty PS*
Get-Process app | Select-Object Id,Path,MainWindowTitle
Troubleshooting

Common issues

The app is sharp but tiny

HIGHDPIAWARE renders at true system DPI without scaling. Remove the flag and use System (Enhanced) or increase the app's font size instead.

The override has no effect

The app is launching through a launcher or a shortcut with its own flags. Set the flag on the real executable path from Get-Process.

Menus are cut off after the change

The layout assumes a different scale. Switch back to Application mode, or set the display to 100 percent for that app's session.

Only one monitor looks wrong

The app is system aware and follows the primary display. Per-monitor behaviour needs PerMonitorV2 support inside the app.

FAQ

Frequently asked

Does the override affect other users?

No, it lives in HKCU. Each account sets its own per-app flags.

Why does the blurriness appear only on a second monitor?

Mixed DPI displays force Windows to scale a system-aware window. Move that app to the primary display or use per-monitor awareness.

Is a manifest edit better?

It is cleaner but changes the signed file, which can break an update. The compatibility flag is reversible and survives most updates.

How to undo this

Delete the Layers value for the executable with reg delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\App\app.exe" /f, then restart the app.

Changelog · 1 entry
  1. 2026-11-01
    First version
Interactive version: checklist, feedback, related guides →

Free · no account needed · tracks your progress