mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 19:27:56 +01:00
main
8653 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
b3628aa068 |
CmdPal: Fix exception logging in ContentFormViewModel (#42460)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR fixes logging entry. The invocation resembled a semantic logger
call, but its signature doesn’t match ManagedCommon.Logger. As a result,
it logged the placeholder text instead of the intended exception value:
```log
[01:43:41.8235422] [Error] ContentFormViewModel.cs::Unexpected HRESULT has been returned from a call to a COM component.::55
Error building card from template: {Message}
```
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx
<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Co-authored-by: Michael Jolley <mike@baldbeardedbuilder.com>
|
||
|
|
55e974dea4 |
CmdPal: Fix FiltersViewModel binding (#42467)
## Summary of the Pull Request This PR resolves crashes on pages with filters, such as Windows Terminal profiles or Windows Services, when compiled with trimming/AOT. It removes runtime binding from the FiltersDropDown control, effectively preventing crashes caused by trimming/AOT dropping binding metadata for FilterItemViewModel. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42428 - [x] Closes: #42482 - [x] Related to: #42458 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Co-authored-by: Niels Laute <niels.laute@live.nl> |
||
|
|
92d9f1061c |
ci: reduce needless file copying; zip GPOs; reliability (#42446)
This pull request makes four main changes to the build. 1. GPOs are now emitted as a ZIP file, rather than a folder to be zipped later. 2. PDB files are linked into the output folder by hard link, rather than copy, to save disk space. 3. We no longer copy the entire build output folder into artifacts; instead, we *move* it, to save disk space. 4. **Failed builds** will no longer produce `build-arch-release` artifacts; instead, they will produce numbered failure artifacts. This means that we can finally re-run a single leg of the build, and it will not fail due to the artifact already existing! I included a smaller change to the DSC build step to make sure it doesn't accidentally run when everything else failed. Heh. Altogether, this takes a couple minutes off the build and reduces the demand on the agent's disk by 10-15GB. |
||
|
|
63da56fae0 |
Remove WiX v3 infrastructure and migrate exclusively to WiX v5 (#41975)
## Summary: This pull request refactors the installer build pipeline to simplify and modernize the process, focusing exclusively on the WiX 5 (VNext) installer and removing legacy WiX 3 support. It eliminates the use of the `installerSuffix` parameter and related logic, removes the legacy installer build steps and scripts, and updates documentation to reflect the new architecture. The changes streamline the pipeline, reduce complexity, and ensure only the latest installer is built and signed. Pipeline and build system simplification: * Removed the `installerSuffix` parameter and all related logic from pipeline templates and YAML files, including file naming, build steps, and hash calculation scripts. * Removed legacy WiX 3 installer build steps and the associated script `installWiX.ps1`, focusing exclusively on WiX 5 (VNext) installer builds. Installer signing and build process updates: * Updated `.pipelines/ESRPSigning_installer.json` to remove signing configuration for the legacy `PowerToysSetupCustomActions.dll`, ensuring only the VNext DLL is signed. Documentation updates: * Updated `doc/devdocs/core/installer.md` to remove references to WiX 3, clarify the installer architecture as WiX 5 only, and describe the new build process. ## CheckList: - [ ] Should Build successfully and produce installer for both per user and per machine - [ ] Should install without problem --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com> Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com> |
||
|
|
86fed8aa70 |
CmdPal: Ensure cached window data is refreshed when the window style changes (#42405)
## Summary of the Pull Request This PR resolves the issue where the window style WS_EX_TOOLWINDOW was being set but not properly applied to the window. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42395 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
446d1baa6f |
[CmdPal] Settings UX tweaks (#42303)
## Summary of the Pull Request Clean up of the Settings app with some minor styling changes. - Moved activation key related settings into the Activation expander. - On the Extensions page, seperated the alias settings for improved a11y - Added a card to the extensions settings frame <img width="1051" height="935" alt="image" src="https://github.com/user-attachments/assets/05ae5794-8e30-4af0-aa38-a3f600aa6749" /> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Co-authored-by: Jiří Polášek <me@jiripolasek.com> |
||
|
|
f86d988fb1 |
Shortcut control visual tweaks (#42302)
## Summary of the Pull Request Small design tweaks, resolving a visual glitch where the bottom border of wasn't displayed correctly, and looked jagged on higher res displays Before vs after <img width="654" height="450" alt="image" src="https://github.com/user-attachments/assets/68ab3d24-d18b-4fae-9ffa-3548ce440798" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
cea78c31f8 |
fix spell complain (#42379)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed - Spell check should not complain |
||
|
|
f4e9af9acb |
CmdPal: Windows Terminal extension failing when LOCALAPPDATA environment variable is missing (#42326)
## Summary
Fixes an issue where the Command Palette Windows Terminal Profiles
extension throws an `ArgumentNullException` when the `LOCALAPPDATA`
environment variable is missing or corrupted.
## Problem
The extension uses `Environment.GetEnvironmentVariable("LOCALAPPDATA")`
to locate Windows Terminal settings files. When this environment
variable is missing or corrupted (though rare), the method returns
`null`, which then causes `Path.Combine()` to throw an exception:
```
System.ArgumentNullException: Value cannot be null. (Parameter 'paths')
at System.IO.Path.Combine(ReadOnlySpan`1 paths)
at Microsoft.CmdPal.Ext.WindowsTerminal.Helpers.TerminalQuery.GetTerminals()
```
## Solution
Replace `Environment.GetEnvironmentVariable("LOCALAPPDATA")` with the
more robust
`Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)`.
This API:
- Returns the correct path even when environment variables are corrupted
- Never returns `null` for standard special folders
- Is already used elsewhere in PowerToys (e.g.,
`Wox.Plugin.Constant.cs`)
## Changes
- Updated
`Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalQuery.cs`
## Testing
The fix follows the existing pattern used in the codebase and directly
addresses the exception in the reported stack trace. While unlikely to
affect most users (environment variable corruption is rare), this makes
the extension more resilient to edge cases.
Fixes microsoft/PowerToys#42322
<!-- START COPILOT CODING AGENT SUFFIX -->
<details>
<summary>Original prompt</summary>
>
> ----
>
> *This section details on the original issue you should resolve*
>
> <issue_title>CmdPal: Windows Terminal - extension fails to list
profiles when env var is missing</issue_title>
> <issue_description>### Microsoft PowerToys version
>
> main
>
> ### Installation method
>
> Dev build in Visual Studio
>
> ### Area(s) with issue?
>
> Command Palette
>
> ### Steps to reproduce
>
> The Windows Terminal Profiles built-in extension throws an exception
when environment variables are corrupted. While this is unlikely to be a
widespread issue, we can strengthen the code by replacing the
environment variable with
`Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);`.
>
> ```
> ============================================================
> 😢 An unexpected error occurred in the 'Windows Terminal Profiles'
extension.
>
> Summary:
> Message: Value cannot be null. (Parameter 'paths')
> Type: System.ArgumentNullException
> Source: System.Private.CoreLib
> Time: 2025-10-12 22:19:43.6321869
> HRESULT: 0x80004003 (-2147467261)
>
> Stack Trace:
> at System.ArgumentNullException.Throw(String paramName)
> at System.IO.Path.Combine(ReadOnlySpan`1 paths)
> at
Microsoft.CmdPal.Ext.WindowsTerminal.Helpers.TerminalQuery.GetTerminals()+MoveNext()
> at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
> at
Microsoft.CmdPal.Ext.WindowsTerminal.Helpers.TerminalQuery.GetProfiles()
> at Microsoft.CmdPal.Ext.WindowsTerminal.Pages.ProfilesListPage.Query()
> at
Microsoft.CmdPal.Ext.WindowsTerminal.Pages.ProfilesListPage.GetItems()
> at Microsoft.CmdPal.Core.ViewModels.ListViewModel.FetchItems()
> at
Microsoft.CmdPal.Core.ViewModels.ListViewModel.InitializeProperties()
> at Microsoft.CmdPal.Core.ViewModels.PageViewModel.InitializeAsync()
>
> ------------------ Full Exception Details ------------------
> System.ArgumentNullException: Value cannot be null. (Parameter
'paths')
> at System.ArgumentNullException.Throw(String paramName)
> at System.IO.Path.Combine(ReadOnlySpan`1 paths)
> at
Microsoft.CmdPal.Ext.WindowsTerminal.Helpers.TerminalQuery.GetTerminals()+MoveNext()
> at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
> at
Microsoft.CmdPal.Ext.WindowsTerminal.Helpers.TerminalQuery.GetProfiles()
> at Microsoft.CmdPal.Ext.WindowsTerminal.Pages.ProfilesListPage.Query()
> at
Microsoft.CmdPal.Ext.WindowsTerminal.Pages.ProfilesListPage.GetItems()
> at Microsoft.CmdPal.Core.ViewModels.ListViewModel.FetchItems()
> at
Microsoft.CmdPal.Core.ViewModels.ListViewModel.InitializeProperties()
> at Microsoft.CmdPal.Core.ViewModels.PageViewModel.InitializeAsync()
> ℹ️ If you need further assistance, please include this information in
your support request.
> ℹ️ Before sending, take a quick look to make sure it doesn't contain
any personal or sensitive information.
> ============================================================
> ```
>
>
|
||
|
|
50113aa50d |
0.95 release note (#42110)
This pull request updates the `README.md` to document the PowerToys 0.95 release. It includes comprehensive updates to release notes, download links, and roadmap details, reflecting new features, improvements, and fixes across multiple modules. The changes also improve documentation for developers and update future planning information. Release documentation and download updates: - Updates all download links, release references, and installer filenames from version 0.94 to 0.95 throughout the README.md to ensure users get the latest release. - Revises the release notes to highlight major new features (like installer upgrade to WiX 5, settings search, hotkey conflict detection, and module-specific enhancements), and reorganizes the changelog for clarity. - Updates the Roadmap section to reflect plans for version 0.96 and beyond, including new features and ongoing work. Module and feature highlights: - Adds or expands sections for each updated module, summarizing key improvements and new options in each. - Details significant Command Palette improvements, including accessibility, stability, UI tweaks, and extension updates. Developer and documentation improvements: - Adds new documentation for the Light Switch module. - Improved developer workflow with updated dependencies, build scripts, and enhanced test coverage. - Enhanced CI pipeline and test stability with new configuration, automated log collection, and accessibility improvements. --------- Co-authored-by: Niels Laute <niels.laute@live.nl> Co-authored-by: Dave Rayment <dave.rayment@gmail.com> Co-authored-by: Kai Tao <kaitao@microsoft.com> Co-authored-by: Jiří Polášek <me@jiripolasek.com> |
||
|
|
7830466b81 |
Cmdpal: Use static link instead of dynamic to solve cmdpal crash in sandbox (#42355)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request As title <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
cca66eacd0 |
Light switch: Add new tag to light switch (#42351)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed <img width="444" height="387" alt="image" src="https://github.com/user-attachments/assets/03e179c6-63cc-4824-b601-a7846200607f" /> |
||
|
|
7b9d5af8c1 |
fixed light switch shortcut not working issue (#42340)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This pull request refactors how the `ToggleThemeHotkey` property is handled in the LightSwitch settings and view model. The changes simplify property management by directly referencing the property within `LightSwitchProperties` and ensure that the hotkey setting is consistently updated and serialized. **Settings property management:** * In `LightSwitchSettings.Clone()`, the `LightSwitchProperties` object now directly references the existing property instances instead of creating new ones, and also includes the `ToggleThemeHotkey` property. **View model property handling:** * In `LightSwitchViewModel.ToggleThemeActivationShortcut`, the getter and setter now directly access and update `ModuleSettings.Properties.ToggleThemeHotkey.Value`, removing the need for a backing field and ensuring changes are properly serialized and notified. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42330 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com> |
||
|
|
471022e842 |
[Awake] Fix for countdown timer drift (#41684)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request - Fixes the countdown timer drift issue #41671 - Includes minor refactoring to consolidate identical timer completion code in `SetExpirableKeepAwake` and `SetTimedKeepAwake`. - Removes the ~50 day restriction on timed keep-awake. The timer may now be `uint.MaxValue` seconds, or ~136 years. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #41671 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments This replaces the combined `Observable.Timer` and `Observable.Interval` timers with a single 1-second Interval timer which checks against a fixed expiry time. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Checked that: 1. The timed keep-awake works via the `--time-limit` parameter, and expiry occurs on time. 2. The countdown timer in the systray menu correctly counts down for small values: <img width="386" height="109" alt="image" src="https://github.com/user-attachments/assets/b282dfd8-38e7-48ab-b17c-99756ef73b99" /> 3. The countdown timer in the systray menu counts down for larger values than were previously possible: <img width="380" height="104" alt="image" src="https://github.com/user-attachments/assets/7a807a37-8945-4048-a86c-05e6ac9310a9" /> 4. On a heavily CPU-loaded system, the previous countdown drift does not happen. 5. The expirable keep-awake mode still functions as expected. |
||
|
|
bb6f9a8b08 |
CmdPal: Add metadata to items in the clipboard history (#42188)
## Summary of the Pull Request This PR introduces the `IClipboardMetadataProvider` interface, which inspects clipboard items and returns metadata plus optional actions. Also this implementation updates changes how `DetailsLink` link is handled through shell, to enable `file:` scheme to be handled (`Hyperlink.NavigateUri` and `HyperlinkButton.NavigateUri` explicitly blocks `file:` scheme, see [here](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.hyperlinkbutton?view=windows-app-sdk-1.8)). **Implemented providers:** - `ImageMetadataProvider` — reports image dimensions, DPI, and byte size. - `TextFileSystemMetadataProvider` — recognizes text as a file-system path and, if it exists, provides details about the target. - `WebLinkMetadataProvider` — recognizes text as a URL and provides link-related metadata. - `TextMetadataProvider` — reports text statistics (e.g., character and word counts). ### Pictures? Pictures! Image metadata: <img width="1666" height="1478" alt="image" src="https://github.com/user-attachments/assets/472a8516-624f-457a-850c-009c66ccadcf" /> Text metadata: <img width="1714" height="1534" alt="image" src="https://github.com/user-attachments/assets/69503fb1-2dfd-46c4-894a-e6b0fc26e7da" /> Text as a web link metadata: <img width="1712" height="1518" alt="image" src="https://github.com/user-attachments/assets/bd9c26bd-eab3-4431-bab0-abf8e6fad610" /> Text as a file system path: <img width="1673" height="1452" alt="image" src="https://github.com/user-attachments/assets/0bff415c-01e2-4abf-a3c5-9abdc9475031" /> <img width="1646" height="1005" alt="image" src="https://github.com/user-attachments/assets/41afc3e7-8baa-4a81-9ce5-c81b1a6df2f6" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42201 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
05b605ef27 |
CmdPal: Cleanup content page view model when no longer needed (#42293)
## Summary of the Pull Request This PR: - Cleans up ContentPageViewModel when its page unloads to ensure it unsubscribes from ItemsChanged. - Clears the command bar before initializing a new page view model, allowing the new VM to set its own state without being overridden by the shell afterward. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42291 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
7c8b30246e |
CmdPal: Window Walker - reevaluate process type when window process is updated (#42317)
## Summary of the Pull Request
This PR moves `ProcessPackagingInspector.Inspect` from the
`WindowProcess` constructor to `UpdateProcessInfo`, ensuring the process
type is correctly re-evaluated when the window’s backing process changes
(as with UWP apps hosted in `ApplicationFrameHost.exe`).
See
|
||
|
|
4d47659ff9 |
Fix PowerRename crash caused by missing PRI file (#42300)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Not sure why In WinAppSDK 1.8, the default WinUI targets no longer automatically generate PRI files for unpackaged apps. By importing the MSIX SDK build tools, the project gains standalone PRI generation capability. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
97e62b3253 |
CmdPal: Update special fallbacks separately from the other fallbacks (#42289)
## Summary of the Pull Request This PR introduces a hotfix that updates special fallback items separately from the rest. This allows the loop handling special fallback items to finish faster, ensuring they are not delayed by other fallback items. As a result, calculator and run fallback items will be more readily available to users. This partially solves #42286 for special fallback items. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Related to: #42286 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
cd5b76c988 |
CmdPal: make the context menu search look more like a cmdpal (#42081)
Replaces our styling with the same styleing we use for the search bar But we can't _just_ do that, because the stupid "text cursors don't show up on top of transparent backgrounds" thing. So I just added the smoke backdrop to the search box. Seemed reasonable. Screenshots below. --------- Co-authored-by: Niels Laute <niels.laute@live.nl> |
||
|
|
f44addb29c |
Fixed manual override event (#42280)
Issue: When using the shortcut to switch modes manually, the service would try to correct the theme to the expected mode. Problem: Event resetting between each loop. Fix: Set the event to be manually reset only so that the event isn't resetting between each loop. The rest of the code was already written to expect this behavior so no other changes should be necessary. |
||
|
|
1e3429dd3a |
Introduce worktree helper scripts for faster multi-branch development in PowerToys (#42076)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This pull request introduces a new suite of helper scripts for managing Git worktrees in the `tools/build` directory, along with comprehensive documentation. The scripts streamline common workflows such as creating, reusing, and deleting worktrees for feature branches, forks, and issue-based development, making it easier for developers to work on multiple changes in parallel without duplicating the repository. Each script is provided as both a PowerShell (`.ps1`) and Windows batch (`.cmd`) wrapper for convenience. A detailed markdown guide explains usage patterns, scenarios, and best practices. **New worktree management scripts:** * Added `New-WorktreeFromFork.ps1`/`.cmd` to create a worktree from a branch in a personal fork, handling remote creation and branch tracking automatically. [[1]](diffhunk://#diff-ea4d43777029cdde7fb9fda8ee6a0ed3dcfd75b22ed6ae566c6a77797c8bef54R1-R111) [[2]](diffhunk://#diff-1314b08f84ac8c2e7d020e5584d9f2f19dbf116bbc13c14de0de432006912cfeR1-R4) * Added `New-WorktreeFromBranch.ps1`/`.cmd` to create or reuse a worktree for an existing local or remote branch, with logic to fetch and track branches as needed. [[1]](diffhunk://#diff-07c08acfb570e1b54647370cae17e663e76ee8cb09614cac7a23a9367f625a3eR1-R69) [[2]](diffhunk://#diff-6297be534792c3e6d1bc377b84bcd20b2eb5b3de84d4376a2592b25fc9a88a88R1-R4) * Added `New-WorktreeFromIssue.ps1`/`.cmd` to create a new issue branch from a base ref (default `origin/main`), slugifying the issue title for branch naming. [[1]](diffhunk://#diff-36cb35f3b814759c60f770fc9cc1cc9fa10ceee53811d95a85881d8e69c1ab07R1-R67) [[2]](diffhunk://#diff-890880241ffc24b5d29ddb69ce4c19697a2fce6be6861d0a24d02ebf65b35694R1-R4) * Added `Delete-Worktree.ps1`/`.cmd` to safely remove a worktree, with options to force removal, keep the local branch, or retain orphan fork remotes. Includes robust error handling and manual recovery guidance. [[1]](diffhunk://#diff-8a335544864c1630d7f9bec6f4113c10d84b8e26054996735da41516ad93e173R1-R120) [[2]](diffhunk://#diff-19a810e57f8b82e1dc2476f35d051eb43f2d31e4f68ca7c011c89fd297718020R1-R4) **Documentation:** * Introduced `Wokrtree-Guidelines.md`, a comprehensive guide covering the purpose, usage, flows, naming conventions, troubleshooting, and best practices for the new worktree scripts. |
||
|
|
075bbb46cb |
CmdPal: Fixes for the build for the fixes 0.95 (#42279)
Closes #42241 Closes #42245 Apps that were pinned would show in search results twice. Resolved. Run & Calculator wouldn't show in search results. Resolved. |
||
|
|
4aa27316fb |
Spellchecker: Add unrecognized word for Light Switch (#42275)
## Summary of the Pull Request - Adds "wmsg" to expected words dictionary (#42264). - Removes words no longer needed. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
f55c49e15b |
CmdPal: adjust frecency weighting (#42242)
In #41959 we changed the string matcher's weighting. It ended up giving us lower scores than before. That meant that the weighting from recent commands was far too heavy, and it was polluting the results. Basically any command that you'd run would be like, 30 characters of weight heavier than anything you haven't. This increases the weight of all string matches by 10x. That means something like `Command Prompt` will get a string matched weight of `100` instead of `10`. This balances better with the weighting from frecency (where the MRU command gets +35, then `+min(5*uses,35)`, for up to 70 points of weight) It also adds a bunch of tests here, to try and catch this again in the future. Closes #42158 |
||
|
|
b06cd9f896 |
Adding logger to Light Switch Service (#42264)
Adding proper logs to the Light Switch Service |
||
|
|
3e0d62d101 |
Reinstate ZoomIt branding (#42230)
This pull request restores dynamic branding and versioning for the ZoomIt subproject. ## Summary of the Pull Request <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [x] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments It was deleted by mistake in the previous commit. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed What was broken and this PR changes: <img width="736" height="709" alt="image" src="https://github.com/user-attachments/assets/803b0051-cf5b-4e81-a7e9-f562295896ea" /> Fixed behavior now, in PowerToys (official version up, with the changes this commit overrides down): <img width="1159" height="1345" alt="image" src="https://github.com/user-attachments/assets/cf4d0c81-2d97-4ef5-a179-8f423dfe9739" /> Fixed behavior now, standalone: <img width="1617" height="968" alt="image" src="https://github.com/user-attachments/assets/467ffccd-f3d2-4543-bec3-1186941084c5" /> |
||
|
|
b89237ff94 |
CmdPal: Fix "Open location" menu item for Win32 and UWP (#42248)
## Summary of the Pull Request This PR fixes the regression of the "Open containing folder" context menu items: - For Win32 apps, the command now displays the correct icon, opens the folder containing the shortcut, and selects the file. - For UWP apps, it sets the same icon and item title as the equivalent command for Win32 apps. - For both, it updates the item's title to "Open file location" to align with the Windows 11 menu naming convention. <img width="1612" height="1106" alt="image" src="https://github.com/user-attachments/assets/27fa7557-862e-4453-ba7b-7ac3d0af21d2" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42244 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
df972447d4 |
Mouse Without Borders: A conflict machine Id will make connection fail (#42190)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This PR fixes a critical issue in Mouse Without Borders where conflicting machine IDs would cause connection failures. The changes ensure that when machine IDs are generated or updated, the settings are immediately persisted to prevent loss of the new ID and maintain proper synchronization between the property and backing field. Key changes: * Immediate settings persistence when a new machine ID is generated (unless instant saving is paused) * Proper synchronization of the machineId field when the MachineId property is set * Addition of settings saving logic in both getter and setter scenarios <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #42084 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed * Do a release bundle build and install new bundle with this fix on both two machines * Manually change two pc's machine ID to the same value * Make sure they can connect * Verify there is log entrance indicating that there is conflict for machineID * Close MWB, make sure next launch still connect |
||
|
|
668820cf2c |
Spellchecker: resolve warnings (#42202)
## Summary of the Pull Request This PR resolves lingering spell-check warnings and other minor issues, allowing us to focus on newly emerging problems. **Changes:** - Excludes empty and binary files - Converts invalid dictionary entries into patterns - Since dictionary entries can only contain letters, `0x6f677548` was previously ignored - Removes unused words - Adds a pattern marker to ignore all code on a line - `/* #no-spell-check-line */` - `// #no-spell-check` This should reduce outstanding spellchecker warnings and suggestions to zero. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
ca4e8b2986 |
CmdPal: Cancel page load when superseded by a new page navigation (#42233)
## Summary of the Pull Request This PR introduces cancellation support for navigation. If a user navigates to page X and then returns back or navigates elsewhere before the page X fully loads, this update ensures that page X will not set itself as the current page and is ignored. It resolves the issue where returning to the home page left the previous page's icon and placeholder visible in the search bar, causing the search functionality to fail. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42247 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
0472e7dc78 |
Light Switch: Fix spellcheck and add version info to LightSwitchModuleInterface (#42220)
## Summary of the Pull Request This PR addresses spellchecking issues in Light Switch module: - Resolves the forbidden pattern “`, otherwise`” by rewriting it as “`; otherwise`”. - Updates `resource.h`, which was previously empty and therefore treated as a binary file by the spellchecker. The file now includes standard version information consistent with other projects, ensuring it is properly recognized and that the correct version information is included in `PowerToys.LightSwitchModuleInterface.dll`. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
1f18088afe |
Adding versioning info for LightSwitchService.exe (#42240)
Title, fixes crash in build pipeline by adding versioning information to the LightSwitchService.exe. Verified by building release and checking the versioning data on the resulting app. |
||
|
|
494901b52d |
CmdPal: immediately move to page, while loading (#42227)
Regressed in #41358 We're synchronously waiting for the first FetchItems to return before actually navigating to the page. Yikes. Closes #42157 drive-by: Closes #42231 Closes #42156 |
||
|
|
3e213165a8 |
Light Switch: Updating UI tests (#42225)
Updating UI tests to match new UI |
||
|
|
e04e6a11d1 |
ZoomIt smooth image zooming (#42200)
Added smooth image option that results in GDI+ image smoothing for static zoom and Magnifier API image smoothing for live zoom. --------- Co-authored-by: Mark Russinovich <markruss@ntdev.microsoft.com> Co-authored-by: Clint Rutkas <clint@rutkas.com> Co-authored-by: Niels Laute <niels.laute@live.nl> |
||
|
|
14ff4dbc8c |
Find My Mouse: Handle default color for brand new settings (#42182)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Give a default color transparency as before instead of leave background black and foreground white. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed 1. Delete setting for find my mouse 2. Start find my mouse, the backdrop and foreground are semi-transparent 3. Start settings, and the default settings should persist correctly. 4. Start powertoys again, make sure the default color is still semi-transparent 5. Other settings change can be handled and persisted correctly --------- Co-authored-by: Niels Laute <niels.laute@live.nl> |
||
|
|
a8eb17d21a |
Bugfix: missing Crosshairs orientation string (#42207)
## Summary of the Pull Request <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - UI string was not showing Before: <img width="933" height="146" alt="image" src="https://github.com/user-attachments/assets/a6136040-0388-4349-b94c-99e6e77bb3e5" /> After: <img width="943" height="150" alt="image" src="https://github.com/user-attachments/assets/b1c9adc3-c29d-41f9-bebb-b7171fb81af6" /> - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
0d5220561d |
[New Module] Light Switch (#41987)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This pull request introduces a new module called "Light Switch" which allows users to automatically switch between light and dark mode on a timer.  <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #1331 - [x] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [x] **Tests:** Added/updated and all pass - [x] **Localization:** All end-user-facing strings can be localized - [x] **Dev docs:** Added/updated - [x] **New binaries:** Added on the required places - [x] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [x] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [x] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: [#5867](https://github.com/MicrosoftDocs/windows-dev-docs-pr/pull/5867) <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments ### Known bugs: - Default settings not saving correctly when switching modes - Issue: Sometimes when you switch from one mode to another, they are supposed to update with new defaults but sometimes this fails for the second variable. Potentially has to do with accessing the settings file while another chunk of code is still updating. - Sometimes the system looks "glitched" when switching themes ### To do: - [x] OOBE page and assets - [x] Logic to disable the chart when no location has been selected - [x] Localization ### How to and what to test Grab the latest installer from the pipeline below for your architecture and install PowerToys from there. - Toggle theme shortcutSystem only, Apps only, Both system and apps selected - Does changing the values on the settings page update the settings file? %LOCALAPPDATA%/Microsoft/PowerToys/LightSwitch/settings.json - Manual mode: System only, Apps only, Both system and apps selected - Sunrise modes: Are the times accurate? - If you manage to let this run through sunset/rise does the theme change? - Set your theme to change within the next minute using manual mode and set your device to sleepOpen your device and login once the time you set has passed. --> Do your settings resync once the next minute ticks after logging back into your device? - Disable the service and ensure the tasks actually ends. - While the module is disabled: - Make sure the shortcut no longer works - Make sure the last time you set doesn't trigger a theme change - Bonus: Toggle GPO Configuration and make sure you are unable to enable the module --------- Co-authored-by: Niels Laute <niels.laute@live.nl> Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com> |
||
|
|
ccc31c13ae |
CmdPal: A couple more run commands bugs (#42174)
Caching bugs are hard. This fixes like, three different run commands bugs: * typing `c:\windows\p`, then backspacing to `c:\windows` would populate the cache for `c:\` with the files in `c:\` that matched `windows*`. * Now when the dir chenges, we correctly fill the cache with everything in that dir, then filter it. * that also caused a similar edge case for `c:\windows\` -> `c:\windows` (the first should show results under c:\windows\` the second should only show things in `c:\` matching `windows` * As of my last PR, we support commandlines with spaces. We however forgot to handle _paths_ with spaces. We'll now correctly show path results for something like `c:\program files\` |
||
|
|
233ca4c05b |
MarkdownTextBlock crash fix (#42171)
## Summary of the Pull Request Bumping MarkdownTextBlock to `0.1.251002-build.2316` that includes the fix for this crashing bug. cc @jiripolasek it seems to work? <img width="831" height="508" alt="image" src="https://github.com/user-attachments/assets/1b53144c-516f-4df9-b47d-0d4e80dbe1a2" /> ## PR Checklist - [x] Closes: #42142 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
f42d6dbc3d |
CmdPal: Add keyboard shortcut Alt+Home for Go home action (#42095)
## Summary of the Pull Request This PR adds a new keyboard shortcut Alt+Home that takes user immediately to the home page in a single action. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #41747 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
466a94eb40 |
CmdPal: Fix updating primary command and context menu and app icons (#42155)
## Summary of the Pull Request This PR fixes three issues in one go: - Restores missing icons in app context menus. - Fixes propagation of changes from a command item to the context menu item for the primary action. - Ensures the context menus stay in sync when underlying command items change. Details: - Correctly propagates updates of name, icon, and subtitle from a command item to its primary command (`CommandItemViewModel._defaultCommandContextItemViewModel`). - Correctly propagate updates of command's name to title (`CommandItem.ctor`). - Fixes icon loading for application items: `AppCommand` no longer loads an app icon by default but instead relies on the caller to provide one (since `AppListItem` also handles icon loading). - Adds a generic fallback icon for apps when an icon cannot be loaded. - Updates bindings on context menu items to `OneWay`, ensuring the UI properly reflects item changes. - Adds a sample that showcases dynamically updated commands (with cats and dolphins!) to _Samples → List Page Sample Command_. ⚠️ Toolkit changes: - `CommandItem` won't capture assigned Command's name as its `Title`. This will allow it to propagate future changes to `Command.Name`. Pictures? Moving ones! https://github.com/user-attachments/assets/1a482394-d222-4f7c-9922-bb67d47dc566 <img width="864" height="538" alt="image" src="https://github.com/user-attachments/assets/12f07b3e-f41c-4c40-a4e5-315f40676c52" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #40946 - [x] Related: #40991 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
26ec8c6bd5 |
Fix for #42186 (#42187)
## Summary of the Pull Request Move/rename a documentation file to fit a refactor that missed this file. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [X] Closes: #42186 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [X] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed I verified the link in readme.md matches the moved file in this commit. |
||
|
|
8a218860d4 |
CmdPal: Sync a RESX designer file with its RESX (#42165)
## Summary of the Pull Request This PR adds changes missing from #42115 - RESX designer file wasn't changed to matched updated RESX (blame Skynet). <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
e748f31593 |
CmdPal: Handle DWM cloak failure by keeping window hidden (#42107)
## Summary of the Pull Request This PR introduces a workaround for cases where DWM cloaking of the main window fails. If the main window cannot be cloaked by DWM, it will remain hidden until the user explicitly summons it. (Normally, we cloak the window and immediately display it under DWM's cover of darkness. When cloaking fails, the windows would be displayed permanently.) <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42082 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
b6944b432c |
CmdPal: Allow any image format as icon for protocol bookmarks (#42145)
## Summary of the Pull Request This change attempts to load any supported image format as a protocol bookmark icon, instead of restricting it to PNG only. The original implementation handled only PNG (which are common), but the manifest also supports JPG/JPEG extensions. Reference: [UWP manifest schema – uap:VisualElements](https://learn.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-visualelements) <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #42144 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed |
||
|
|
8ce4b635cf |
CmdPal: add a setting for the page transition animation (#42093)
Basically title. Closes #41869 |
||
|
|
87af08630a |
CmdPal: collection of Run Commands nits (#42092)
* Path items were being treated inconsistently * We shouldn't re-enumerate a directory on every keystroke * A bunch of elements had empty TextToSuggest (which makes it crazier that it ever worked right) Vaguely regressed in #41956 related to #39091 |
||
|
|
55f0bcc441 |
CmdPal: Make Bookmarks Great and Fast Again (#41961)
## Summary of the Pull Request This PR improves recognition and classification of bookmarks, allowing CmdPal to recognize almost anything sensible a user can throw at it—while being forgiving of common input issues (such as unquoted spaces in paths, etc.). Extended classification and exploration of edge cases also revealed limitations in the current implementation, which reloaded all bookmarks on every change. This caused visible UI lag and could lead to issues like unintentionally adding the same bookmark multiple times. ### tl;dr More details below - Introduces `BookmarkManager` (async saves, thread-safe, immutable, unique IDs, separate persistence). - Adds `BookmarkResolver` (classification, Shell-like path/exe resolution, better icons). - `BookmarkListItem` now refreshes independently; Name is optional (Shell fallback). - Uses Shell API for user-friendly names and paths. - Adds `IIconLocator`, protocol icon support, Steam custom icon, fallback icons and improved `FaviconLoader` (handles redirects). Every bookmark should now have icon, so we have consistent UI without gaps. - Refactors placeholders (`IPlaceholderParser`), adds tests, restricts names to `[a-zA-Z0-9_-]`, excludes GUIDs. - Reorganizes structure, syncs icons/key chords with AllApps/Indexer. - For web and protocol bookmarks URL-encodes placeholder values - **Performance:** avoids full reloads, improves scalability, reduces UI lag. - **Breaking change:** stricter placeholder rules, bookmark command ids. <img width="786" height="1392" alt="image" src="https://github.com/user-attachments/assets/88d6617a-9f7c-47d1-bd60-80593fe414d3" /> <img width="786" height="1389" alt="image" src="https://github.com/user-attachments/assets/8cdd3a09-73ae-439a-94ef-4e14d14c1ef3" /> <img width="896" height="461" alt="image" src="https://github.com/user-attachments/assets/1f32e230-7d32-4710-b4c5-28e202c0e37b" /> <img width="862" height="391" alt="image" src="https://github.com/user-attachments/assets/7649ce6a-3471-46f2-adc4-fb21bd4ecfed" /> <img width="844" height="356" alt="image" src="https://github.com/user-attachments/assets/0c0b1941-fe5c-474e-94e9-de3817cb5470" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #41705 - [x] Closes: #41892 - [x] Closes: #41872 - [x] Closes: #41545 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments ### Changes - **Bookmark Manager** - Introduces a `BookmarkManager` class that: - Holds bookmarks in memory and saves changes asynchronously. - Is safe to operate from multiple threads. - Uses immutable data for transport. - Separates the **persistence model** from in-memory data. - Assigns explicit unique IDs to bookmarks. - These IDs also serve as stable top-level command identifiers, enabling aliases and shortcuts to be bound reliably. - **Bookmark Resolver** - Determines the type of a bookmark (`CommandKind`: file, web link, command, etc.). - Detects its target and parameters. - Returns a `Classification` object containing all information needed to present the bookmark to the user (icon, primary command, context menu actions, etc.). - For unquoted local paths, attempts to find the *longest viable matching path* to a file or executable, automatically handling spaces in paths (e.g., `C:\Program Files`). - The resolution of executables from the command line now more closely matches **Windows Shell** behavior. - Users are more likely to get the correct result. - Icons can be determined more reliably. - **Bookmark List Items** - Each top-level bookmark item (`BookmarkListItem`) is now responsible for presenting itself. - Items refresh their state independently on load or after changes. - The **Name** field is now optional. - If no explicit name is provided, a user-friendly fallback name is computed automatically using the Shell API. - Context actions are now more in line with **All Apps** and **Indexer** built-in extensions, matching items, icons, and shortcuts (still a work in progress). - **Shell API Integration** - Uses the Shell API to provide friendly names and paths for shell or file system items, keeping the UI aligned with the OS. - **Protocol and Icon Support** - Adds `IIconLocator` and protocol icon support. - Provides a custom icon for **Steam**, since Steam registers its protocol to an executable not on the path (and the Steam protocol is expected to be a common case). - Adds `FaviconLoader` for web links. - Can now follow redirects and retrieve the favicon even if the server takes the request on a “sightseeing tour.” - Provides **Fluent Segoe fallback icons** that match the bookmark classification when no specific icon is available. - **Refactors and Reorganization** - Extracts `IPlaceholderParser` for testability and reusability. - Renames `Bookmarks` → `BookmarksData` to prevent naming collisions. - Reorganizes the structure (reducing root-level file clutter). - Synchronizes icons and key chords with AllApps/Indexer. - Refactors placeholder parsing logic and **adds tests** to improve reliability. - **Misc** - Correctly URL-encodes placeholder values in Web URL or protocol bookmarks. --- ### Performance Improvements - Eliminates full reloads of all bookmarks on every change. - Improves scalability when working with a large number of bookmarks. - Independent refresh of list items reduces UI lag and improves responsiveness. - Asynchronous persistence prevents blocking the UI thread on saves. --- ### Breaking Changes - **Placeholders** - Placeholder names are now restricted to letters (`a–z`, `A–Z`), digits (`0–9`), uderscore (`_`), hyphen (`-`). - GUIDs are explicitly excluded as valid placeholders to prevent collisions with shell IDs. - When presented to the user, placeholders are considered case-insensitive. - ** Bookmark Top-Level Command - **Bookmark Top-Level Command** - IDs for bookmark commands are now based on a unique identifier. - This breaks existing bindings to shortcuts and aliases. - Newly created bindings will be stable regardless of changes to the bookmark (name, address, or having placeholders). - <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Co-authored-by: Michael Jolley <mike@baldbeardedbuilder.com> |