microsoft / microsoft/PowerToys
Proposal: Add Visible Update Popup Screen for New Versions
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Description of the new feature / enhancement
# Implementation Plan: New Update Popup Screen
This plan outlines the design and implementation for a popup screen that notifies users when a new version of PowerToys is available.
## Goal
Replace or supplement the existing toast/settings-only notification with a more visible popup screen to ensure users are aware of important updates.
## Proposed Changes
### [Runner / Update Logic]
- **File**: `src/runner/UpdateUtils.cpp`
- **Change**: Modify `UpdateUtils` to trigger the new popup UI when an update is detected as "ready to install" or "available".
- **Logic**: Ensure the popup doesn't appear too frequently (e.g., once per version) and respects user settings for quiet hours or "do not disturb".
### [Settings UI / Design System]
- **File**: `src/settings-ui/Settings.UI/Views/UpdatePopupPage.xaml` [NEW]
- **File**: `src/settings-ui/Settings.UI/ViewModels/UpdatePopupViewModel.cs` [NEW]
- **Change**: Create a new WinUI 3 window/page for the update notification.
- **Design**:
- Clear "Update Available" header.
- Brief release notes or a link to them.
- "Update Now", "Download", and "Remind Me Later" buttons.
- Modern, glassmorphism-inspired aesthetic matching PowerToys' theme.
### [Localization]
- **File**: `src/settings-ui/Settings.UI/Strings/en-us/Resources.resw`
- **Change**: Add strings for "Update Now", "Remind Me Later", and the popup description.
## Verification Plan
1. **Manual Testing**:
- Mock a "new update available" state by modifying the version check logic locally.
- Verify the popup appears on runner start or during manual check.
- Test all buttons (Update Now, Remind Me Later).
- Ensure the UI looks premium and handles theme changes (Dark/Light).
2. **Automated Testing**:
- Add unit tests for the updated version comparison logic if changed.
### Scenario when this would be used?
### Scenario
As a regular PowerToys user, I rely on update notifications to stay current with new features, bug fixes, and security improvements. Currently, update notifications are primarily delivered via toast notifications or through the Settings page. However, toast notifications can be missed if the user is away from their system, focused on another task, or if Windows notifications are disabled or dismissed automatically.
This feature would be used in scenarios where:
- A major update with important fixes or new features is available.
- The user has previously missed or dismissed a toast notification.
- The update contains security or stability improvements that should be more visible.
- The user does not frequently open the Settings page to check for updates.
A more visible popup screen would ensure users are clearly informed about available updates without requiring them to manually check settings.
This improves awareness and ensures that users remain on supported and stable versions of PowerToys.
### Supporting information
### Supporting Information
- Toast notifications are transient and can be missed easily, especially during focused work sessions or when "Focus Assist" / quiet hours are enabled.
- Some users may disable system notifications entirely, making update awareness dependent on manually opening Settings.
- A controlled popup that appears once per version (and respects quiet hours or user preferences) would balance visibility with non-intrusiveness.
- Many modern applications (e.g., browsers and developer tools) use modal or semi-modal update prompts for important releases to ensure users are aware of critical updates.
- This proposal includes safeguards such as:
- Showing the popup only once per version.
- Respecting quiet hours and do-not-disturb settings.
- Allowing users to choose "Remind Me Later."
The goal is not to create intrusive behavior, but to improve update visibility in a user-friendly and consistent way aligned with modern application UX patterns.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading src/runner/UpdateUtils.cpp and the existing Settings UI update flow. Review the proposed UpdatePopupPage.xaml, UpdatePopupViewModel.cs, and en-us/Resources.resw changes, then follow the manual verification plan for update detection, buttons, themes, frequency limits, and quiet hours. Done means the popup appears appropriately and supports the specified actions and localization.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, csharp
- Domain
- desktop, frontend, internationalization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100