Files
PowerToys/README.md
2025-05-08 00:41:16 +08:00

24 KiB
Raw Blame History

Microsoft PowerToys

Hero image for Microsoft PowerToys

How to use PowerToys | Downloads & Release notes | Contributing to PowerToys | What's Happening | Roadmap

About

Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. For more info on PowerToys overviews and how to use the utilities, or any other tools and resources for Windows development environments, head over to learn.microsoft.com!

Current utilities:
Advanced Paste Always on Top PowerToys Awake
Color Picker Command Not Found Command Palette
Crop And Lock Environment Variables FancyZones
File Explorer Add-ons File Locksmith Hosts File Editor
Image Resizer Keyboard Manager Mouse utilities
Mouse Without Borders New+ Paste as Plain Text
Peek PowerRename PowerToys Run
Quick Accent Registry Preview Screen Ruler
Shortcut Guide Text Extractor Workspaces
ZoomIt

Installing and running Microsoft PowerToys

Requirements

  • Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
  • x64 or ARM64 processor
  • Our installer will install the following items:

Go to the Microsoft PowerToys GitHub releases page and click on Assets at the bottom to show the files available in the release. Please use the appropriate PowerToys installer that matches your machine's architecture and install scope. For most, it is x64 and per-user.

Description Filename sha256 hash
Per user - x64 PowerToysUserSetup-0.91.0-x64.exe TBD
Per user - ARM64 PowerToysUserSetup-0.91.0-arm64.exe TBD
Machine wide - x64 PowerToysSetup-0.91.0-x64.exe TBD
Machine wide - ARM64 PowerToysSetup-0.91.0-arm64.exe TBD

This is our preferred method.

Via Microsoft Store

Install from the Microsoft Store's PowerToys page. You must be using the new Microsoft Store which is available for both Windows 11 and Windows 10.

Via WinGet

Download PowerToys from WinGet. Updating PowerToys via winget will respect current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell:

User scope installer [default]

winget install Microsoft.PowerToys -s winget

Machine-wide scope installer

winget install --scope machine Microsoft.PowerToys -s winget

Other install methods

There are community driven install methods such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there.

Third-Party Run Plugins

There is a collection of third-party plugins created by the community that aren't distributed with PowerToys.

Contributing

This project welcomes contributions of all types. Besides coding features / bug fixes, other ways to assist include spec writing, design, documentation, and finding bugs. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.

We ask that before you start work on a feature that you would like to contribute, please read our Contributor's Guide. We would be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.

Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you grant us the rights to use your contribution and that you have permission to do so.

For guidance on developing for PowerToys, please read the developer docs for a detailed breakdown. This includes how to setup your computer to compile.

What's Happening

PowerToys Roadmap

Our prioritized roadmap of features and utilities that the core team is focusing on.

0.91 - May 2025 Update

In this release, we focused on new features, stability, and automation.

Highlights

Gif for Command Palette

  • New module: Command Palette ("CmdPal") - Created as the evolution of PowerToys Run with extensibility at the forefront, Command Palette is a quick launcher with a richer display and additional capabilities without sacrificing performance, allowing you to start anything with the shortcut Win+Alt+Space! Thanks @zadjii-msft, @niels9001, @michael-hawker, @joadoumie, @plante-msft, @ethanfangg and @krschau!
  • Enhanced the Color Picker by switching from WPF UI to .NET WPF, resulting in improved themes and visual consistency across different modes. Thanks @mantaionut! Thanks @Jay-o-Way and @niels9001 for helping with the review!
  • Added the ability to delete files directly from Peek, enhancing file management efficiency. Thanks @daverayment and thanks @htcfreek for the review!
  • Added support for variables in template filenames, enabling dynamic elements like date components and environment variables for enhanced customization in New+. Thanks @cgaarden!

Advanced Paste

  • Fixed an issue where Advanced Paste failed to create the OCR engine for certain English language tags (e.g., en-CA) by initializing the OCR engine with the user profile language. Thanks @cryolithic!

Color Picker

  • Fixed an issue where a resource leak caused hangs or crashes by properly disposing of the Graphics object. Thanks @dcog989!
  • Fixed an issue where Color Picker exited on Backspace keypress by ensuring it only closes when focused and aligning Escape/Backspace behavior. Thanks @PesBandi!
  • Added support for Oklab and Oklch color formats in Color Picker. Thanks @lemonyte!

Command Not Found

  • Updated the WinGet Command Not Found script to only enable the experimental features if they actually exist. Thanks @carlos-zamora!

Command Palette

  • Updated bug template to include Command Palette module.
  • Fixed an issue where the toast window was not scaled for DPI, causing layout issues under display scaling. Thanks @zadjii-msft!
  • Fixed an issue where Up/Down keyboard navigation didn't move selection when caret was at position 0, and add continuous navigation like PT Run v1. Thanks @davidegiacometti! Thanks @zadjii-msft for helping with the review!
  • Updated the Time and Date extension code to simplify it and improve clarity.
  • Fixed an issue where capitalization in the command causes failure when trying to go to the mouse pointer, resolved by adjusting the command to lowercase. Thanks @zadjii-msft for helping with the review!
  • Added the ability to open URLs directly in the browser from Command Palette. Thanks @htcfreek and @zadjii-msft for helping with the review!
  • Added setting to enable/disable system tray icon in CmdPal and align terminology with Windows 11. Thanks @davidegiacometti! Thanks @htcfreek and @zadjii-msft for helping with the review!
  • Fixed an alias update issue by removing the old alias when a new one is set. Thanks @zadjii-msft for review!
  • Resolved GitHub casing conflict by migrating Exts and exts into a new ext directory, ensuring consistent structure across platforms and preventing path fragmentation. Thanks @zadjii-msft!
  • Fix an issue where the 'Create New Extension' command generated empty file names. Thanks @zadjii-msft for review!
  • Added the ability to make the global hotkey a low-level keyboard hook. Thanks @zadjii-msft!
  • Added support for JUMBO thumbnails, enabling access to high-resolution icons. Thanks @zadjii-msft!
  • Fixed crashes when CmdPal auto-hidden itself while an MSAL dialog was opened, by preventing CmdPal from hiding if it's disabled. Thanks @zadjii-msft! Thanks @guimafelipe and @lauren-ciha for helping with the review!
  • Added support for immediately selecting search text when a page is loaded. Thanks @zadjii-msft! Thanks @krschau for review!
  • Fixed a bug where extension settings pages failed to reload on reopen by updating the settings form when extension settings are saved. Thanks @zadjii-msft! Thanks @krschau for review!
  • Fixes an issue where the Command Palette failed to launch from the runner. Thanks @zadjii-msft for review!
  • Refactored and ported the PowerToys Run v1 calculator logic into Command Palette, added settings support, and improved fallback behavior. Thanks @zadjii-msft and @htcfreek for helping with the review!
  • Re-added support for list item keyboard shortcuts. Thanks @zadjii-msft!
  • Enhanced accessibility in Command Palette by adding proper labels, refining animations, improving localization, and fixed a11y related issues. Thanks @zadjii-msft!
  • Ported custom format support to the Time and Date plugin, reordered and cleaned up settings, improved error messaging, and fixed edge-case crashes for more robust and user-friendly behavior. Thanks @htcfreek!
  • Added fallback item for system command. Thanks @zadjii-msft and @htcfreek for helping with the review!
  • Fixed a bug in Windows System Command where the key prompt incorrectly displayed "Empty" for the "Open Recycle Bin" action. Thanks @jironemo! Thanks @htcfreek for helping with the review!
  • Fixed an issue where the 'more commands' list showed commands that shouldn't be visible. Thanks @davidegiacometti!
  • Fixed an issue where the details view in Command Palette displayed an oversized icon and misaligned text, aligning it with Windows Search behavior. Thanks @niels9001! Thanks @zadjii-msft for review!
  • Fixed a bug where empty screen content and command bar commands were cut off when using long labels, ensuring proper layout and visibility. Thanks @niels9001! Thanks @zadjii-msft for review!
  • Improved CmdPals winget integration by fixing version display for installed packages, enabling updates with icons, and migrating the preview winget API to a stable version. Thanks @zadjii-msft! Thanks @krschau and @niels9001 for helping with the review!
  • Fixed a bug where commands for ContentPage didn't update until after exit, by ensuring context menus are fully initialized when they change. Thanks @zadjii-msft! Thanks @niels9001 for review!
  • Added fallback support to the TimeDate extension, enabling direct date/time queries without pre-selecting the command. Thanks @zadjii-msft and @htcfreek for helping with the review!
  • Added import of Common.Dotnet.AotCompatibility.props across multiple CmdPal project files to enhance AOT compilation support.
  • Fixed a crash in ComPal settings caused by a null HotKey when settings.json is missing or lacks a defined hotkey. Thanks @davidegiacometti! Thanks @zadjii-msft for review!
  • Added support for filterable, nested context menus in ComPal, including a search box to maintain focus behavior. Thanks @zadjii-msft! Thanks @lauren-ciha for review!
  • Refactored ComPal classes to improve JSON serialization and introduced new serialization contexts for better performance and maintainability.
  • Added support for ahead-of-time (AOT) compilation.
  • Added retry mechanism for CmdPal launch.
  • Removed some unused files from CmdPal.Common to simplify codebase and facilitate marking it as AoT-compatible.
  • Fixed a bug where a race condition in the update of SearchText caused the cursor in the input box to automatically jump to the end of the line, ensuring SearchText is only updated after it has actually been changed. Thanks @zadjii-msft!

Image Resizer

  • Fixed an issue where deleting an Image Resizer preset removed the wrong preset.Thanks @daverayment for your help reviewing this!

Keyboard Manager

  • Fixed an issue where a modifier key, when set without specifying left or right, would get stuck due to incorrect key handling, by tracking the pressed keys and sending the correct key accordingly.Thanks @mantaionut!

PowerRename

  • Enhanced PowerRename's time formatting capabilities by adding 12-hour time format patterns with AM/PM support. Thanks @bitmap4!

PowerToys Run

  • Added support for custom formats in the "Time and Date" plugin and improves error messages for invalid input formats. Thanks @htcfreek!
  • Fix two crashes: one for WFT on very early dates and another for calculating the week of the month on very late dates (e.g., 31.12.9999), and reorder UI settings. Thanks @htcfreek!
  • Fix an issue where capitalization in the command causes failure when trying to go to the mouse pointer, resolved by adjusting the command to lowercase.Thanks @zadjii-msft for helping with the review!
  • Added version details to plugin error messages for 'Loading error' and 'Init error'. Thanks @htcfreek!
  • Enhanced result model by adding support for preventing usage-based ordering, giving plugin developers greater control over sorting behavior. Thanks @CoreyHayward and @htcfreek!

Quick Accent

  • Updated the letter mapping in GetDefaultLetterKeyEPO, replacing "ǔ" with "ŭ" for the VK_U key to accurately reflect Esperanto phonetics. Thanks @OlegKharchevkin!
  • Fixed an issue where Quick Accent did not work properly when using the on-screen keyboard. Thanks @davidegiacometti! Thanks @jaysondapo for helping with the review!

Registry Preview

  • Enhanced Registry Preview to support pasting registry keys and values without manually writing the file header, and added a new button for resetting the app. Thanks @htcfreek! Thanks @randyrants for helping with the review!

Settings

  • Fix an issue where the Settings app randomly showed a blank icon in the taskbar by deferring icon assignment until the window is activated.
  • Added the ability to maximize the "What's New" window for a more comfortable reading experience.Thanks @Jay-o-Way for review!

Workspaces

  • Fixed bugs where Steam games were not captured or launched correctly by updating window filtering and integrating Steam URL protocol handling.

Documentation

  • Added QuickNotes to the third-party plugins documentation for PowerToys Run. Thanks @ruslanlap!
  • Added Weather and Pomodoro plugins to the PowerToys Run third-party plugin documentation. Thanks @ruslanlap!
  • Added the Linear plugin to PowerToys Run's third-party plugin documentation. Thanks @vednig! Thanks @Aaron-Junker and @DHowett for helping with the review!

Development

  • Updated GitHub Action to install .NET 9 for MSStore release support.
  • Updated version placeholder in bug_report.yml to prevent incorrect v0.70.0 versioning in issue reports. Thanks @htcfreek for review!
  • Updated GitHub Action to upgrade actions/setup-dotnet from version 3 to version 4 for MSStore release.
  • Added securityContext to WinGet configuration files, allowing invocation from user context and prompting a single UAC for elevated resources in a separate process. Thanks @mdanish-kh! Thanks @denelon for review!
  • Changed log file extensions from .txt to .log to support proper file associations and tooling compatibility, and added logs for Workspace. Thanks @benwa! Thanks @Jay-o-Way for review!
  • Upgraded testing framework dependencies and aligned package versions across components.
  • Upgraded dependencies to fix vulnerabilities.
  • Enhanced repository security by pinning GitHub Actions and Docker tags to immutable full-length commits and integrating automated dependency vulnerability scanning via Dependency Review Workflow. Thanks @Nick2bad4u!
  • Upgraded Boost dependencies to a newer version.
  • Upgraded toolkit to the latest version, suppressed AOT-related warnings.
  • Fixed an issue where missing signing for newly added files caused build failures.
  • Update release pipeline to prevent publishing private symbols for 100 years.
  • Introduced fuzzing for PowerRename to improve reliability and added setup guidance for extending fuzzing to other C++ modules.
  • Added centralized pre-creation of generated folders for all .csproj projects to prevent build failures.
  • Updated WinAppSDK to the latest 1.7 version.
  • Upgraded Boost dependencies to the latest version for the PowerRename Fuzzing project.
  • Updated the ADO area path in tsa.json to resolve TSA pipeline errors caused by a deprecated path.
  • Initiated AoT support for CmdPal with foundational work in progress. Thanks @zadjii-msft!

Tool/General

  • Added support for automating bug report creation by generating a pre-filled GitHub issue URL with system and diagnostic information. Thanks @donlaci! Thanks @htcfreek for review!
  • Added scripts to locally build the installer, ensuring the ComPal can also be launched in a local environment.

What is being planned for version 0.92

For v0.92, we'll work on the items below:

  • New module: File Actions Menu
  • New UI Automation tests
  • Working on installer upgrades
  • Upgrading Keyboard Manager's editor UI
  • Stability / bug fixes

PowerToys Community

The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldnt be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Month by month, you directly help make PowerToys a better piece of software.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Privacy Statement

The application logs basic diagnostic data (telemetry). For more information on privacy and what we collect, see our PowerToys Data and Privacy documentation.