github microsoft/PowerToys v0.98.0
Release v0.98.0

10 hours ago

Hero image of what's new in version 0.98

Installer Hashes

Description Filename sha256 hash
Per user - x64 PowerToysUserSetup-0.98.0-x64.exe 0DBC8D647D17751D2A6B9E6976F4E48055BC054D2601E3724813260243430D4B
Per user - ARM64 PowerToysUserSetup-0.98.0-arm64.exe 6FF46F1AE83BFD9632B54FA5247D18CE70E3051C2CFF0EE55D45979CF84B243A
Machine wide - x64 PowerToysSetup-0.98.0-x64.exe 5FB80097F73F3A9EB668F4C8AC7C4373E85DD0A32817698EE9D411D81C89BEFC
Machine wide - ARM64 PowerToysSetup-0.98.0-arm64.exe FF30180A78ECAE2BA42665333D4076364A0EB7A4643052A22E1A8DDD154217EB

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.

KBM

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.

Transparent CmdPal

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.

CmdPal-Settings

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.

Transparent CmdPal

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.

CursorWrap

#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.

AOT

🧩 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 #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

Don't miss a new PowerToys release

NewReleases is sending notifications on new releases.