From c83be3e74c218189046f67f7284e79957f96ebe8 Mon Sep 17 00:00:00 2001
From: Gordon Lam <73506701+yeelam-gordon@users.noreply.github.com>
Date: Wed, 18 Jun 2025 00:08:54 -0700
Subject: [PATCH] User/yeelam/dpi fix (#40079)
## Summary of the Pull Request
This PR updates all application manifest files across the PowerToys
codebase to use **PerMonitorV2** DPI awareness, ensuring optimal
high-DPI display support on modern Windows systems.
## Changes Made
Updated **12 manifest files** to include proper PerMonitorV2 DPI
awareness:
### Files with New DPI Support Added:
- `src/runner/PowerToys.exe.manifest` - Added complete DPI awareness
section
- `src/modules/awake/Awake/app.manifest` - Upgraded from basic
`dpiAware` to PerMonitorV2
### Files Upgraded from PerMonitor to PerMonitorV2:
- `src/modules/colorPicker/ColorPickerUI/App.manifest`
- `src/modules/MouseWithoutBorders/App/MouseWithoutBorders.exe.manifest`
### Files Enhanced for Consistency:
- `src/modules/ShortcutGuide/ShortcutGuide/ShortcutGuide.exe.manifest`
- `src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest`
- All 5 cmdpal extension manifests
## Technical Implementation
All manifests now use the standardized format that provides:
1. **PerMonitorV2** as the primary DPI awareness mode for Windows 10
Anniversary Update and later
3. **`true/PM`** for backward compatibility with pre-Windows 10 systems
```xml
true/PM
PerMonitorV2, PerMonitor
```
## Screenshot for comparision:
Before:

After:

---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
---
.../PowerToys.Settings.DSC.Schema.Generator/app.manifest | 2 +-
src/modules/AdvancedPaste/AdvancedPaste/app.manifest | 2 +-
src/modules/FileLocksmith/FileLocksmithUI/app.manifest | 2 +-
src/modules/Hosts/Hosts/app.manifest | 2 +-
src/modules/MeasureTool/MeasureToolCore/app.manifest | 2 +-
src/modules/MeasureTool/MeasureToolUI/app.manifest | 2 +-
.../App/MouseWithoutBorders.exe.manifest | 1 +
.../ShortcutGuide/ShortcutGuide.exe.manifest | 1 +
src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest | 2 +-
src/modules/awake/Awake/app.manifest | 5 +++--
.../TemplateCmdPalExtension/app.manifest | 1 +
src/modules/cmdpal/Microsoft.CmdPal.UI/app.manifest | 1 +
.../cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest | 1 +
.../cmdpal/ext/ProcessMonitorExtension/app.manifest | 1 +
src/modules/cmdpal/ext/SamplePagesExtension/app.manifest | 1 +
src/modules/colorPicker/ColorPickerUI/App.manifest | 6 ++----
src/modules/launcher/PowerLauncher/app.manifest | 4 ++--
src/modules/peek/Peek.UI/app.manifest | 2 +-
.../poweraccent/PowerAccent.UI/PowerAccent.UI.csproj | 1 +
src/modules/poweraccent/PowerAccent.UI/app.manifest | 9 +++++++++
src/modules/powerrename/PowerRenameUILib/app.manifest | 2 +-
.../registrypreview/RegistryPreviewUILib/app.manifest | 2 +-
src/runner/PowerToys.exe.manifest | 7 +++++++
src/settings-ui/Settings.UI/app.manifest | 2 +-
24 files changed, 42 insertions(+), 19 deletions(-)
create mode 100644 src/modules/poweraccent/PowerAccent.UI/app.manifest
diff --git a/src/dsc/PowerToys.Settings.DSC.Schema.Generator/app.manifest b/src/dsc/PowerToys.Settings.DSC.Schema.Generator/app.manifest
index 9742e0b540..c5043e485d 100644
--- a/src/dsc/PowerToys.Settings.DSC.Schema.Generator/app.manifest
+++ b/src/dsc/PowerToys.Settings.DSC.Schema.Generator/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/modules/AdvancedPaste/AdvancedPaste/app.manifest b/src/modules/AdvancedPaste/AdvancedPaste/app.manifest
index 808075be8e..3f0eeb537f 100644
--- a/src/modules/AdvancedPaste/AdvancedPaste/app.manifest
+++ b/src/modules/AdvancedPaste/AdvancedPaste/app.manifest
@@ -16,7 +16,7 @@
1) Per-Monitor for >= Windows 10 Anniversary Update
2) System < Windows 10 Anniversary Update
-->
- PerMonitorV2, PerMonitor
+ PerMonitorV2
\ No newline at end of file
diff --git a/src/modules/FileLocksmith/FileLocksmithUI/app.manifest b/src/modules/FileLocksmith/FileLocksmithUI/app.manifest
index 575aa4df9d..6a4422b71b 100644
--- a/src/modules/FileLocksmith/FileLocksmithUI/app.manifest
+++ b/src/modules/FileLocksmith/FileLocksmithUI/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/modules/Hosts/Hosts/app.manifest b/src/modules/Hosts/Hosts/app.manifest
index ca937b4b2a..d60aec67f6 100644
--- a/src/modules/Hosts/Hosts/app.manifest
+++ b/src/modules/Hosts/Hosts/app.manifest
@@ -10,7 +10,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/modules/MeasureTool/MeasureToolCore/app.manifest b/src/modules/MeasureTool/MeasureToolCore/app.manifest
index 1292107c7f..43d75e11a1 100644
--- a/src/modules/MeasureTool/MeasureToolCore/app.manifest
+++ b/src/modules/MeasureTool/MeasureToolCore/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/modules/MeasureTool/MeasureToolUI/app.manifest b/src/modules/MeasureTool/MeasureToolUI/app.manifest
index 908d7af1a8..17f567bf50 100644
--- a/src/modules/MeasureTool/MeasureToolUI/app.manifest
+++ b/src/modules/MeasureTool/MeasureToolUI/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/modules/MouseWithoutBorders/App/MouseWithoutBorders.exe.manifest b/src/modules/MouseWithoutBorders/App/MouseWithoutBorders.exe.manifest
index 63feb1d04f..30503d0fa8 100644
--- a/src/modules/MouseWithoutBorders/App/MouseWithoutBorders.exe.manifest
+++ b/src/modules/MouseWithoutBorders/App/MouseWithoutBorders.exe.manifest
@@ -56,6 +56,7 @@
true/PM
+ PerMonitorV2
diff --git a/src/modules/ShortcutGuide/ShortcutGuide/ShortcutGuide.exe.manifest b/src/modules/ShortcutGuide/ShortcutGuide/ShortcutGuide.exe.manifest
index 68d17e1db8..4747d3bd23 100644
--- a/src/modules/ShortcutGuide/ShortcutGuide/ShortcutGuide.exe.manifest
+++ b/src/modules/ShortcutGuide/ShortcutGuide/ShortcutGuide.exe.manifest
@@ -2,6 +2,7 @@
+ true/PM
PerMonitorV2
diff --git a/src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest b/src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest
index 17abe5f212..f0fd786341 100644
--- a/src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest
+++ b/src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest
@@ -29,7 +29,7 @@
- per monitor
+ true/PM
PerMonitorV2
diff --git a/src/modules/awake/Awake/app.manifest b/src/modules/awake/Awake/app.manifest
index a3d1e52638..f76cb80bec 100644
--- a/src/modules/awake/Awake/app.manifest
+++ b/src/modules/awake/Awake/app.manifest
@@ -1,8 +1,9 @@
-
- true
+
+ true/PM
+ PerMonitorV2
\ No newline at end of file
diff --git a/src/modules/cmdpal/ExtensionTemplate/TemplateCmdPalExtension/TemplateCmdPalExtension/app.manifest b/src/modules/cmdpal/ExtensionTemplate/TemplateCmdPalExtension/TemplateCmdPalExtension/app.manifest
index 930a1b5cfa..88d3cd6aaf 100644
--- a/src/modules/cmdpal/ExtensionTemplate/TemplateCmdPalExtension/TemplateCmdPalExtension/app.manifest
+++ b/src/modules/cmdpal/ExtensionTemplate/TemplateCmdPalExtension/TemplateCmdPalExtension/app.manifest
@@ -13,6 +13,7 @@
+ true/PM
PerMonitorV2
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/app.manifest b/src/modules/cmdpal/Microsoft.CmdPal.UI/app.manifest
index 0cd29eccd5..f5dd7ff036 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/app.manifest
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/app.manifest
@@ -13,6 +13,7 @@
+ true/PM
PerMonitorV2
diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest
index bcafb9bc5b..16492c3b79 100644
--- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest
+++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest
@@ -13,6 +13,7 @@
+ true/PM
PerMonitorV2
diff --git a/src/modules/cmdpal/ext/ProcessMonitorExtension/app.manifest b/src/modules/cmdpal/ext/ProcessMonitorExtension/app.manifest
index a620209321..cf7490b1cb 100644
--- a/src/modules/cmdpal/ext/ProcessMonitorExtension/app.manifest
+++ b/src/modules/cmdpal/ext/ProcessMonitorExtension/app.manifest
@@ -13,6 +13,7 @@
+ true/PM
PerMonitorV2
diff --git a/src/modules/cmdpal/ext/SamplePagesExtension/app.manifest b/src/modules/cmdpal/ext/SamplePagesExtension/app.manifest
index 6a7c7d68a7..13894ddf39 100644
--- a/src/modules/cmdpal/ext/SamplePagesExtension/app.manifest
+++ b/src/modules/cmdpal/ext/SamplePagesExtension/app.manifest
@@ -13,6 +13,7 @@
+ true/PM
PerMonitorV2
diff --git a/src/modules/colorPicker/ColorPickerUI/App.manifest b/src/modules/colorPicker/ColorPickerUI/App.manifest
index 94b792d3fe..c99f120d43 100644
--- a/src/modules/colorPicker/ColorPickerUI/App.manifest
+++ b/src/modules/colorPicker/ColorPickerUI/App.manifest
@@ -52,10 +52,8 @@
- true
-
- PerMonitor
-
+ true/PM
+ PerMonitorV2
diff --git a/src/modules/launcher/PowerLauncher/app.manifest b/src/modules/launcher/PowerLauncher/app.manifest
index fb9b15e291..88e30f9f32 100644
--- a/src/modules/launcher/PowerLauncher/app.manifest
+++ b/src/modules/launcher/PowerLauncher/app.manifest
@@ -52,8 +52,8 @@
- true
- PerMonitorV2, PerMonitor
+ true/PM
+ PerMonitorV2
diff --git a/src/modules/peek/Peek.UI/app.manifest b/src/modules/peek/Peek.UI/app.manifest
index 122bedce24..e45d3c1982 100644
--- a/src/modules/peek/Peek.UI/app.manifest
+++ b/src/modules/peek/Peek.UI/app.manifest
@@ -19,7 +19,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
true
diff --git a/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj b/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj
index 291a2a8c17..217b437e95 100644
--- a/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj
+++ b/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj
@@ -9,6 +9,7 @@
true
True
icon.ico
+ app.manifest
PowerToys.PowerAccent
True
PowerAccent.UI.Program
diff --git a/src/modules/poweraccent/PowerAccent.UI/app.manifest b/src/modules/poweraccent/PowerAccent.UI/app.manifest
new file mode 100644
index 0000000000..4747d3bd23
--- /dev/null
+++ b/src/modules/poweraccent/PowerAccent.UI/app.manifest
@@ -0,0 +1,9 @@
+
+
+
+
+ true/PM
+ PerMonitorV2
+
+
+
\ No newline at end of file
diff --git a/src/modules/powerrename/PowerRenameUILib/app.manifest b/src/modules/powerrename/PowerRenameUILib/app.manifest
index 8554f867e0..a5c3bbd209 100644
--- a/src/modules/powerrename/PowerRenameUILib/app.manifest
+++ b/src/modules/powerrename/PowerRenameUILib/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/modules/registrypreview/RegistryPreviewUILib/app.manifest b/src/modules/registrypreview/RegistryPreviewUILib/app.manifest
index 0871bb63b2..d4e6b85826 100644
--- a/src/modules/registrypreview/RegistryPreviewUILib/app.manifest
+++ b/src/modules/registrypreview/RegistryPreviewUILib/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2
diff --git a/src/runner/PowerToys.exe.manifest b/src/runner/PowerToys.exe.manifest
index e8c022cf25..ce82aa752f 100644
--- a/src/runner/PowerToys.exe.manifest
+++ b/src/runner/PowerToys.exe.manifest
@@ -6,4 +6,11 @@
+
+
+
+ true/PM
+ PerMonitorV2
+
+
diff --git a/src/settings-ui/Settings.UI/app.manifest b/src/settings-ui/Settings.UI/app.manifest
index 9742e0b540..c5043e485d 100644
--- a/src/settings-ui/Settings.UI/app.manifest
+++ b/src/settings-ui/Settings.UI/app.manifest
@@ -9,7 +9,7 @@
2) System < Windows 10 Anniversary Update
-->
true/PM
- PerMonitorV2, PerMonitor
+ PerMonitorV2