PowerToys

Productivity

Windows system utilities to maximize productivity.

Latest v0.100.2 · by MicrosoftWebsitemicrosoft/PowerToys

Release activity

Release activity — 10 releases across 10 days since Jan 20, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jan 20, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 19, 2026No releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026
MondayNo releases on Apr 20, 2026No releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026
TuesdayNo releases on Apr 21, 20261 release on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Apr 22, 20261 release on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 20261 release on Jun 10, 2026No releases on Jun 17, 20261 release on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 23, 2026No releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Apr 24, 2026No releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 20261 release on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Apr 25, 2026No releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026

10 releases since Jan 20, 2026

Changelog

v0.100.2

Release v0.100.2

Fixed 3
  • Fixed a memory leak in Command Palette identified in v0.100.1
  • Reverted a Performance Monitor dock refresh change that forced item refreshes on every metric update
  • Fixed a memory leak in the Performance Monitor dock extension by reusing stable network upload/download band items instead of creating new list items on each refresh
Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.100.2-x64.exe945FDF327E4D38E4CED61B0727B7AB8A1222958782982052989DDF7CB7096F62
Per user - ARM64PowerToysUserSetup-0.100.2-arm64.exe5554984D72C30D5FD26355569D1CA8D63B74F0062EE4E59E0186E28216C837AE
Machine wide - x64PowerToysSetup-0.100.2-x64.exe73C04AAC8052420111FE5CDC0098EC8415D87CBDBD42DE253E9AF959781CBF9E
Machine wide - ARM64PowerToysSetup-0.100.2-arm64.exeE78BBE00472612FA5BF91D8B253425F674DDD21A32C96B8A120681726CFF40F0
Highlights

This patch release fixes a Command Palette memory leak identified in v0.100.1. Check out the v0.100.1 notes for the full list of changes.

Command Palette
  • Reverted a Performance Monitor dock refresh change that forced item refreshes on every metric update in #48835
  • Fixed a memory leak in the Performance Monitor dock extension by reusing stable network upload/download band items instead of creating new list items on each refresh in #48880
View originalPermalink
How v0.100.2 went
v0.100.1

Release v0.100.1

Added 1
  • Added a Postman shortcut manifest
Changed 1
  • Updated bundled shortcut manifests to use the literal number-key token so number keys render correctly across apps
Fixed 13
  • Fixed a bug where the main Color Picker window could appear inside the zoomed-in picker view
  • Fixed Run history initialization in AOT builds
  • Fixed a bug where the Performance Monitor dock item could show ??? after restart
  • Fixed the Hibernate command using the Sleep icon
  • Limited the pin to dock dialog to displays where the dock is enabled
  • Fixed modifier keys remapped to non-modifier keys being delivered as system-key events, which caused unexpected behavior in apps such as Alt-to-Backspace deleting whole words
Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.100.1-x64.exeAA6D47950061A856F2A6C5FB12B331658FED930A05A739DDB4FEB95BFAC06187
Per user - ARM64PowerToysUserSetup-0.100.1-arm64.exe0BE062A7B74F18B54C34F78F0DA4FD5BAEBAE896A484A1B0DD41D882848967CD
Machine wide - x64PowerToysSetup-0.100.1-x64.exe4ADEC909794AE1489CA5D48BC318E9BE6DA6F9817195AE1B8ADBB52B99C4D179
Machine wide - ARM64PowerToysSetup-0.100.1-arm64.exe4E537C7C7FA31DE6D5FA4DA6DC7479CF33E52EC28F0E2C574032BAE987A4F49B
Highlights

This patch release fixes several important stability and behavior issues identified in v0.100.0 based on incoming reports. Check out the v0.100.0 notes for the full list of changes.

Color Picker
  • Fixed a bug where the main Color Picker window could appear inside the zoomed-in picker view in #48762 by @daverayment
Command Palette
  • Fixed Run history initialization in AOT builds in #48463
  • Fixed a bug where the Performance Monitor dock item could show ??? after restart in #48682 by @giruuuuj
  • Fixed the Hibernate command using the Sleep icon in #48689 by @MrBisquit
  • Limited the "pin to dock" dialog to displays where the dock is enabled in #48723
Keyboard Manager
  • Fixed modifier keys remapped to non-modifier keys being delivered as system-key events, which caused unexpected behavior in apps such as Alt-to-Backspace deleting whole words in #47192 by @oMatheusmol
Power Display
  • Fixed a bug where selecting On in the monitor power-state control did not wake a monitor from standby in #48628
  • Fixed built-in display detection and brightness control on dual-GPU laptops where the internal panel is driven by the discrete GPU in #48637
PowerToys Run
  • Fixed VS Code Workspaces discovery after VS Code moved recently opened workspace data to shared storage in #47505
Quick Access
  • Fixed Quick Access flyout crashes caused by unhandled XAML exceptions during launch or page navigation in #48457
Shortcut Guide
  • Fixed a crash when navigating between Shortcut Guide sidebar sections in #48481
  • Fixed number-key rendering in shortcut manifests and added a Postman shortcut manifest in #48461 by @brycewc
  • Updated bundled shortcut manifests to use the literal number-key token so number keys render correctly across apps in #48757 by @brycewc
ZoomIt
  • Fixed a race condition in audio initialization for ZoomIt video recording in #48685 by @MarioHewardt
View originalPermalink
How v0.100.1 went
v0.100.0

Release v0.100.0

Added 5
  • Introduce new Shortcut Guide that appears as a pane on the side of the screen and automatically detects the active application when invoked, showing relevant shortcuts
  • Add Extension Gallery to Command Palette Settings to browse, discover, install, update, and remove extensions
  • Add multi-monitor support to Dock with independent configuration per monitor
  • Add Battery widget to Performance Monitor extension showing charge level, charging status, and estimated time remaining
  • Add support for pinning individual metrics such as CPU, Memory, GPU, Network, and Battery directly to the Dock
Changed 7
  • Upgrade PowerToys to .NET 10
  • Improve auto-update reliability
  • Reduce installer size
  • Improve search experiences in Command Palette
  • Improve accessibility enhancements in Command Palette
  • Improve performance optimizations in Command Palette
  • Improve Pin to Dock experience to let users choose exactly where a command should be pinned

Hero image of what's new in version 0.100

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.100.0-x64.exeA5EB64B8CEEF096AAFBFC18E73312B45E9D48FC60FB16676429688468C9A08D6
Per user - ARM64PowerToysUserSetup-0.100.0-arm64.exeA4D7EB580A7EF36E7C98CCC84E9EBB552C9D7071DCA35B6EB395F938D03FADCF
Machine wide - x64PowerToysSetup-0.100.0-x64.exe740C01945528E453C02490921CA2BD0E399021A80CF90DCF01DB53158377D0E8
Machine wide - ARM64PowerToysSetup-0.100.0-arm64.exe19C8BD93B9A42B7FC2FF0E6F2091590F8D89B98ADEA20CC73D9023E464707B12
Highlights

PowerToys 0.100 introduces the brand-new Shortcut Guide, a major Command Palette update with the new Extension Gallery and multi-monitor Dock support, and a wave of improvements to Power Display. We've also upgraded PowerToys to .NET 10, improved auto-update reliability, reduced installer size, and continued modernizing the app experience across the suite.


⌨️ Introducing the new Shortcut Guide

The new Shortcut Guide has been designed and built from the ground up. The new experience appears as a pane on the side of your screen and automatically detects the active application when invoked, showing the shortcuts that are relevant to what you're currently doing. In addition to app-specific shortcuts, Shortcut Guide also includes a wide range of Windows shortcuts and shortcuts from enabled PowerToys utilities. Want to see if your favorite app is supported? Check out the documentation for the current list of supported applications. If you'd like to add support for another app, we'd love your help! Feel free to open a pull request, or create an issue with a link to the app's shortcut documentation.

Big thanks to @noraa-junker all the great work on this new utility!

#40834 by @noraa-junker, #40834 by @noraa-junker


⚡ Command Palette: new Extension Gallery, and multi-monitor Dock (and more!)

Command Palette was built with extensibility in mind. Developers can create their own extensions, distribute them through the Microsoft Store or WinGet, and build powerful experiences that help users get things done faster. One piece of feedback we've heard consistently is that discovering and installing extensions wasn't always easy. That's why we're introducing the Extension Gallery. Available directly from Command Palette Settings, the Extension Gallery makes it easy to browse, discover, install, update, and remove extensions without leaving Command Palette. Whether you're looking for new capabilities or managing existing extensions, everything is now just a few clicks away.

#46636 by @jiripolasek

The Dock has also received a major upgrade with multi-monitor support. Each monitor can now have its own independent Dock configuration, making it easy to tailor your setup for every display in your workspace. You can choose which monitors should display a Dock directly from Command Palette Settings, and the improved Pin to Dock experience now lets you choose exactly where a command should be pinned. Whether you want different tools on different screens or dedicated docks for specific workflows, configuring your setup is now more flexible than ever.

On top of that, the Performance Monitor extension has gained a new Battery widget, showing charge level, charging status, and estimated time remaining. We've also added support for pinning individual metrics such as CPU, Memory, GPU, Network, and Battery directly to the Dock.

#47870 by @Knyrps

Beyond these features, we've shipped dozens of fixes and improvements across Command Palette, including better search experiences, reliability improvements, accessibility enhancements, performance optimizations, and extension platform updates.

A huge thanks to @jiripolasek for the sustained Command Palette work across this release!


🖥️ PowerDisplay improvements

This release focuses heavily on reliability, compatibility, and monitor detection improvements. Startup is now significantly faster on many systems, monitor identification is more reliable across reboots, and monitor settings are preserved more consistently. We've also introduced a new Max Compatibility Mode for displays that don't properly advertise DDC capabilities, helping Power Display work with a wider range of monitors. Several usability improvements have landed as well. The flyout can now be dismissed using Escape, sliders support mouse wheel adjustment, and displays are automatically rescanned when your PC wakes from sleep.


🔍 ZoomIt: webcam capture and recording improvements

This release adds support for a webcam overlay while recording, making it easier to create demos, presentations, and tutorials. We've also added support for appending multiple clips with transitions, allowing you to stitch recordings together without leaving ZoomIt.


🔄 Foundations and platform improvements

This release, we have also focused on making the PowerToys foundations better: we've upgraded the project to .NET 10, helping us stay current with the latest platform improvements and tooling and making the overall experience faster! We've also reduced the installer footprint (by 15%), making downloads smaller and installations more efficient.

Big thanks to @snickler for driving the .NET 10 upgrade!

Auto-update has also become more reliable. PowerToys now properly relaunches after updating, provides clearer success notifications, and automatically backs up configuration files before updates so settings can be restored if corruption is detected.

As part of our ongoing modernization efforts, both Quick Accent and Workspaces have moved away from custom WPF theming libraries and now use native Fluent-inspired WPF styling. This helps them better align with the overall PowerToys experience and modern Windows design language. Workspaces in particular received a significant UX refresh, with updated typography, spacing, layout improvements, and a cleaner overall experience.


🧩 Other notable changes
  • Keyboard Manager: The new WinUI 3 editor is now enabled by default.
  • Mouse Without Borders: Added a new Refresh Connections action to quickly reconnect devices.
  • Image Resizer: Changes to settings can now be picked up automatically without restarting the experience.
  • Quick Accent: Improved reliability on high-DPI and multi-monitor setups, along with support for Greek Polytonic characters.
  • Peek: Added an option to disable file preview tooltips.
  • PowerToys Run: Improved calculator handling for complex-number scenarios and documented a new community Disk Analyzer plugin.

Full release notes
Advanced Paste
  • Fixed Advanced Paste clipboard-to-JSON conversion so clipboard read failures return an empty result instead of surfacing an exception in #48124
Command Palette
Extension Gallery & Extensions
  • Added the Command Palette Extension Gallery so users can discover, browse, install, update, and uninstall community extensions from within Command Palette, with cached gallery data, extension details/screenshots, and WinGet status/progress integration in #46636 by @jiripolasek

  • Added Command Palette parameter pages so extensions can prompt for lightweight command inputs directly in the search experience, including sample pages and SDK support for parameter runs in #47826

  • Updated Command Palette bookmarks to collect placeholder values as inline parameters, so bookmarked commands can be filled in directly instead of opening a separate placeholders page in #47886

  • Improved Command Palette Extension Gallery link handling so only HTTP/HTTPS homepage, author, install, and metadata links are shown or opened from the gallery UI in #47898 by @jiripolasek

  • Fixed Command Palette Extension Gallery UI bindings so WinGet operation indicators continue to update correctly without build warnings in #47899 by @jiripolasek

  • Fixed an AOT-only Command Palette Extension Gallery crash when opening an extension page with screenshots in #48065

  • Updated the Command Palette extension template to use the 0.11 SDK package in #48066

  • Improved Command Palette accessibility so Narrator announces checkbox labels on the Installed Apps page in Extensions settings in #48135 by @chatasweetie

Dock
  • Added Command Palette Dock support for customizing dock bands separately per monitor, allowing multi-monitor setups to keep independent dock layouts in #46915

  • Added Command Palette Dock edit mode support for dragging dock bands between monitors, so pinned commands can move across per-monitor dock layouts in #47921

  • Added Command Palette Dock drag-and-drop bookmarking for files and URLs, immediately creating and pinning bookmarks, improving pinned folder bookmarks so they open the Command Palette browse experience in #47989

  • Fixed Command Palette dock context menu commands so Page commands and confirmation dialogs open the palette at the dock item when invoked from a dock item menu in #47991

  • Fixed Command Palette Dock band tooltips so they refresh when the item title or subtitle changes in #47557

  • Fixed Command Palette dock startup animations so items pinned to the End section animate consistently with Start and Center items in #48099

  • Fixed Command Palette dock subtitle visibility in compact mode so subtitles refresh correctly after async updates in #48088 by @michaeljolley

  • Fixed Command Palette hotkey navigation when the palette is showing a transient dock page in #48089 by @michaeljolley

  • Fixed a Command Palette dock window border that occasionally remained visible after disconnect/reconnect, by ensuring the owner HWND is set before frame removal in #48180

  • Improved the Command Palette Pin to Dock dialog by reordering controls so they appear above the preview, making the dialog easier to scan in #48250

Performance Monitor
  • Added a Battery widget to Command Palette Performance Monitor that shows live charge percentage, charging/AC status, and estimated time remaining, updating the dock-band battery icon to reflect current charge level and charging state in #47870 by @Knyrps

  • Added Command Palette Performance Monitor dock bands for individual metrics like CPU, memory, network, GPU, and battery when available in #47967

  • Fixed Command Palette Performance Monitor's CPU dock reading to use a 0–100% system CPU counter, preventing boosted CPUs from showing values above 100% in #47864 by @Knyrps

  • Improved Command Palette Performance Monitor network widgets by giving Send and Receive distinct up/down arrow icons and simplifying their labels in #48118

  • Reordered Command Palette Performance Monitor network dock bands to match Task Manager's send/receive order in #48098 by @michaeljolley

  • Fixed a Command Palette Performance Monitor crash when a GPU index falls outside the available range in #48103 by @michaeljolley

  • Fixed a Command Palette Performance Monitor settings file path collision that could cause widget settings to overwrite one another in #48251 by @namdpran8

Calculator
  • Added rand() and randi() to the Command Palette Calculator and improved error messages by distinguishing invalid expressions, NaN, and out-of-range results in #47725 by @daverayment
  • Fixed Command Palette Calculator parsing for multi-argument functions in cultures where comma is both thousands separator and argument separator, so expressions like max(1,2) and grouped numbers are handled correctly in #47731 by @daverayment
  • Fixed the Command Palette and Run Calculator 'log' and 'ln' functions when whitespace separates the function name from its argument, so 'log (n)' computes log base 10 and 'ln (n)' no longer errors out in #47767 by @daverayment
Reliability & UX
  • Added a pinned commands section to the Command Palette Home page with context-menu actions for reordering pinned commands in #45869 by @jiripolasek

  • Updated Command Palette Shell provider to behave more like Windows Run, improving command execution and suggestions for network paths, NTFS paths, and other edge-case paths in #47642

  • Improved Command Palette Window Walker by showing a loading state while open windows are queried during search in #47919

  • Improved Command Palette list items by limiting visible tag pills to three and showing a +N overflow badge, preventing tags from crowding out titles in #47140

  • Added a Command Palette All Apps setting to hide app description subtitles in search results for a cleaner list view in #47128

  • Fixed Command Palette back navigation so the bottom command bar refreshes immediately when returning with Esc or Backspace in #47126

  • Fixed Command Palette Extensions settings text so single command and fallback command counts use singular wording in #47125

  • Improved Command Palette extension logging by routing extension messages to info, warning, or error logs according to their reported severity in #47896

  • Updated Command Palette versioning to 0.11 in #47841

  • Added stable Command Palette automation IDs so UI testing tools can reliably target controls and generated list items across sessions in #48033

  • Fixed Command Palette Dock positioning when opening palette items from secondary displays, so the palette appears on the correct monitor in #48061

  • Updated developer documentation with steps for debugging Command Palette directly through its Visual Studio solution filter in #48108 by @Morma016

  • Added Command Palette Remote Desktop support for connecting to arbitrary hostnames typed into the list page, in addition to discovered connections in #48069 by @michaeljolley

  • Improved Command Palette result scoring by synchronising fallback title and subtitle formatting so similar items rank consistently in #48085 by @michaeljolley

  • Added a Command Palette "Show details" / "Hide details" toggle (with an icon) to the context menu, replacing the previous separate entries in #48140 by @chatasweetie

FancyZones
  • Added translator-comment guidance to the FancyZones Editor strings 'Space around zones' and 'Highlight distance' so localizers translate them as margin/padding and adjacent-zone detection distance, fixing misleading Japanese renderings in #47226
File Explorer
  • Fixed a Markdown preview crash on UTF-8 files (notably CJK content) that exceeded WebView2's NavigateToString byte limit by switching the size check to count UTF-8 bytes and falling back to the temp-file rendering path when the threshold is exceeded in #47391
File Locksmith
  • Fixed File Locksmith handling of Unicode file paths when passing paths between normal and elevated runs, preventing certain non-ASCII paths from being corrupted in #47361
Grab And Move
  • Fixed the LNK2038 C++/WinRT version mismatch breaking GrabAndMove on CI by adding the Microsoft.Windows.CppWinRT NuGet to GrabAndMove.vcxproj so it uses the repo-pinned CppWinRT instead of whatever the Windows SDK ships in #47910

  • Removed the "NEW" tag from the Grab And Move entry in Settings now that the module has shipped through a full release in #48174 by @moooyo

Image Resizer
  • Added live settings reload to Image Resizer so external changes to settings.json take effect immediately without relaunching the flow in #45266 by @daverayment
  • Improved Image Resizer accessibility so Narrator announces the Resize button by name and the window title now reads 'Image Resizer' instead of the generic 'WinUI Desktop' in #47752
Keyboard Manager
  • Enabled the redesigned Keyboard Manager editor by default, so new installations open the WinUI 3 editor without changing settings in #48245
Mouse Without Borders
  • Added Mouse Without Borders Refresh Connections to Quick Access and the Settings Dashboard so users can reconnect devices faster in #46025
  • Refactored Mouse Without Borders logging cleanup with no intended user-facing behavior change in #44553 by @mikeclayton
Peek
  • Added a 'Show file preview tooltip' toggle to Peek's Behavior settings so users can disable the on-hover metadata tooltip (filename, type, date modified, size), and fixed the binding so toggling off no longer leaves an empty popup attached in #46624
PowerDisplay
  • Improved Power Display by automatically disabling the feature after a detected DDC/CI capability crash and showing a Settings warning before users re-enable it in #47734

  • Fixed Power Display flyout keyboard handling so pressing Escape closes the window in #48026

  • Improved Power Display monitor detection by rescanning displays when the screen wakes and temporarily locking controls until the refresh completes in #47876

  • Updated PowerToys documentation to include telemetry events for Grab And Move and Power Display in #47228

  • Updated Power Display localization comments so the product name remains untranslated in UI strings, including the system tray tooltip in #47351

  • Improved Power Display monitor discovery by distinguishing internal panels from external monitors before applying brightness controls, reducing unnecessary DDC/CI probing on built-in displays in #47740

  • Fixed Power Display upgrades so existing per-monitor preferences are carried forward from older monitor IDs to the current stable IDs in #47977

  • Added a Power Display Max compatibility mode setting that can find monitors skipped by standard DDC discovery, with an immediate rescan and warning in Settings when enabled in #47875

  • Improved Power Display brightness, contrast, and volume sliders by committing changes after a short debounce and allowing mouse-wheel adjustments in #47756

  • Fixed Power Display brightness, contrast, and volume controls on monitors whose native DDC/CI ranges are not 0-100 by scaling slider percentages correctly in #47679

  • Added a Power Display Settings confirmation prompt before enabling the module and improved monitor diagnostics for troubleshooting in #48111

  • Fixed Power Display per-monitor settings so toggles persist across restarts, monitor reordering, and transient discovery failures in #47712

  • Added a built-in Power Display monitor blacklist so known problematic displays are skipped during DDC/CI discovery and reported in logs instead of being probed in #48051

  • Fixed a Power Display false-positive crash detection when the host process exits cooperatively, so the safety lockout no longer triggers on clean shutdowns in #48173 by @moooyo

  • Removed the "NEW" tag from the Power Display entry in Settings now that the module has shipped through a full release in #48174 by @moooyo

  • Reworked the Power Display warning dialog with clearer messaging, distinct warning kinds, and a dedicated dialog view-model so users get more actionable guidance after a DDC/CI issue in #48249

PowerToys Run
  • Improved PowerToys Run Calculator to return a friendly error for expressions whose result is a complex number (e.g. sqrt(-1)) instead of throwing during decimal conversion in #47506 by @MardSilva
  • Documented the third-party PowerToys Run plugin Community.PowerToys.Run.Plugin.DiskAnalyzer for scanning folders/drives to find the largest files and folders in #48106 by @thetsaw
Quick Accent
  • Updated Quick Accent’s popup UI to standard PowerToys styling while keeping the accent selector experience unchanged in #46604
  • Improved Quick Accent language selection consistency by sharing the same language list between the accent popup and Settings UI in #47211 by @daverayment
  • Added Greek Polytonic as a Quick Accent language, making polytonic Greek characters available from matching letter keys and Settings in #47021 by @daverayment and @guidotorresmx
  • Fixed Quick Accent popup sizing, positioning, and selection glitches on high-DPI or multi-monitor setups, and improved Shift-key detection for navigation in #46593 by @daverayment
Settings
  • Added Image Resizer size preset validation so empty or whitespace names are ignored, keeping presets named and easier to understand in #45425

  • Fixed the Settings UI resource list by removing a duplicate Quick Accent Greek Polytonic language entry, allowing Settings builds to complete cleanly in #48054

  • Improved Settings UI with refreshed PowerToys imagery, constrained OOBE/SCOOBE layouts, and cleaner General settings controls and icons in #48024

  • Fixed the Settings “No shortcuts to show” empty-state message so it displays with a single period in #47287 by @daverayment

  • Updated Grab And Move settings localization guidance so the Korean translation for “Activation modifier key” uses the feature activation meaning instead of product activation wording in #47352

  • Fixed the Quick Access flyout shortcut editor so clicking Reset no longer crashes PowerToys Settings and leaves the shortcut empty cleanly in #47407

  • Fixed PowerToys auto-update so it now actually relaunches after install with a 'successfully updated' toast, backs up all JSON configs before updating with restore on detected corruption, and defaults AutoDownloadUpdates to true for fresh installs in #46889

  • Renamed the OOBE overview "Learn" link label to "Documentation" so the call-to-action is clearer to first-time users in #48155

Shortcut Guide
  • Fixed Shortcut Guide key visuals to show readable key names instead of raw numeric key codes, while preserving arrow key glyph behavior in #48037 by @noraa-junker

  • Improved Shortcut Guide V2 reliability and accuracy by showing the configured shortcut, including additional PowerToys module shortcuts, matching app manifests correctly, and exiting cleanly from Esc or the close button in #48043 by @noraa-junker

  • Added Shortcut Guide V2, a redesigned shortcut reference with built-in manifests for Windows, PowerToys, and common apps, plus taskbar/context-aware navigation and updated Settings, OOBE, docs, and installer support in #40834 by @noraa-junker

  • Renamed the Settings UI module label from "Shortcut Guide V2" to "Shortcut Guide" now that V2 is the only shipping version in #48151

  • Fixed a Shortcut Guide V2 crash that occurred when the per-app Manifests directory was missing or unreadable, by treating the directory as empty in that case in #48171 by @MuyuanMS

  • Reworded the Shortcut Guide module and OOBE descriptions so they better explain what V2 does and how to invoke it in #48248

Workspaces
  • Reworked the Workspaces editor with WPF Fluent theming (dropping ControlzEx and ModernWpf), refined fonts, spacing, and Mica background, and moved action buttons to the top with full-width scrolling in #46172 by @Jay-o-Way
ZoomIt
  • Removed a stale Microsoft.Windows.ImplementationLibrary NuGet import from ZoomItBreak.vcxproj that was unused but broke the official build after the .NET 10 upgrade bumped the sibling project's WIL version in #47649
  • Added webcam capture overlay and multi-clip append-with-transitions support to the ZoomIt recording/trim editor, exposed the new options in the ZoomIt Settings page, and fixed microphone/webcam selection-dialog bugs along the way in #47529 by @foxmsft and @markrussinovich
  • Fixed ZoomIt's record-hotkey registration so when Alt is the only modifier the window-record hotkey (base XOR Alt) is no longer registered as a modifier-less key that had been hijacking every bare keypress in #47388
  • Exposed ZoomIt's 16:9 aspect-ratio toggle for the screen-region recording hotkey (default Ctrl+Shift+5) in the PowerToys Settings UI in #47695 by @foxmsft
Development
  • Build / dependency improvements:
    • Updated PowerToys build and developer tooling to .NET 10, with Visual Studio 2026 now required for building from source in #41280 by @jerone and @snickler
    • Fixed Shortcut Guide v2 release signing by adding the YamlDotNet dependency to the signed binaries list in #48050
    • Updated shared PowerToys .NET runtime and library packages from 10.0.7 to 10.0.8 for the latest servicing fixes in #48010 by @snickler
    • Improved PowerToys build tooling so build scripts discover Visual Studio 2026 Insiders/Preview installations with C++ tools and skip unusable installs in #47462
    • Updated PowerToys WinUI platform dependencies, including Windows App SDK 2.0.1 and WebView2, for apps and the Command Palette extension template in #47470
    • Updated shared PowerToys .NET runtime and library packages from 10.0.6 to 10.0.7 for the latest servicing fixes in #47517 by @snickler
    • Fixed Quick Accent release signing by adding PowerAccent.Common.dll to the signed binaries list in #48058
    • Fixed Advanced Paste release signing by adding the Google Gemini-related dependency DLLs to the signed binaries list in #48001
    • Updated Advanced Paste AI dependencies, including Semantic Kernel and provider connectors, to newer package versions in #47819
  • CI & automation:
    • Added a Telemetry PR Check workflow that detects telemetry event changes in pull requests and posts contributor guidance in #47889
    • Updated GitHub issue triage automation by renaming the area-labeling workflow and removing the legacy product auto-label workflow in #47911
    • Added GitHub issue triage automation that applies Product/Area labels to new or reopened issues and supports manual backfill in #47808
    • Fixed GitHub issue auto-labeling by correcting Product label names so the workflow applies existing repository labels in #48027
    • Added a GitHub Action and tester for issue triage that applies Product labels from issue template areas, with AI fallback and manual modes in #47485
    • Fixed GitHub issue auto-labeling so the workflow can authenticate with GitHub Models and apply area labels again in #47820
    • Updated spell-check CI expectations by removing obsolete tokens, reducing noisy advisory comments on pull requests in #48110
    • Updated CI to skip automatic builds for draft pull requests until they are ready for review in #47442
    • Fixed the README roadmap reference for v0.100 so it renders as a clickable milestone link in #47785
    • Updated README download guidance to point users to release assets and changes the release notes link to the releases page in #47432
    • Updated the GitHub issue tracker duplicate-resolution reply to more clearly point users to the original tracking issue in #47981
  • Setup / installer:
    • Shrunk the PowerToys installer by removing genuinely-unused dependencies (System.Data.SqlClient, MFC/AMP/OpenMP VC++ runtime DLLs) and deduplicating WinAppSDK files between the install root and WinUI3Apps subfolder, reducing download size by roughly 11 MB in #47233
  • Enterprise / GPO:
    • Bumped the en-US ADML revision to 1.20 to match the ADMX file, fixing a Group Policy Editor load error that prevented administrators from loading the PowerToys policy templates in #47672
    • Migrated spdlog from a git submodule to vcpkg manifest mode with an overlay port pinned to the same upstream commit (gabime/spdlog@616866fc), replacing the polyfill shim and removing the in-tree src/logging/ wrapper in #48039
    • Removed the last git submodule (deps/expected-lite) since the code path that used it had already been switched to std::expected, leaving PowerToys fully submodule-free in #48159 by @DHowett
    • Fixed a grammar typo in the PowerToy project-template README, changing "Settings Informations" to "Settings Information" in #48148 by @P-r-e-m-i-u-m
    • Moved the Command Palette API spec back into src/modules/cmdpal/doc/ so the spec lives alongside the generated API code that consumes it in #48160
View originalPermalink
How v0.100.0 went
v0.99.1

Release v0.99.1

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.99.1-x64.exeCAD34AA632251CFB9BDA1D6FE70E0BD5C150AC6FEC7AFB0BA179DF90413430CD
Per user - ARM64PowerToysUserSetup-0.99.1-arm64.exe7BD4C3E66D64339C40DD42EC58DE8F25E2B81ECD90C45F0AD95247024F508705
Machine wide - x64PowerToysSetup-0.99.1-x64.exe29210F756B93DC1871694FC2A6BE89AB0BC76227F66FFBA0F5A80F408E576CDD
Machine wide - ARM64PowerToysSetup-0.99.1-arm64.exe64B2B06FE83F2F287EAFED4DE445C88CFCA6C9CAE14C718FD31E4D57EAEFB3DF
Highlights

This patch release fixes several important stability and behavior issues identified in v0.99.0 based on incoming reports. Check out the v0.99.0 notes for the full list of changes.

Command Palette
  • Fixed a crash on startup when loading settings caused by null DockSettings deserialized from settings.json in #47296
  • Fixed a bug where dock label settings were not persisted across sessions in #47317
Grab And Move
  • Fixed a bug where releasing the absorbed Alt key while pressing another key prevented it from propagating correctly to other apps in #47261
  • Fixed a bug where there Start menu and other OS surfaces would be draggable in #47302
  • Fixed a bug where the G key would be blocked, or Game Bar would be activated, when the modifier was set to Win key in #47326
Power Display
  • Added additional diagnostic logging to help investigate display detection and control issues in #47270
  • Defaulted the Input Source, Color Temperature, and Power State controls to off and added a confirmation dialog before applying these potentially disruptive changes in #47303
  • Used the localized "Built-in Display" name for the internal display instead of a hard-coded string in #47321
View originalPermalink
How v0.99.1 went
v0.99.0

Release v0.99.0

Hero image of what's new in version 0.99

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.99.0-x64.exe1E3586A2ECD454B86FE61C44B003E0027FCC24DCB5135958B73D04A58285618C
Per user - ARM64PowerToysUserSetup-0.99.0-arm64.exe2BCA2A1EDB0077FAF752DDE95C8D02A0A7A70F8E5128F43EA58432BBBE4E3C62
Machine wide - x64PowerToysSetup-0.99.0-x64.exe47D193F77A99FFB606A5E7132B0736BB0FB86BED6F30D68C4269DBDD6928C0AF
Machine wide - ARM64PowerToysSetup-0.99.0-arm64.exeB9E9CDDBFE17F785A1A05420636AD716A323FC26B8D55D3B554879BB1F0BF2E8
Highlights

PowerToys 0.99 introduces Power Display for controlling your monitors from the system tray, Grab And Move for quickly moving and resizing windows, and a wave of improvements to Command Palette and the Dock, along with updates across the utility suite.


🪟 Introducing Grab And Move - drag and resize windows from anywhere (Preview)

This release introduces Grab And Move, a new utility that lets you drag and resize windows without having to target the title bar or window edges. Hold Alt + Left Click anywhere on a window to drag it, or Alt + Right Click to resize it from wherever your cursor is. For users who already use Alt as a system modifier, you can now choose to use the Win key instead.

Grab And Move is ideal for large monitors or windows that have moved off-screen, and it integrates with the existing Settings experience including GPO policy support, an OOBE page, and a modifier-agnostic configuration UI.

#47024 by @foxmsft


🖥️ Meet Power Display: control your monitors right from the system tray (Preview)

Meet Power Display, a new utility that lets you control your hardware monitors right from the system tray. Once enabled, you can open the flyout from the tray icon or a configurable shortcut to quickly access your connected monitors. Power Display automatically detects your displays and, if supported, lets you adjust settings like volume, brightness, contrast, and color profile. No more reaching for those hard to find buttons on the back of your screen!

You can also create profiles to quickly switch between different setups with a single click. Profiles can be configured in Settings and will appear directly in the flyout for easy access.

Lastly, Power Display profiles can now be automatically switched with Light Switch. In the Light Switch settings, you can select a profile as an action, making it easy to adjust your monitor settings based on the current light or dark theme.


⚡ Command Palette: Compact Dock, Calculator history, and reliability

This release brings a large set of fixes and improvements to Command Palette and the Dock. Alongside a wide range of performance and stability improvements, this release also introduces new capabilities, including support for plain text and image viewer content types for extensions, making it possible to display raw text and zoomable images directly in the content pane, as well as a persistent calculator history with options to save, reuse, delete, and clear entries, plus a configurable primary action and the ability to replace the query on enter.

We've also made several improvements to the Dock experience. You can now choose to keep the Dock always on top of other windows. When the Dock is positioned at the top or bottom of the screen, a new Compact mode is available, offering a more condensed layout that hides the subtitle!

Pinning has also been improved. When you pin a command from Command Palette, a new dialog lets you choose where it appears in the Dock and whether to show or hide the title and subtitle.

This release also fixes two separate typing-crash scenarios, hardens extension loading so one faulty extension no longer takes down the whole list, improves indexer search with filename broadening and Windows Search availability indicators, and adds Windows Terminal profile pinning with per-profile icons.

Massive thanks to @jiripolasek for the sustained Command Palette work across this release!


⌨️ Keyboard Manager improvements

In the last release, we introduced a new Keyboard Manager Editor that makes it easier to create and manage remappings. In this release, we are refining that experience further. You can now manually tweak recorded keys. After recording a remapping, each key becomes a dropdown, allowing you to adjust it or select keys that may not exist on your physical keyboard.

We also added a new action called Disabled, which lets you quickly disable specific keys or shortcuts.

We also fixed an important issue with multi line text replacement, significantly improving reliability in chat apps and plain text editors.


🔍 ZoomIt gets scrolling screenshots

ZoomIt also brings several enhancements to productivity and capture workflows. You can now take scrolling screenshots, making it easier to capture long pages or content that extends beyond the visible screen. We've also added text extraction directly when snipping, so you can quickly grab and reuse text without extra steps. In addition, the break timer has been improved with a new screen saver mode, helping you step away and take breaks more effectively.


🧩 Other notable changes
  • Image Resizer: The UI has been migrated from WPF to WinUI 3, bringing a more modern look and improved consistency with the rest of PowerToys.
  • Advanced Paste: Fixed auto-copy failing on Electron/Chromium apps like Teams and VS Code by releasing held modifier keys before injecting Ctrl+C.
  • Settings: Multiple UI and usability improvements across different utilities.
  • General: Streamlined default module states so new installations start with a lighter initial experience
  • System tray icon: We've updated the monochrome PowerToys system tray icon and added a badge that appears when an update is available.

Full release notes
Advanced Paste
  • Eliminated 13 XAML compiler warnings by switching x:Bind expressions on non-observable properties from OneWay to OneTime mode in #46726
  • Fixed auto-copy failing on Electron/Chromium apps (e.g. Teams, VS Code) by releasing held modifier keys before injecting Ctrl+C in #46486
Always On Top
  • Fixed the pin/unpin sound playing even when the operation failed by gating sound playback on whether SetWindowPos actually succeeded in #46910
Command Palette
Dock
  • Added a new pin-to-Dock dialog that gives users more control over how commands are pinned, replacing the previous one-click pin behavior in #46436 by @niels9001.
  • Added a Compact Dock mode (28px tall, subtitle hidden) for Top/Bottom dock positions, and hid the Dock Size setting for Left/Right positions in #46699
  • Made the Dock window stay on top of all other windows by default, automatically yielding when a full-screen app is detected in #46163 by @jiripolasek.
  • Decoupled the Dock context menu from the Command Bar's active item so it no longer updates when a different list item is selected, and made the Dock search box position follow the Dock position in #46420 by @jiripolasek.
  • Fixed duplicate dock bands caused by missing duplicate check when pinning in #46438
  • Fixed a build-breaking merge inconsistency in DockWindow.xaml.cs in #46639 by @jiripolasek.
  • Fixed the Dock not reflecting pin/unpin changes until restart in #47169
  • Fixed the Dock window showing a visible frame on startup by hiding the DWM border during window creation in #47187
Extensions & SDK
  • Added plain text viewer and image viewer IContent types to the extension SDK in #43964 by @jiripolasek.
  • Added persistent calculator history with save, reuse, delete, and clear actions, configurable primary action, and replace-query-on-enter behavior in #45307 by @jiripolasek.
  • Added a NetworkSpeedUnit choice setting to the Performance Monitor extension (bits/s, decimal bytes/s, IEC binary bytes/s) in #46320 by @niels9001.
  • Enabled dock pinning of Windows Terminal profiles with per-profile icons, and hardened GUID parsing so a malformed profile entry no longer breaks the whole list in #46372
  • Assigned stable IDs to FancyZones layout commands in the PowerToys extension so users can pin individual layouts to the dock in #46198 by @vanzue.
  • Hardened the Performance Monitor extension with exception handling and crash recovery via a sentinel file mechanism in #46541 by @jiripolasek.
  • Gave each built-in extension its own settings file with transparent one-time migration from the legacy shared settings.json in #46685 by @michaeljolley.
  • Shipped Copilot instructions and 5 skills (publish-extension, add-adaptive-card-form, add-extension-settings, add-dock-band, add-fallback-commands) inside the extension template in #46683 by @niels9001.
  • Fixed invisible/corrupted icons in newly created extensions by extracting template expansion into a dedicated service that no longer rewrites binary files in #46490 by @jiripolasek.
  • Fixed a Watson crash where a single extension in a bad state would kill the entire extension-loading loop in #47032
  • Fixed right-click context menus failing to open on the first attempt for slow out-of-process third-party extensions in #46626 by @jiripolasek.
  • Fixed the Settings toggle for disabling fallback commands from out-of-process extensions by switching the type check from a concrete class to the WinRT interface in #47127
  • Simplified the Time & Date extension page to recalculate results on every query rather than caching, breaking a potential infinite update loop in #46396 by @jiripolasek.
  • Fixed Calculator extension unit tests failing under non-English cultures in #46911 by @niels9001.
Search & Indexer
  • Improved indexer search with implicit filename broadening for plain free-text queries, retry-with-literal matching for punctuation-heavy searches, and a Windows Search availability indicator in #46907 by @jiripolasek.
  • Fixed a crash when converting large calculator results to hex/oct/bin by switching the secondary-results base conversion to BigInteger with a custom base converter in #46176 by @jiripolasek.
  • Split the full-screen shortcut guard into separate full-screen and busy checks with an opt-in IgnoreShortcutWhenBusy setting, added a live diagnostic InfoBar, and introduced an opt-in triple-press breakthrough to bypass suppression in #45891 by @jiripolasek.
  • Fixed the Window Walker Close window command to respect the "Keep open after closing window" setting and automatically refreshed the window list in #45721 by @jiripolasek.
Reliability & UX
  • Fixed a 100% reproducible crash when typing in the search box by adding a reentrancy guard around filtered-items mutations in #47148 by @MuyuanMS.
  • Fixed a second typing crash that occurred when the indexer fallback was enabled by correcting a P/Invoke function signature in #47186
  • Hardened ListViewModel item-fetch synchronization with copy-on-write cache publication, latest-fetch-wins semantics, and improved cancellation cleanup in #46429 by @jiripolasek.
  • Refactored settings and app state to be immutable end-to-end to eliminate concurrency race conditions in #46451 by @michaeljolley.
  • Added a CanGoBack guard to Frame.GoBack, preventing a crash when navigating back with an empty navigation stack in #46493 by @jiripolasek.
  • Fixed duplicate and contradictory Pin to Dock/Unpin from dock context menu entries appearing on top-level home-page items in #46458 by @michaeljolley.
  • Prevented PgUp/PgDown paging from landing on non-interactive entries like separators and section headers in #46439 by @jiripolasek.
  • Fixed keyboard focus restoration on the Extensions settings page so Shift+Tab returns to the previously selected extension card in #45903 by @jiripolasek.
  • Reverted focus-restoration on the Extensions settings page that was causing clicks to open the wrong extension item in #46642 by @jiripolasek.
  • Fixed inline code (backtick text) in the Details and Content panels being invisible on light-theme backgrounds in #46739 by @michaeljolley.
  • Fixed the Window Walker "Not Responding" tag being illegible in dark mode in #46924 by @niels9001.
  • Fixed a WinUI layout bug where the settings page content was visually offset when wrapped in a ScrollViewer with MaxWidth in #46568
  • Fixed a regression in PinToDockDialogContent.xaml where a type rename was missed during a merge gap in #46599 by @jiripolasek.
  • Fixed a screen reader accessibility issue where the Alias text box announced "Enter Alias" instead of just "Alias" in #45906
  • Added screen reader announcements for shortcut key information on the settings button in #46164 by @chatasweetie and @jiripolasek.
  • Removed redundant container-level tab stops in the details panel for improved keyboard accessibility in #46346 by @chatasweetie.
Infrastructure & Code Quality
  • Extracted persistence and file I/O logic from SettingsModel and AppStateModel into dedicated service classes in #46312 by @michaeljolley.
  • Introduced CmdPalLogger, CmdPalLoggerProvider, and an extension method integrating Microsoft.Extensions.Logging with ManagedCommon.Logger in #46768 by @michaeljolley.
  • Bumped all CommunityToolkit.WinUI packages from 8.2.250402 to 8.2.251219 and removed three SearchBar workaround hacks in #46027 by @niels9001.
  • Enabled telemetry event firing correctly in AOT builds by adding EventSourceSupport in #47121
  • Updated the extension solution filter files to include new transitive dependencies and added a leaner SLNF for faster developer builds in #46896 by @jiripolasek.
  • Updated the Microsoft.CmdPal.Ext.PowerToys solution filter file to include missing project dependencies in #46136 by @jiripolasek and @vanzue.
  • Removed a legacy workaround for FontIconSource.CreateIconElement (fixed in WinAppSDK 1.8.4) in #45790 by @jiripolasek.
  • Moved developer documentation to doc/devdocs/modules/cmdpal to align with other PowerToys modules in #46926 by @niels9001.
  • Bumped Command Palette version to 0.10 in #47181
Image Resizer
  • Migrated Image Resizer from WPF to WinUI 3, unblocking future AOT compilation and aligning with Windows 11 design language in #45288 by @moooyo and @niels9001.
  • Restored honoring the user-configured JPEG quality setting when resizing JPEGs, which had been silently ignored at a fixed ~Q90 default after the WinUI 3 migration in #47134
  • Fixed missing PNG encoder settings by applying codec-specific encoder properties in the transcode path in #46695 by @moooyo.
  • Fixed a regression where JsonPropertyName attributes were not forwarded by the ObservableProperty generator, restoring correct JSON serialization in #47056
Keyboard Manager
  • Reverted multiline text replacement back to character-by-character sending with Shift+Enter for newlines, fixing multiline replacements in chat apps and plain editors in #46794
  • Addressed code review feedback on manual key selection: fixed localization, centralized VK_DISABLED constants, added validation for disable mappings, fixed dropdown revert logic, and plugged Process handle leaks in #46377
Light Switch
  • Fixed Light Switch and PowerDisplay integration by re-enabling the Apply monitor settings expander and disabled-warning InfoBar in Settings, and ensuring every hotkey press notifies PowerDisplay instead of only every other press in #47190
Mouse Utilities
  • Refactored PadImage in PowerOCR (Text Extractor) to improve memory management and nullability clarity in #44906 by @adelobosko.
Peek
  • Added auto-detection of file name encoding when previewing zip files, fixing garbled text for archives created on non-UTF-8 systems in #44799 by @oxygen-dioxide.
Power Display
  • Re-enabled the PowerDisplay module with a new icon/logo, DPI fixes, UI/UX improvements, and installer integration in #46489
  • Cleaned up the PowerDisplay module by fixing resource leaks, removing dead code, converting a recursive parser to iterative, and changing the default activation shortcut to Win+Ctrl+Shift+P in #46979
  • Fixed thread safety by marking shared fields as volatile, guarding color temperature writes behind a capability check, and correcting a misleading log message in #47008
  • Fixed PowerDisplay startup restore, volume initialization, and Identify window lifecycle in #47051
  • Introduced a shared flyout positioning helper used by PowerDisplay and Quick Access, fixing taskbar overlap at 100% scaling and off-screen rendering after DPI changes in #47097
  • Polished Power Display by standardizing the module name, shrinking the flyout slightly, and removing dead code in #47163
PowerToys Run
  • Fixed a command breakout in the Shell plugin by escaping double quotes in the command string, while still allowing environment variables to expand in #45554 by @RinZ27.
  • Removed unused XAML namespace declarations from PowerLauncher XAML files in #46221 by @niels9001.
Quick Accent
  • Added subscript and superscript Unicode characters to the Special Characters set for keys 0-9, A, E, N, X, Y, Z, and math operators in #45540 by @Salehnaz.
  • Added the missing Icelandic accented letter í to the VK_I key definition in #46424 by @squirrelslair.
  • Added Shift+N capitalization support for superscript Latin small letter n in #46571 by @PesBandi.
  • Restored the en-dash character under the VK_MINUS key in the Special Characters set in #47106
  • Fixed the default "All available" language setting silently falling back to a small character set due to parsing issues, added case-insensitive parsing with invalid-entry warnings, and added two new Hungarian character mappings in #47117 by @daverayment.
Settings
  • Fixed the Settings shortcut/key visuals so arrow glyphs (up/down/left/right) render as proper FontIcon glyphs instead of literal text in #46454 by @vanzue.
  • Formatted the last checked for updates timestamp as friendly relative strings (Today at 1:22 PM, Yesterday at 3:45 PM) in #46923
  • Fixed Dashboard layout issues by removing excessive empty scroll space, restoring responsive behavior, and correcting a 1-pixel vertical alignment mismatch in #46922
  • Fixed the Quick Accent character-sets grid being clipped and showing an inner horizontal scrollbar, so the list reflows from 3 to 2 to 1 columns on resize in #45986 by @daverayment.
  • Renamed the shortcut conflict checkbox label from "Ignore shortcut" to "Ignore conflict" for clarity in #46318
  • Fixed the backup folder path being visually clipped on the General and Image Resizer pages in #46920
  • Refreshed Settings UI assets and copy: fixed a ZoomIt page regression, updated the Command Palette settings page with current links and screenshots, and added missing overview screenshots in #47132
  • Fixed missing images in the Settings UI by adjusting the project file so image assets are packaged correctly in #47165
  • Tweaked wording on a handful of Settings strings for clarity and consistency in #47164
Text Extractor
  • Removed the third-party WPF-UI library in favor of native WPF Fluent theming with custom control templates in #46218
Window Manager (Grab And Move)
  • Added the Grab And Move module enabling Alt+Left Click window dragging and Alt+Right Click window resizing, without needing to target title bars in #47024
  • Unstuck the Alt key after Ctrl+Alt+Del or Alt+Tab into an admin process, made Win selectable as the move/resize activation modifier, and made the window geometry readout opaque in #47052 by @foxmsft.
  • Updated Grab And Move Settings strings to be modifier-agnostic now that Win is selectable alongside Alt in #47178
ZoomIt
  • Added panoramic/scrolling screenshot capture, text extraction when snipping, and break timer improvements with screen saver mode and optional computer lock in #46506 by @foxmsft, @MarioHewardt, and @markrussinovich.
  • Fixed ZoomIt x86 build compatibility by emulating the _mm_cvtsi128_si64 intrinsic with _mm_storel_epi64 for 32-bit targets in #46529 by @foxmsft.
Development
  • Added a full OOBE page for Grab And Move, high-resolution icons and overview images for both Grab And Move and PowerDisplay, NEW badges on Settings nav items, and refreshed the README utilities table in #47033
  • Added an update-available badged tray icon, a new "Update available" tray menu entry that opens Settings to General, and raised the update InfoBar severity to Warning in #47030
  • Updated the dark-mode PowerToys tray icons to use the correct shade of black for the outline in #47166
  • Changed default-on state for new installations by disabling 7 modules by default to streamline the initial experience for new users in #47027
  • Added explicit default-disabled overrides to eight module interfaces so the native Runner defaults match the managed enabled-modules list, eliminating first-launch enable/disable flicker in #47144
  • Updated the Windows Implementation Library (WIL) from 1.0.231216.1 to 1.0.250325.1 via Central Package Management in #43503
  • Fixed the build.ps1 script so the -RestoreOnly switch works correctly and added support for the newer .slnf solution filter file format in #46012 by @raycheung.
  • Upgraded the check-spelling CI action to v0.0.26 which fixes spell-check failures on fork PRs and updates exclusion patterns in #46851 by @jsoref.
  • Refreshed the check-spelling action to 0.0.26 and synced dictionaries, patterns, and expect/reject lists across docs, source, and resource files in #47119 by @jsoref.
  • Pinned the check-spelling GitHub Action to v0.0.26 to attempt to fix the CI pipeline blocking PRs from forked repositories in #46746
  • Reverted the pinning of the check-spelling action after determining that the pin was unrelated to the pipeline issue in #46749 by @moooyo.
  • Added contributor names from a recent PR to the spellchecker allow-list to prevent CI spelling errors in #46765 by @jiripolasek.
  • Added comprehensive DSC (Desired State Configuration) documentation with per-module reference pages, settings examples, and an overview guide covering 25+ PowerToys modules in #42554 by @Gijsreyn.
  • Cleaned up root-folder Markdown files by consolidating bullet styles, fixing spelling and grammar, converting HTML to Markdown, and applying sentence-case headers in #46582 by @Jay-o-Way.
  • Documented three missing telemetry events (ModuleLaunchedFromSettings, CmdPal_DockConfiguration, KeyboardManager_LaunchEditor) in #46371
  • Added telemetry event logging to CLI entry points for FileLocksmith, Awake, and Image Resizer so command-line invocations are tracked alongside GUI usage in #46872 by @MuyuanMS.
  • Added 75+ MSTest unit tests covering Hosts ValidationHelper (IPv4/IPv6/hostname validation) and ColorPicker ColorFormatHelper conversions (CMYK, HSB/HSI/HWB, CIE XYZ/LAB, Oklab/Oklch, sRGB-linear, NCol) in #46679
  • Fixed MSTEST0017 analyzer warnings by correcting assertion argument order in 22 Assert calls across 8 test files in #46712
  • Fixed a CI test hang where Common.Interop.UnitTests.TestSend could block for 80 minutes when a prior run left a named-pipe handle alive, by ensuring pipe names are unique per run and bounding handshake waits in #47123
  • Resolved StyleCop SA1614, SA1616, SA1622, and SA1623 warnings across Command Palette, Power Display, Settings UI, DSC, and Extensions Toolkit code in #46706, #46707, #46717, #46718
  • Bumped the azure/login GitHub Action from v2 to v3 in the MS Store submissions workflow in #46323
  • Bumped the azure/cli GitHub Action from v2 to v3 in the MS Store submissions workflow in #46562
View originalPermalink
How v0.99.0 went
v0.98.1

Release v0.98.1

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.98.1-x64.exefc417bf42d6497a87682286fb541d4fa789ef0e4a812571bc0c2e4d591e63caa
Per user - ARM64PowerToysUserSetup-0.98.1-arm64.exedd9f1e0243a16adaa831f8e1119ae7394cb031b5b12401a0a243880f8f099545
Machine wide - x64PowerToysSetup-0.98.1-x64.exe43b25c7927d43b9b8ae0b4b7116a7a4ffca66fae031bcf4b30fe38ac382c6f35
Machine wide - ARM64PowerToysSetup-0.98.1-arm64.exee52788f0b199433a56b0cea5dda3611da2f9d0af123e2e90f9a908d8164aad20
Highlights

This patch release fixes several important stability issues identified in v0.98.0 based on incoming reports. Check out the v0.98.0 notes for the full list of changes.

Always On Top
  • Added support for configuring the increase/decrease opacity hotkeys independently from the main pin hotkey in #46410
Command Palette
  • Fixed context menu actions not appearing for app search results on the main page in #46293 by @jiripolasek

  • Fixed missing primary context command for items where the extension provides the command after initial load in #46131 by @jiripolasek

  • Fixed a crash caused by a negative array size when calculating callback counts with disabled providers in #46215 by @jiripolasek

  • Restored scrolling in the scroll container and updated the scroll-down button to use the correct caret glyph in #46447 by @jiripolasek

  • Fixed DockWindow resource cleanup to properly dispose its ViewModel and unregister from the messenger when destroyed in #46303 by @jiripolasek

  • Fixed dock popup crashes caused by accessing unparented popups before XamlRoot is set in #46305 by @jiripolasek

  • Reduced visual "blinking" artifacts in the dock when Command Palette settings change by avoiding unnecessary backdrop recreation in #46309 by @jiripolasek

Keyboard Shortcut Manager
  • Temporarily removed the ability to toggle the Keyboard Manager Service separate from the module for stability improvements in #46530

  • Added support for whitespace-only shortcuts in new editor in #46510

Settings
  • Fixed a PowerToys Run crash caused by a missing PowerDisplay.Lib.dll dependency by decoupling Settings.UI.Library from PowerDisplay.Lib in #46325

  • Fixed the Settings button on the What's New page opening a blank page instead of the Home page in #46203 by @daverayment

View originalPermalink
How v0.98.1 went
v0.98.0

Release v0.98.0

Hero image of what's new in version 0.98

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.98.0-x64.exe0DBC8D647D17751D2A6B9E6976F4E48055BC054D2601E3724813260243430D4B
Per user - ARM64PowerToysUserSetup-0.98.0-arm64.exe6FF46F1AE83BFD9632B54FA5247D18CE70E3051C2CFF0EE55D45979CF84B243A
Machine wide - x64PowerToysSetup-0.98.0-x64.exe5FB80097F73F3A9EB668F4C8AC7C4373E85DD0A32817698EE9D411D81C89BEFC
Machine wide - ARM64PowerToysSetup-0.98.0-arm64.exeFF30180A78ECAE2BA42665333D4076364A0EB7A4643052A22E1A8DDD154217EB
Highlights

PowerToys 0.98 brings your workflow front and center with a refreshed Keyboard Manager, the new Command Palette Dock, an even better CursorWrap and performance boosts across the board.


⌨️ A refreshed Keyboard Manager Editor experience (Preview)

This release introduces a new editor experience for Keyboard Manager. The UI has been rebuilt from the ground up using WinUI 3, making it easier for us to maintain and improve going forward.

With the new foundation, we also took the opportunity to address feedback and rethink the editing experience. Instead of working across two separate windows, the new editor provides a single, unified view where you can manage both single key and shortcut remappings. A new editing dialog makes it easier to create remappings—whether you want to remap a key or shortcut, send text, or open an app or URL.

As part of this UI refresh, we also added individual toggle switches, allowing you to quickly enable or disable remappings without having to delete the entry. The new Keyboard Manager Editor can be enabled in Settings, and all your existing remappings should just work and carry over. As we love getting early feedback, we are keeping both editor systems in place while we improve the new experience. Give it a try and let us know what you think by filing bugs or feature requests on GitHub!

Alongside the new editor, you can now enable or disable Keyboard Manager using a shortcut or through the Keyboard Manager command in Command Palette. We also added support for multi-line input when sending text.

#44936 by @weikequ


🚀 Meet the new Command Palette Dock (Preview)

This release introduces the Command Palette Dock, a new optional mode that lets you keep your favorite commands and extensions always within reach. When enabled via the Command Palette settings, the Dock stays visible on your screen and provides quick access to the tools you use most.

You can position the Dock at the top, bottom, left, or right side of your screen and customize it to fit your workflow. To get started, open Command Palette settings and enable the Dock on the Dock page. From there, you can also adjust its position and appearance. By default, a few extensions are already pinned. To add more, open Command Palette, navigate to a command, and select Pin to Dock from the right-click or more actions menu. Pinned items will appear in the Dock, and you can rearrange or remove them by right-clicking the Dock and selecting Edit Dock, where you can drag items into the order you prefer.

If you want to explore even more functionality, be sure to check out the Microsoft Store or WinGet for additional Command Palette extensions! The Dock is currently in preview, and we'd love to hear your feedback as we continue improving the experience together with the community.

⚡ Command Palette is now faster and adds support for window transparency

Alongside the new Dock, this release includes many additional improvements to Command Palette. We've fixed a large number of bugs and added several new settings, including options to adjust window transparency, preserve search text between activations, and hide non-app results.

Performance has also received significant attention in this release. Improvements to caching, UI responsiveness, and other optimizations make Command Palette faster and smoother than ever.

Massive thanks to @jiripolasek


🖱️ Better multi-monitor support for CursorWrap

CursorWrap also received several improvements in this release based on community feedback. The wrapping engine has been rewritten to better support complex multi-monitor layouts, making the behavior more reliable across different setups. We also added a few new options, including the ability to disable CursorWrap when only a single monitor is connected, and a new activation mode that lets you wrap the cursor only while holding Ctrl or Shift.

#44936 by @mikehall-ms


⌨️ Always On Top is now easier to activate

We've added a much-requested improvement to Always On Top. In addition to the keyboard shortcut, you can now pin a window directly from the title bar by right-clicking it and selecting the Always On Top option. This makes it easier for mouse users to quickly pin or unpin a window. You can also now adjust the transparency of a pinned window using Ctrl + Shift + +/- keys to increase or decrease the transparency.


🧩 Other notable changes
  • ZoomIt: Added a new video editor experience that lets you trim screen recordings.
  • Awake: Numerous bug fixes and improvements to make the experience more reliable.
  • New+: You can now hide the Windows built-in “New” item from the context menu.
  • Advanced Paste: Added auto-copy for custom action hotkeys, allowing a single shortcut to copy and execute an action, along with improved Foundry Local support.

Full release notes
Advanced Paste
  • Fixed a crash on the Advanced Paste settings page caused by null property values in #45207
  • Fixed a crash on the Advanced Paste settings page caused by unsafe settings upgrade logic in #44862
  • Fixed a settings page crash by resolving the Foundry Local AI endpoint when it changes in #45699
  • Added resilient handling of Foundry Local port changes at runtime so AI paste actions recover automatically in #45362
  • Added auto-copy selection for custom action hotkeys so users can copy and paste with a single shortcut in #44767
  • Updated OOBE description to clarify AI features now support more than just OpenAI API keys in #45233
  • Added AI preview credit documentation in #45236
Always On Top
  • Added a "Toggle always on top" entry to the window system menu (title bar right-click) for easy access without hotkeys in #45773
  • Added transparency adjustment support for pinned windows using modifier keys + plus/minus shortcuts in #44815
  • Fixed an issue where Always on Top settings changes were not applied immediately in #45994
  • Fixed duplicate command entries in the window system menu in #45845
Awake
  • Improved code quality and developer documentation for Awake in #44795 by @dend
Color Picker
  • Added an optional integer-rounding formatter for CIELab color components, with updated help in Settings in #42986 by @ruthiesun
Command Palette
Dock (New Feature)
  • Added Dock, a persistent command and application launcher in #45824
  • Added Dock APIs, allowing extensions to integrate with the launcher in #45432
  • Fixed several visual and behavior issues in the pre-release Dock including handling multiple app bars, keyboard focus order, and missing icons in #45871, #45873, #45954, #45837, #45839, #45898, #45968 by @jiripolasek
  • Added instructions for pinning items to Dock in #46052
Performance & Reliability
UI & UX
Extensions & SDK
Infrastructure & Code Quality
  • Introduced a global error-handling foundation for Command Palette, including an error report builder and PII sanitizer, with improvements to version reporting and sanitizer behavior in #44140, #45374, #45613 by @jiripolasek
  • Improved stability and thread safety across several components, fixing potential race conditions and UI threading issues in #46020, #46021, #45498, #45502, #45878 by @jiripolasek
  • Refactored internal architecture and removed obsolete code to simplify the Command Palette codebase, including factory usage improvements, Window Walker cleanup, and Core project removal in #45572, #45570, #45693 by @jiripolasek, @michaeljolley
  • Added unique IDs to all PowerToys commands to allow them to be pinned to Home in #45840
  • Improved build reliability and tooling by addressing CsWinRT warnings, WinUI binding issues, and markup extension limitations in #45827, #45324, #45830, #45833 by @jiripolasek
  • Improved development workflow and repository configuration, including formatting rules, solution filters, and build configuration fixes in #45739, #45738, #45096, #45250 by @jiripolasek
  • Improved extension infrastructure and documentation, including updated installation tooling and new development guides in #44886, #44863, #45632, #45967
  • Improved system command handling by running shutdown and restart actions in a hidden window in #45062 by @jiripolasek
  • Optimized Performance Monitor GPU statistics collection using batched counter reads in #45835 by @jiripolasek
  • Updated dependencies and project improvements including MarkdownTextBlock upgrades, SDK spec corrections, and string updates in #44793, #44781, #46040 by @RubenFricke
Cursor Wrap
  • Added an enhanced cursor wrapping engine which includes enhanced multi-monitor support, display change handling, configurable wrap modes (horizontal, vertical, or both), and enterprise policy support in #44936 by @mikehall-ms
  • Added option to disable CursorWrap when only a single monitor is connected in #45303 by @mikehall-ms
  • Improved wrapping behavior and diagnostics with updated edge-wrapping model, cursor logging, and module loader settings support in #45915 by @mikehall-ms
  • Updated modifier-key activation so wrapping only occurs while Ctrl/Shift is held, matching similar behavior in Mouse Without Borders in #46009
File Explorer
  • Updated the Markdown previewer to prevent unsafe navigation in #45801
Image Resizer
  • Temporarily disabled AI Super Resolution feature and refactored caching in #44768, #44759
Keyboard Manager
  • Updated Keyboard Manager to a new modern WinUI3 interface with the ability to enable or disable individual mappings in #45649 by @chenmy77, @Jay-o-Way
  • Added a hotkey (Win + Shift + K) to enable or disable Keyboard Manager on the fly in #42472 by @weikequ
  • Fixed new Keyboard Manager entry not being shown in the Settings shortcut list in #45938
  • Improved performance when performing multiple text replacements quickly in #46046
  • Fixed a text replacement bug in https://github.com/microsoft/PowerToys/pull/46069
Light Switch
  • Fixed an issue where Light Switch could be manually enabled or disabled even when Group Policy restrictions were active in #45756
  • Improved the reliability of location detection by adding a timeout and validation checks in #45887
  • Updated sunrise/sunset offset validation rules to make the feature more robust in #45125
  • Fixed incorrect theme being loaded at startup in #45304
Mouse Utilities
New+
  • Added ability to hide the Windows built-in "New" context menu when New+ is enabled to avoid duplicate entries in #44979 by @cgaarden
  • Fixed issue where templates with numeric-only names were not displayed correctly in #45439 by @cgaarden
  • Fixed error dialog appearing when toggling the built-in "New" context menu visibility in Settings in #46029
Peek
  • Fixed file rename or search operations in Explorer incorrectly triggering Peek in #44995
PowerRename
  • Improved Unicode normalization and added regex metacharacter tests in #44944
PowerToys Run
  • Improved Window Walker search performance and significantly reduced memory usage when matching repeated/similar strings in #44551 by @daverayment
Settings
  • Prevented duplicate Shortcut Conflict windows by introducing a singleton pattern in #42440 by @davidegiacometti
  • Fixed multiple UI and usability issues across Settings, including tray icon theme handling, context menus, contrast issues, and incorrect button states in #44931, #44982, #44736, #45367
  • Fixed reliability issues including crashes, incorrect symbols, and Settings process shutdown behavior in #45766, #45787, #45696
  • Refactored OOBE/SCOOBE flows into standalone windows and removed unused experimentation plumbing in #44721
  • Added an Open Settings button to SCOOBE for easier access in #45775
  • Improved Settings UX and policy messaging in #45513, #45030, #45033 by @htcfreek
  • Reduced overhead by using OneTime bindings for static Dashboard controls in #45765
  • Updated badges and telemetry handling in the system tray and Dashboard in #45992, #44985, #46048
  • Added solution filter support for Settings UI projects and improved layout constraints in #46036, #46035 by @jiripolasek
Workspaces
  • Fixed overlay positioning on multi-monitor setups with mixed DPI settings in #45183
ZoomIt
  • Added a video trim dialog for editing recordings directly in ZoomIt in #45334 by @foxmsft, @MarioHewardt
  • Added configurable audio inputs for recordings, fixing silent recording issue in #45700 by @foxmsft
  • Fixed issues affecting recording saving, subsequent recording startup, and virtual microphone cleanup in #46034, #45386 by @foxmsft
  • Fixed an ampersand typing bug and debug assertion failure in #43679 by @daverayment
  • Added datetime suffix to screenshot filenames for easier organization in #43172 by @daverayment
  • Added the full ZoomIt hotkey list to ZoomIt's settings page in #43073
Development
  • Added support for Visual Studio 2026 and centralized the PlatformToolset configuration in #44304 by @snickler
  • Improved build configuration and project consistency, including centralized .NET target framework handling in #41366 by @snickler
  • Upgraded dependencies including Windows App SDK and the C++ runtime in #45532, #45420 by @snickler
  • Improved async infrastructure with WinRT coroutine support in #45522
  • Fixed several CI and release pipeline issues affecting signing, build failures, and Windows App SDK compatibility in #45971, #45211, #45390, #44639, #45582, #44800
  • Improved development environment tooling and solution organization in #45990, #45555
  • Added documentation for writing a new PowerToy module in #44242
  • Added telemetry developer documentation in #44912
  • Improved developer docs in #45534 by @noraa-junker, @snickler
  • Updated the data and privacy documentation to reflect current telemetry events in #44844
  • Added spellcheck words and sorted expect.txt in #45251 by @jiripolasek
  • Added dev guideline to verify builds before opening PRs in #45419
  • Fixed libFuzzer failing to resolve target class name in Hosts fuzz tests in #45784
  • Added unit tests to protect common utility code and fixed discovered bugs in #45290
  • Migrated test infrastructure to newer MSTest framework in #37651 by @Youssef1313
  • Fixed UI tests for Light Switch, Hosts, Workspaces, and Mouse in #44754
  • Updated localization build dependencies and bundled extension localization files into installer in #45889, #45194
  • Created Common.UI.Controls library to consolidate shared WinUI controls in #45542 by @jiripolasek
  • Added Group Policy definition for CursorWrap to ADMX/Intune templates in #45028 by @htcfreek
  • Fixed Image Resizer not working after upgrade on Windows 10 in #45184
  • Improved internal tooling for release note generation, PR comment workflows, and developer utilities in #44762, #44996, #45204, #45606
  • Improved development environment setup tooling in #45813 by @SeanKilleen
  • Updated Assets conflict script to improve error message clarity in #45551
  • Updated release note generation skill to quote co-authors in #45819
  • Enhanced bug report template with file upload option in #46015 by @noraa-junker
  • Properly localized "View on GitHub" link and release date in What's New OOBE page in #45847 by @PesBandi
  • Fixed WinUIEx crash issue in #45443
View originalPermalink
How v0.98.0 went
v0.97.2

Release v0.97.2

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.97.2-x64.exe54A39F62334F7481C1BDDE8ABF4928F2E74F100A049F50C7339DABFD34134C98
Per user - ARM64PowerToysUserSetup-0.97.2-arm64.exeBB24AEE4B0B8EBDC007D04A84843D44008AB585192CF145816F4C07C99251BE0
Machine wide - x64PowerToysSetup-0.97.2-x64.exeD0316CCE8A586CE060390830FD0E3ECC298498159EEAFF2472A1BF3D2616A5E4
Machine wide - ARM64PowerToysSetup-0.97.2-arm64.exe0CC6651BF7A3CA7CF63BAC0886FD7B314A5C4648D8C7212F22B4D5729CBD54D9
Highlights

This patch release fixes several important stability issues identified in v0.97.0 based on incoming reports. Check out the v0.97.0 notes for the full list of changes.

Advanced Paste
  • Fixed a crash in the Advanced Paste settings page caused by null values during JSON deserialization in #45207.
Color Picker
  • Fixed contrast issue in Color picker UI in #45367.
Command Palette
  • Fixed an issue where some Command Palette PowerToys Extension strings were not localised in #45194.
Cursor Wrap
  • Fixed "Automatically activate on utility startup" setting not persisting when disabled in #45210 by @ThanhNguyxn.
  • Added option to disable Cursor Wrapping when only a single monitor is connected in #45303 by @mikehall-ms.
Image Resizer
  • Fixed Image Resizer not working after upgrading PowerToys on Windows 10 by properly cleaning up legacy sparse app packages in #45184.
LightSwitch
  • Fixed Light Switch startup logic to correctly apply the appropriate theme on launch in #45304.
Quick Access and Screen Ruler
  • Fixed crash related to IsShownInSwitchers property when Explorer is not running in #45443.
Workspaces
  • Fixed overlay positioning issue in workspace snapshot draw caused by DPI-aware coordinate mismatch in #45183.
View originalPermalink
How v0.97.2 went
v0.97.1

Release v0.97.1

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.97.1-x64.exeDB4AE01B6A8A9FC056A8A5FA579AA276D5E713455532AF33D11895FA381FAA0D
Per user - ARM64PowerToysUserSetup-0.97.1-arm64.exeB16A1AEE649C82DA4062B7BD2ADBE68A9928CD5FF567BFA9098C0D70EE3653A5
Machine wide - x64PowerToysSetup-0.97.1-x64.exe9D1E3337B79FD6C30463EB6EE5D58D1DE63018BC99516B982EF4423A75FC9686
Machine wide - ARM64PowerToysSetup-0.97.1-arm64.exeC5445FE4D5B157EE9605B58036E75C9B63064B2EA0132D0C4719EC7C63F65D66
Highlights

This patch release fixes several important stability issues identified in v0.97.0 based on incoming reports. Check out the v0.97.0 notes for the full list of changes.

Advanced Paste
  • Fixed Settings UI advanced paste page crash by using correct settings repository for null checking in #44862.
Command Palette
  • Fixed personalization section not appearing by using latest MSIX for installation in #44886.
  • Fixed loading of icons from internet shortcuts in #44938 by @jiripolasek.
  • Fixed potential deadlock from lazy-loading AppListItem details in #45076 by @jiripolasek.
Cursor Wrap
  • Added improved multi-monitor support and laptop lid close detection for dynamic monitor topology updates in #44936 by @mikehall-ms.
  • Added new 'Wrap mode' setting to constrain wrapping to horizontal-only, vertical-only, or both directions in #44936 by @mikehall-ms.
Peek
  • Fixed Space key triggering Peek during file rename, search, or address bar typing in #44995.
PowerRename
  • Fixed regex $ not working, preventing users from adding text at the end of filenames in #44944.
Runner
  • Monochrome tray icon now adapts to Windows system theme instead of app theme in #44931.
  • Fixed right-click menu to dynamically update based on Quick Access enabled/disabled state in #44982.
GPO / Enterprise
  • Added CursorWrap policy definition to ADMX templates in #45028 by @htcfreek.
View originalPermalink
How v0.97.1 went
v0.97.0

Release v0.97.0

Hero image of what's new in version 0.97

Installer Hashes
DescriptionFilenamesha256 hash
Per user - x64PowerToysUserSetup-0.97.0-x64.exeB8EC0033F9BA6A6D628F2F826E1B00D6B9F9A6869D46D108C5B08B560A46890F
Per user - ARM64PowerToysUserSetup-0.97.0-arm64.exeAED4001D4C3E974FAF5D2D46D640547A25BE718D8C5FEB20F4C9A1C1976D837D
Machine wide - x64PowerToysSetup-0.97.0-x64.exe267A7CC18CA33CDE4F79BBCEBF2FEFEC29B6A540BE96218CBCB52064DA283673
Machine wide - ARM64PowerToysSetup-0.97.0-arm64.exe16C211C3441C1BF22C491457BC6F0F8C6FA796E9DE08EB67C993997CDCDA5FA4
Highlights

This release packs in a ton of improvements to Command Palette, introduces a brand-new mouse utility called CursorWrap, expands CLI support across several utilities, and includes plenty of other refinements. Let's dive in!


📋 Command Palette gets a big update

We have been hard at work improving Command Palette, and this release is a big one! It introduces several new features, deeper customization options, and a long list of improvements across the board.

UI customization

There is a brand-new Personalization page that lets you customize the Command Palette UI to your liking. You can now pick a background image and apply color tinting to make Command Palette feel truly personal. To customize this setting, open Command Palette Settings => Personalization => Background

#43505 by @jiripolasek

Support for fallback ranking

To give you more control over how search results are ordered, we have added fallback ranking. You can manage fallback rankings from an extension's settings page by clicking on Manage fallback order. Here, you can reorder commands here by dragging them to match your preferences.

#43549

Control PowerToys directly from Command Palette

This was a big community request. A new built-in PowerToys extension now lets you control PowerToys features straight from Command Palette. You can toggle Light Switch, switch FancyZones layouts, pick a color, and more, all without leaving Command Palette. Just make sure the utilities you want to use are enabled in PowerToys settings. On top of that, you can now use Peek to preview files and folders within Command Palette! Note: Windows 11 required.

#44006

More Command Palette changes!
  • Support for Pinyin! To enable this, make sure your OS language is set to a supported Chinese variant.
  • A new built-in Remote Desktop extension to quickly jump to your remote desktops.
  • You can now select a custom search engine in the Web Search extension settings.
  • Added drag and drop support. File Indexer and Clipboard History can now drag content from Command Palette into other apps, and extension developers can add this capability to their own extensions.

See the list below for all Command Palette changes!


🖱️ Introducing CursorWrap

If you use multiple monitors and are tired of dragging your mouse all the way across the screen, CursorWrap is here to help. When enabled, your cursor wraps around the edges of the active monitor - moving past the top, bottom, left, or right edge instantly brings it back on the opposite side.

#41826 by @mikehall-ms


⚡ Quick Access flyout gets faster

We've undocked the Quick Access flyout from the main Settings process, which means it now launches faster. You can also choose to disable it entirely or assign a keyboard shortcut to open it. On top of that, the PowerToys system tray icon can now be set to a monochrome style if you prefer a subtler look that fits in with other system icons.

#43840 and #33321 by @HO-COOH


⌨️ More CLI support across PowerToys

In the last release we added CLI support for Peek, and we're expanding that even further. FancyZones, Image Resizer, and File Locksmith can now all be controlled from the command line. Whether you want to switch layouts, resize a batch of images, or unlock files, it's all possible through the CLI. Be sure to check the docs for the full list of supported commands.


🧩 Other notable changes
  • Light Switch can now follow Night Light. Just switch the mode in Settings.
  • The "What's new" dialog has been refreshed to make it easier to browse, with more detailed release notes going forward.
  • Advanced Paste now previews HEX color values and supports image input for AI transformations.
  • More improvements and fixes across the board: see the full release notes below.

Release notes
Advanced Paste
  • Added hex color previews in clipboard history by @crramirez.
  • Added automatic placeholder endpoints when required fields are left empty.
  • Fixed a grammar issue in the AI settings description by @erik-anderson.
  • Fixed loading order so custom action hotkeys are read correctly.
  • Updated Advanced Paste descriptions to reflect support for online and local models.
  • Fixed clipboard history item selection so it doesn’t duplicate entries.
  • Prevented placeholder endpoints from being saved for providers that don’t need them.
  • Added image input support for AI transforms and improved clipboard change tracking.
Awake
  • Fixed Awake CLI so help, errors, and logs appear correctly in the console by @daverayment.
Command Palette
  • Fixed background image loading in BlurImageControl by @jiripolasek.
  • Fixed SDK packaging paths and added a CI SDK build stage.
  • Aligned naming and spell-checking with .NET conventions by @jiripolasek.
  • Added drag-and-drop support for Command Palette items by @jiripolasek.
  • Added a PowerToys Command Palette extension to discover and launch PowerToys utilities.
  • Fixed grid view bindings and layout issues by @jiripolasek.
  • Fixed a line-break issue in RDC extension toast messages by @jiripolasek.
  • Made the Settings button text localizable by @jiripolasek.
  • Hid the RDC fallback on the home page and fixed MSTSC working directory handling by @jiripolasek.
  • Optimized result list merging for better performance by @daverayment.
  • Added Small/Medium/Large detail sizes in the extensions API by @DevLGuilherme.
  • Hid fallback commands on the home page when no query is entered by @jiripolasek.
  • Added back navigation support in the Settings window by @jiripolasek.
  • Added a Command Palette solution filter by @jiripolasek.
  • Updated Extension SDK documentation links to Microsoft Learn by @RubenFricke.
  • Added a custom search engine URL setting for Web Search by @jiripolasek.
  • Added pinyin matching for Chinese input by @frg2089.
  • Bumped Command Palette version to 0.8.
  • Removed subtitles from built-in top-level commands by @jiripolasek.
  • Refined separator styling in the details pane by @jiripolasek.
  • Added a built-in Remote Desktop extension.
  • Added a Peek command to the Indexer extension.
  • Improved default browser detection using the Windows Shell API by @jiripolasek.
  • Added Escape key behavior options by @jiripolasek.
  • Added theme and background customization options by @jiripolasek.
  • Improved WinGet package app matching by @jiripolasek.
  • Added an auto-return-home delay setting by @jiripolasek.
  • Added fallback ranking and global results settings.
  • Removed the selection indicator in the context menu list by @jiripolasek.
  • Added a developer ribbon with build and log info by @jiripolasek.
  • Updated the “Learn more” string for Command Palette by @pratnala.
  • Added arrow-key navigation for grid views by @samrueby.
  • Fixed version display when running unpackaged by @jiripolasek.
  • Added a native debugging launch profile by @jiripolasek.
  • Reduced redundant property change notifications in the SDK by @jiripolasek.
  • Improved section readability and accessibility by @jiripolasek.
  • Made gallery spacing uniform by @jiripolasek.
  • Added sections and separators for list and grid pages by @DevLGuilherme.
Crop & Lock
  • Added a screenshot mode that freezes a cropped region into its own window by @fm-sys.
Cursor Wrap
  • Improved Cursor Wrap behavior on multi-monitor setups by wrapping only at outer edges by @mikehall-ms.
FancyZones
  • Fixed editor overlay positioning on mixed-DPI multi-monitor setups by @Memphizzz.
  • Added a FancyZones CLI for command-line layout management.
File Locksmith
  • Added a File Locksmith CLI for querying, waiting on, or killing file locks.
Find My Mouse
  • Improved spotlight edge rendering for clearer Find My Mouse visuals.
  • Added telemetry to track how Find My Mouse is triggered.
Image Resizer
  • Fixed Fill mode cropping when Shrink Only is enabled by @daverayment.
  • Added a dedicated Image Resizer CLI for scripted resizing.
Light Switch
  • Added telemetry events for Light Switch usage and settings changes.
  • Added a Follow Night Light mode to sync theme changes with Night Light.
  • Clarified LightSwitchService and LightSwitchStateManager roles in docs.
  • Added a Quick Access dashboard button to toggle Light Switch quickly.
  • Ensured Light Switch honors GPO policy states with clear status messaging.
Mouse Without Borders
  • Continued refactoring Mouse Without Borders by splitting the large Common class into focused components by @mikeclayton.
  • Completed the Common class refactor with Core and IPC helper extraction by @mikeclayton.
Peek
  • Hardened Peek previews with strict resource filtering and safer external link warnings.
  • Improved SVG preview compatibility by rendering via WebView2.
PowerRename
  • Added HEIF/AVIF EXIF metadata extraction and extension status guidance for related previews.
  • Fixed undefined behavior in file time handling by @safocl.
  • Optimized memory allocation for depth-based rename processing.
  • Fixed Unicode normalization and non-breaking space matching by @daverayment.
  • Fixed date token replacements followed by capital letters by @daverayment.
PowerToys Run Plugins
  • Fixed a plugin name typo and added Project Launcher to the third-party list by @artickc.
  • Added the Open With Antigravity plugin to the third-party list by @artickc.
PowerToys Run
  • Avoided unnecessary hotkey conflict checks when settings change.
  • Added QuickAI to the third-party PowerToys Run plugin list by @ruslanlap.
Quick Accent
  • Added localized quotation marks to Quick Accent by @warquys.
  • Fixed duplicate and redundant characters in Quick Accent sets by @noraa-junker.
  • Fixed DPI positioning issues for Quick Accent on mixed-DPI setups by @noraa-junker.
Settings
  • Added a new tray icon that adapts to theme changes by @HO-COOH.
  • Centralized module enable/disable logic for cleaner Settings UI updates.
  • Simplified Settings utilities by removing ISettingsUtils/ISettingsPath interfaces by @noraa-junker.
  • Improved Settings UI consistency and disabled-state visuals.
  • Added semantic headings to the Dashboard for better accessibility.
  • Introduced Quick Access as a standalone host with updated Settings integration.
  • Fixed Dashboard toggle flicker and sort menu checkmarks by @daverayment.
  • Added Native AOT-compatible settings serialization.
  • Standardized mouse tool description text by @daverayment.
  • Added a global SettingsUtils singleton to reduce repeated initialization.
Development
  • Fixed broken devdocs links to the coding style guide by @RubenFricke.
  • Migrated main and installer solutions to .slnx for improved build tooling.
  • Restored local installer builds after the WiX v5 upgrade with signing and versioning fixes.
  • Added incremental review tooling and structured AI prompts for PR/issue reviews.
  • Documented bot commands and cleaned up devdocs structure by @noraa-junker.
  • Updated WinAppSDK pipeline defaults to 1.8 and fixed restore handling.
  • Updated the COMMUNITY list to reflect current roles.
  • Maintained community member ordering and added a new entry.
  • Re-enabled centralized PackageReference for native projects with VS auto-restore.
  • Disabled MSBuild caching by default in CI to avoid build instability.
  • Updated the latest WinAppSDK daily pipeline for split-dependency restores.
  • Suppressed experimental build warnings and aligned WrapPanel stretch handling.
  • Reordered the spell-check expect list for consistent automation.
  • Migrated native projects to centralized PackageReference management.
  • Cleaned spell-check dictionary entries and capitalization.
  • Synced commit/PR prompts and wired VS Code to repo prompt files.
  • Added VS Code build tasks and improved build script path handling.
  • Updated Windows App SDK package versions in central package management.
  • Migrated cmdpal extension native project to PackageReference and fixed outputs.
  • Reverted PackageReference changes back to packages.config where needed.
  • Bypassed a release version check for a failing DLL to keep pipelines green.
  • Consolidated Copilot instructions and fixed prompt frontmatter.
  • Added signing entries for new Quick Access binaries and CLI version metadata.
  • Fixed install scope detection to avoid mixed per-user/per-machine installs.
  • Added a Module Loader tool to quickly test PowerToys modules without full builds by @mikehall-ms.
  • Added update telemetry to understand auto-update checks and downloads.
  • Updated the telemetry package for new compliance requirements by @carlos-zamora.
  • Documented missing telemetry events in DATA_AND_PRIVACY.
  • Fixed UI test pipeline restores for .slnx solutions.
  • Added UI automation coverage for Advanced Paste clipboard history flows.
  • Stabilized FancyZones UI tests with more reliable selectors and screen recordings.
View originalPermalink
How v0.97.0 went
View all

Discussion