Jiří Polášek
90d · built 2026-09-08
Performance
What Jiří Polášek shipped in the selected window, measured in ETV, and how it compares with the 90 days before it.
Effective capacity
+2.8engineers
delivers like 3.8 (3.8x pre-AI)
Output (ETV)
20.4ETV
+125.6% vs 9.0 prior
Features share
43.5%
+2.2 pp vs prior window
Fixes share
24.6%
−17.3 pp vs prior window
Work mix
43.5% Features9.4% Maintenance21.2% Tests1.3% Docs24.6% Fixes
55 commits over 90 days, ending 2026-09-08.
Where this dev ranks
Percentile against the global top-100 leaderboard (all-time totals).
- By commits
- Top 78 %
- By Features share
- Top 17 %
Daily performance
Daily ETV, stacked by Features, Maintenance, Tests, Docs and Fixes.
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 10 by ETV in the last 90 days.
- 4.7ETVCmdPal: Add support for multiple clocks and refactor the Time and Date module (#49288) <!-- 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 refactors Time and date extension and adds support for multiple clocks with different time zone and/or display format. - Adds a new page for viewing and managing custom clocks, each with its own time zone, title, and subtitle display format. - Adds per-clock settings. - Adds a relative date format based on the current date, for cases where a time zone difference changes the displayed date. - Makes custom clocks pinnable. - Dynamically adapts "Copy time" and "Copy date" context menu items names to actual format being copied. - Adds a new optional "Copy XXX" context menu item, to allow copy a user-selected format that doesn't match the displayed one. - Removes the fallback switch from the options (we now have a toggle for that built-in to fallback command managment). - Replaces the dock-wide seconds setting with per-clock customization. - Introduces a centralized service that updates all clocks. - Dynamically enables or disables updates for pages and bands based on whether they are currently in use. - Adds new option to select now dock band action (Open notification center or show All clock page). ## Pictures? Pictures! <img width="1298" height="530" alt="image" src="https://github.com/user-attachments/assets/0b07fc91-7823-4252-b7d9-07a95e4a2578" /> <img width="1434" height="1354" alt="image" src="https://github.com/user-attachments/assets/63e4b340-520f-404f-8252-3318b0dce0de" /> <img width="1294" height="702" alt="image" src="https://github.com/user-attachments/assets/3794d948-0eab-46ec-a1bd-baef503940ed" /> <img width="1288" height="1096" alt="image" src="https://github.com/user-attachments/assets/1e7f7299-31e7-4d06-bc07-fb1211fc799c" /> <img width="610" height="300" alt="image" src="https://github.com/user-attachments/assets/44d70270-5d0b-4534-9a6b-b94474c4d36b" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49284 - [x] Closes: #48940 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · f6b37b97 · 2026-09-04
- 3.6ETVCmdPal: Add file and list settings controls (#49623) ## Summary of the Pull Request This PR adds reusable Command Palette extension settings controls for selecting files and folders and managing lists. The new controls include: - `FilePathSetting` for selecting a single file or folder. - `FilePathListSetting` for managing multiple file and/or folder paths. - `StringListSetting` for managing plain string values. - `KeyValueListSetting` for managing key-value pairs. - Optional regex validation for strings, keys, and values. - Optional duplicate prevention for strings and key-value keys. - Configurable file picker filters. - Custom persisted-string conversion. - Fallback content when the Command Palette host does not support a control. But this has no direct impact now, because there's a bug in WinUI3 AC renderer that throws it away (sad panda). ## Pictures? Picture! <img width="856" height="974" alt="image" src="https://github.com/user-attachments/assets/2e5d9ee1-9eca-48a7-803a-76a96859722e" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49622 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 PR extends `Microsoft.CommandPalette.Extensions.Toolkit` with file-path, file-path-list, string-list, and key-value-list settings. The Command Palette host registers custom Adaptive Card input elements during application startup. The controls use native file and folder pickers parented to the window containing the form, so they work correctly in both the Settings window and palette-hosted forms. List controls render as constrained, scrollable lists with add and remove actions. They support developer-configurable validation, duplicate handling, picker modes, and error messages. List values crossing the extension/host boundary use a structured codec that preserves unknown properties and remains compatible with the previously accepted bare-string representation. Persisted values can use the default newline representation or developer-provided conversion callbacks. The SDK emits Adaptive Card `requires` and fallback information so extensions built with the new controls can provide actionable content when loaded by an older Command Palette host. A Sample Pages extension page demonstrates all new setting types and their validation options. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 14a966f3 · 2026-08-12
- 2.3ETVCmdPal: Virtualize grid views and polish it (#50233) ## Summary of the Pull Request This PR replaces that implementation with a grouped `GridView` backed by the native `ItemsWrapGrid`, allowing WinUI to realize and recycle only the containers needed for the current viewport. CmdPal grid and gallery pages used a custom `WrapPanel` that measured and arranged every item. This prevented container virtualization and made large result sets increasingly expensive. And because I'm lazy splitting and retesting everything, this PR is packing some other fixes on a way toward making the grid view usable, like keyboard navigation. - Projects the existing flat item collection into native grid groups while preserving headers, separators, ordering, and repeated header occurrences. - Reuses existing group and item wrappers during updates to avoid resetting the view or unnecessarily recreating containers. - Coalesces collection changes and safely handles reentrant updates and late header metadata. - Releases the grouped source and its subscriptions together when the view unloads or its data context changes. This prevents updates from reaching torn-down native group state, which caused the back-navigation crash. - Implements grid-aware Left/Right, Up/Down, and PageUp/PageDown navigation without depending on containers being realized. - Preserves the intended column across partial rows and section headers, scrolls off-screen targets into view, and wraps arrow navigation at list boundaries. - Adds Native AOT type preservation for `ItemsWrapGrid`. - Adds an issue-specific large-grid sample and packages the gallery image assets needed by Sample Pages. - Removes the obsolete custom wrap panel and grid template selectors. ## Pictures? Pictures! https://github.com/user-attachments/assets/90ea82b2-c96d-4e73-b51b-8cb887e4f6f1 https://github.com/user-attachments/assets/0fc46be7-07d2-4f10-9e3d-245a8d0b0c4b <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #44408 - [x] Closes: #50227 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · c0d72e73 · 2026-09-03
- 0.8ETVCmdPal: Clean up replaced command view models (#49730) <!-- 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 formalizes ownership of command view models so replacing a command releases the outgoing owned instance without cleaning up commands borrowed by synthetic context items. It applies the same cleanup discipline to parameter commands and partially built parameter lists. This is one of the places that let Command Palette hold COM proxies much longer than it's desirable. - Track whether a `CommandViewModel` is owned or borrowed. - Add replacement logic that cleans up outgoing owned commands. - Add a borrowing path for shared command instances. - Clean up commands replaced in parameter view models. - Roll back partially initialized parameter-list updates. - Add regression tests for replacement and failure paths. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · a18779ec · 2026-08-08
- 0.8ETVCmdPal: Aggregate net adapter stats and default adapter selection (#49678) ## Summary of the Pull Request This PR introduces a new virtual network adapter in performance monitor that sums up data from all physical adapters. That way users will see any network usage, and for most of them it might be good enough. For the rest, this PR adds a new command to set any network adapter as a default. - Switches from Performance Counters to raw GetIfTable2. - Adds a new virtual network adapter "All" and uses it as a default. - Adds a new command to set an actual default network adapter for the perfmon. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · 03c571e1 · 2026-08-08
- 0.7ETVCmdPal: Prevent crashes when switching main window backdrops on the fly (#49755) <!-- 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 prevents CmdPal from crashing when switching backdrops and fixes transparent tint. - Keeps a single SystemBackdrop attached and root projected targets until WinUI disconnects them. - Swaps and dispose controllers, brushes, and compositors on the XAML thread. - Restores tint for transparent solid backdrops using a retained composition brush. - Coalesces theme updates and retry transient native backdrop handoffs. - Adds a fallback background if "Ooops" happens. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49744 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · d96144a5 · 2026-08-08
- 0.6ETVCmdPal: Add extension gallery deep links (#49780) ## Summary of the Pull Request This PR extends the x-cmdpal:// protocol to allow opening the Extension Gallery and individual Extension Gallery items. Extension developers can use this to link users directly from their websites to the gallery, shortening the path to discovering and installing Command Palette extensions. - Adds typed x-cmdpal:// URI parsing in CmdPalProtocolActivation. - Adds gallery and specific-extension deep links. - `x-cmdpal://extensions/gallery` - `x-cmdpal://extensions/gallery/{extension-id}` - Opens extension details after the gallery loads. - Integrate into existing gallery navigation to prevent garbage nav stack. Pictures? Pictures! https://github.com/user-attachments/assets/d4d55b2a-2624-4a93-bdf7-55348b044b76 <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49770 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · 5b7b91c9 · 2026-08-09
- 0.6ETVCmdPal: Improve performance of Window Walker extension (#49317) ## Summary of the Pull Request This PR improves performance of Window Walker, to make it faster (or at least make it look like it is faster). - Adds cached Window Walker list items and window snapshots for faster page loading. - Changes window enumeration to refresh asynchronously without blocking initial results. - Adds lazy, sequential icon loading with cached icon data. - Reuses existing list items when window metadata changes. - Fixes incorrect destruction of borrowed window icon handles. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49315 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · e7b3346a · 2026-07-27
- 0.5ETVCmdPal: Avoid unnecessary handler runs on settings changes (part 1) (#49171) ## Summary of the Pull Request This PR stops Command Palette subscribers from re-running their full hot-reload path on every SettingsChanged event. Previously any settings edit re-registered hotkeys, rebuilt the backdrop, and tore down/recreated dock windows even when nothing the subscriber consumed had changed. - `MainWindow`: added `MainWindowSettingsComparer `(IEqualityComparer<SettingsModel>); skips HotReloadSettings unless a consumed setting changed. - `DockWindowManager`: OnSettingsChanged bails unless EnableDock/DockSettings changed; monitor-topology path still always syncs. - `DockWindow `/ `DockViewModel`: guard reloads with _settings == args.DockSettings. - `DockSettings `/ `DockMonitorConfig`: list backing fields now use a new EquatableList<T> wrapper, giving record equality content-based (not reference-based) list comparison so guards hold after a reload rebuilds the lists. - Tests: EquatableListTests and DockSettingsEqualityTests cover the wrapper and structural DockSettings equality. - Public API and persisted JSON contract unchanged (EquatableList<T> is backing-field only; properties still expose ImmutableList<T>). <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49168 - [ ] <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 Performedgithub.com-microsoft-PowerToys · a32c7592 · 2026-07-07
- 0.5ETVSet title bar preferred theme across PowerToys (#49786) <!-- 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 sets `PreferredTheme` for app title bars to `TitleBarTheme.UseDefaultAppMode` the default is TitleBarTheme.Legacy). This fixes the foreground color of caption button glyphs after a theme change. - Sets AppWindowTitleBar.PreferredTheme to TitleBarTheme.UseDefaultAppMode. - Guards title bar customization on supported Windows versions. - Updates the title bar in PowerToys: - Environment Variables; - File Locksmith; - Hosts File Editor; - Image Resizer; - Keyboard Manager Editor; - Registry Preview; - PowerToys Settings - OOBE, SCOOBE, and shortcut conflict windows. - Removes redundant SCOOBE caption-button color handling. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49758 - [x] Closes: #41327 - [x] Closes: #27199 - [x] Closes: #35378 - [x] Closes: #29387 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 > [!WARNING] > PHOTOSENSITIVITY / EPILEPSY SEIZURES > > A very small percentage of developers may experience seizures when repeatedly switching between Light and Dark themes while testing this PR. > > Symptoms may also include temporary blindness, questioning your life choices, and an uncontrollable urge to yell "WHY IS THAT GLYPH STILL BLACK?" > > Please test theme switching responsibly.github.com-microsoft-PowerToys · ef22425b · 2026-09-02