[PR #5559] [client] Fix blurry UI on high-DPI Windows displays #26140

Open
opened 2026-08-05 07:06:56 -04:00 by saavagebueno · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbirdio/netbird/pull/5559
Author: @logue404
Created: 3/9/2026
Status: 🔄 Open

Base: mainHead: main


📝 Commits (1)

  • 4634f1d [client] Fix blurry UI on high-DPI Windows displays

📊 Changes

1 file changed (+12 additions, -6 deletions)

View changed files

📝 client/ui/manifest.xml (+12 -6)

📄 Description

Describe your changes

This PR fixes the blurry UI issue on high-DPI Windows displays (e.g., 4K monitors with 150%+ scaling).

Root Cause:
The Windows application manifest for the UI executable (netbird-ui.exe) was missing the dpiAwareness setting. Consequently, Windows applied DPI virtualization (bitmap stretching), causing the system tray menu and login windows to appear fuzzy.

Solution:

  • Updated the UI manifest (client/ui/manifest.xml) to explicitly enable PerMonitorV2 DPI awareness.
  • Verified that the service manifest (netbird.exe) remains unchanged, as the background service does not require high-DPI rendering.

This ensures sharp text and icons across all supported Windows versions without requiring code changes in the systray library or the main application logic.

Closes #5558

Stack

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)

    Note: Automated testing for Windows manifest DPI behavior is difficult in standard CI pipelines. Manual verification was performed on Windows 10/11 with high-DPI settings.

By submitting this pull request, you confirm that you have read and agree to the terms of the Contributor License Agreement.

Documentation

Select exactly one:

  • I added/updated documentation for this change
  • Documentation is not needed for this change (explain why)

    This is an internal configuration fix for the Windows executable build process. It does not change user-facing features, CLI commands, or configuration files that users edit manually. The behavior simply aligns with standard Windows application expectations (sharp UI).

Summary by CodeRabbit

  • Improvements
    • Improved display scaling and DPI handling: the app now enables DPI-aware rendering and declares Per‑Monitor V2 DPI awareness, resulting in sharper, more consistent visuals across high-resolution and multi-monitor setups.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/netbirdio/netbird/pull/5559 **Author:** [@logue404](https://github.com/logue404) **Created:** 3/9/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (1) - [`4634f1d`](https://github.com/netbirdio/netbird/commit/4634f1d69fe94f7b43cdc66494bd2cf094633635) [client] Fix blurry UI on high-DPI Windows displays ### 📊 Changes **1 file changed** (+12 additions, -6 deletions) <details> <summary>View changed files</summary> 📝 `client/ui/manifest.xml` (+12 -6) </details> ### 📄 Description ## Describe your changes This PR fixes the blurry UI issue on high-DPI Windows displays (e.g., 4K monitors with 150%+ scaling). **Root Cause:** The Windows application manifest for the UI executable (`netbird-ui.exe`) was missing the `dpiAwareness` setting. Consequently, Windows applied DPI virtualization (bitmap stretching), causing the system tray menu and login windows to appear fuzzy. **Solution:** - Updated the UI manifest (`client/ui/manifest.xml`) to explicitly enable `PerMonitorV2` DPI awareness. - Verified that the service manifest (`netbird.exe`) remains unchanged, as the background service does not require high-DPI rendering. This ensures sharp text and icons across all supported Windows versions without requiring code changes in the `systray` library or the main application logic. ## Issue ticket number and link Closes #5558 ## Stack <!-- branch-stack --> ### Checklist - [x] Is it a bug fix - [ ] Is a typo/documentation fix - [ ] Is a feature enhancement - [ ] It is a refactor - [ ] Created tests that fail without the change (if possible) > *Note: Automated testing for Windows manifest DPI behavior is difficult in standard CI pipelines. Manual verification was performed on Windows 10/11 with high-DPI settings.* > By submitting this pull request, you confirm that you have read and agree to the terms of the [Contributor License Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md). ## Documentation Select exactly one: - [ ] I added/updated documentation for this change - [x] Documentation is **not needed** for this change (explain why) > This is an internal configuration fix for the Windows executable build process. It does not change user-facing features, CLI commands, or configuration files that users edit manually. The behavior simply aligns with standard Windows application expectations (sharp UI). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Improvements** * Improved display scaling and DPI handling: the app now enables DPI-aware rendering and declares Per‑Monitor V2 DPI awareness, resulting in sharper, more consistent visuals across high-resolution and multi-monitor setups. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
saavagebueno added the pull-request label 2026-08-05 07:06:56 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#26140