PowerToys/README.md
2023-12-07 11:34:30 -08:00

19 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

Build status

Architecture Solution (Main) Solution (Stable) Installer (Main)
x64 Build Status for Main Build Status for Stable Build Status Installer pipeline
ARM64 Build Status for Main Build Status for Main Build Status Installer pipeline

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:
Always on Top PowerToys Awake Color Picker
Crop And Lock Environment Variables FancyZones
File Explorer Add-ons File Locksmith Hosts File Editor
Image Resizer Keyboard Manager Mouse utilities
Mouse Without Borders Peek Paste as Plain Text
PowerRename PowerToys Run Quick Accent
Registry Preview Screen Ruler Shortcut Guide
Text Extractor Video Conference Mute

Installing and running Microsoft PowerToys

Requirements

  • Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
  • 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.76.1-x64.exe 876FB94098A50E5954D8FF6D1E8D5372AFD5AFA0C5456AD6E5DF2F6BCD4FC49B
Per user - ARM64 PowerToysUserSetup-0.76.1-arm64.exe 3D0E943A8F147EE5C794FF17FB98A490A8E7E72F4B312B441332CF0C65823420
Machine wide - x64 PowerToysSetup-0.76.1-x64.exe A31F89B1E697C77D09337FD4B4A69DCA304944702A03D664846756ED98342F9A
Machine wide - ARM64 PowerToysSetup-0.76.1-arm64.exe CFA2E1F2BC38E1A5B9B0F91060391DE98F42F286FFCA9185D9EA26552F16D38A

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.76 - November 2023 Update

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

Highlights

  • Upgrade to .NET 8. Thanks @snickler!
  • Keyboard Manager can now remap keys and shortcuts to send sequences of unicode text.
  • Modernized the Keyboard Manager Editor UI. Thanks @dillydylann!
  • Modernized the PowerToys Run, Quick Accent and Text Extractor UIs. Thanks @niels9001!
  • New File Explorer Add-ons: QOI image Preview Handler and Thumbnail Provider. Thanks @pedrolamas!

General

  • Updated the WebView 2 dependency to 1.0.2088.41. Thanks @davidegiacometti!
  • Fixed unreadable color brushes used across WinUI3 applications for improved accessibility. Thanks @niels9001!
  • Flyouts used across WinUI3 applications are no longer constrained to the application's bounds. Thanks @Jay-o-Way!
  • Upgraded the WPF-UI dependency to preview.9 and then preview.11. Thanks @niels9001 and @pomianowski!
  • Upgraded to .NET 8. Thanks @snickler!
  • Updated the WinAppSDK dependency to 1.4.3.

Awake

  • Added localization to the tray icon context menu.

Crop And Lock

  • Fixed restoring windows that were reparented while maximized.

Environment Variables

  • Fixed crash caused by WinAppSDK version bump by replacing ListView elements with ItemsControl.

FancyZones

  • Reverted a change that caused some applications, like the Windows Calculator, to not snap correctly. (This was a hotfix for 0.75)
  • FancyZones Editor will no longer apply a layout to the current monitor after editing it.
  • Fixed and refactored the code that detected if a window can be snapped. Added tests to it with known application window styles to avoid regressions in the future.

File Explorer add-ons

  • Solved an issue incorrectly detecting encoding when previewing code files preview.
  • Fixed the background color for Gcode preview handler on dark theme. Thanks @pedrolamas!
  • New utilities: Preview Handler and Thumbnail Provider for QOI image files. Thanks @pedrolamas!
  • GCode Thumbnails are now in the 32 bit ARGB format. Thanks @pedrolamas!
  • Added the perceived type to SVG and QOI file thumbnails. Thanks @pedrolamas!

GPO

  • Added the missing Environment Variables utility policy to the .admx and .adml files. (This was a hotfix for 0.75)
  • Fixed some typos and text improvements in the .adml file. Thanks @htcfreek!

Hosts File Editor

  • Added a proper warning when the hosts file is read-only and a button to make it writable. Thanks @davidegiacometti!

Image Resizer

  • Fixed a WPF-UI issue regarding the application's background brushes. Thanks @niels9001!

Installer

  • Included the Text Extractor and Awake localization files in the install process.

Keyboard Manager

  • Modernized the UI with the Fluent design. Thanks @dillydylann!
  • Added the feature to remap keys and shortcuts to arbitrary unicode text sequences.

Mouse Without Borders

  • Removed Thread.Suspend calls when exiting the utility. That call is deprecated, unneeded and was causing a silent crash.

Peek

  • Added the possibility to pause/resume videos with the space bar. Thanks @davidegiacometti!
  • Fixed high CPU usage when idle before initializing the main window. Thanks @davidegiacometti!
  • Implemented Ctrl+W as a shortcut to close Peek. Thanks @Physalis2!
  • Solved an issue incorrectly detecting encoding when previewing code files.
  • Fixed background issues when peeking into HTML files after the WebView 2 upgrade.

PowerToys Run

  • Moved to WPF-UI and redesigned according to Fluent UX principles. Thanks @niels9001!
  • Fixed an issue causing 3rd party plugins to not have their custom settings correctly initialized with default values. (This was a hotfix for 0.75) Thanks @waaverecords!
  • Fixed a crash in the VSCode plugin when the VSCode path had trailing backspaces. Thanks @davidegiacometti!
  • Fixed a crash when trying to load invalid image icons.
  • Fixed a crash in the Programs plugin when getting images for some .lnk files.
  • Fixed a rare startup initialization error and removed cold start operations that were no longer needed. Thanks @davidegiacometti!
  • Improved calculations for Windows File Time and Unix Epoch Time in the DateTime plugin. Thanks @htcfreek!
  • Fixed a crash when trying to get the icon for a link that pointed to no file.
  • Cleaned up code in the WindowWalker plugin improving the logic. Thanks @davidegiacometti!

Quick Accent

  • Moved from ModernWPF to WPF-UI. Thanks @niels9001!
  • Added support to the Finnish language character set. Thanks @davidtlascelles!
  • Added currency symbols for Croatian, Gaeilge, Gàidhlig and Welsh. Thanks @PesBandi!
  • Added a missing Latin letter ꝡ. Thanks @cubedhuang!
  • Added fraction characters. Thanks @PesBandi!
  • Added support to the Danish language character set. Thanks @PesBandi!
  • Added the Kazakhstani Tenge character to the Currencies characters set. Thanks @PesBandi!
  • Renamed Slovakian to Slovak, which is the correct term. Thanks @PesBandi!
  • Added the Greek language character set. Thanks @mcbabo!

Settings

  • When clicking a module's name on the Dashboard, it will navigate to that module's page.
  • Fixed the clipping of information in the Backup and Restore section of the General Settings page. Thanks @niels9001!
  • Updated the File Explorer Add-ons fluent icon. Thanks @niels9001!
  • Added a warning when trying to set a shortcut that might conflict with "Alt Gr" key combinations.
  • Added a direct link to the OOBE's "What's New page" from the main Settings window. Thanks @iakrayna!
  • Changed mentions from Microsoft Docs to Microsoft Learn.
  • Fixed the slow reaction to system theme changes.

Text Extractor

  • Move to WPF-UI, localization and light theme support. Thanks @niels9001!
  • Disabled by default on Windows 11, with a information box on Settings to prefer using the Windows Snipping Tool, which now supports OCR.

Documentation

  • Fixed some typos in the README. Thanks @Asymtode712!
  • Reworked the gpo docs on learn.microsoft.com, adding .admx, registry and Intune information. Thanks @htcfreek!

Development

  • Updated the check-spelling ci action to 0.22. Thanks @jsoref!
  • Refactored the modules data model used between the Settings Dashboard and Flyout.
  • Fixed a flaky interop test that was causing automated CI to hang occasionally.
  • Increased the WebView 2 loading timeout to reduce flakiness in those tests. Thanks @davidegiacometti!
  • Added support for building with the Dev Drive CopyOnWrite feature, increasing build speed. Thanks @pedrolamas!
  • Addressed the C# static analyzers suggestions. Thanks @davidegiacometti!
  • Addressed the C++ static analyzers suggestions.
  • PRs that only contain Markdown or text files changes no longer trigger the full CI. Thanks @snickler!
  • Updated the Microsoft.Windows.CsWinRT to 2.0.4 to fix building with the official Visual Studio 17.8 release.
  • Fixed new code quality issues caught by the official Visual Studio 17.8 release.
  • Added a bot trigger to point contributors to the main new contribution issue on GitHub. Thanks @Aaron-Junker!
  • Removed unneeded entries from expect.txt.
  • Turned off a new feature from Visual Studio that was adding the commit hash to the binary files Product Version.
  • Refactored and reviewed the spellcheck entries into different files. Thanks @Jay-o-Way!
  • Added Spectre mitigation and SHA256 hash creation for some DLLs.
  • Reverted the release pipeline template to a previous release that's stable for shipping PowerToys.

What is being planned for version 0.77

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

  • New utility: Command Not Found
  • Language selection
  • Automated UI testing through WinAppDriver
  • Develop support for Desired State Configuration
  • Modernize and refresh the UX of PowerToys based on WPF. Here's the Work in Progress preview for "Color Picker":

ColorPicker UI refresh WIP

  • 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 telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the Microsoft privacy statement for more information.