PowerToys/README.md
Jaime Bernardo 7ecfc58caa
[New Utility]Crop And Lock ()
* [CropAndLock]Original POC code dump

* Project rename and delete solution

* Remove unused architectures

* Update cppwinrt to be in line with the solution

* Add to PowerToys solution and fix build errors

* Initial module interface empty project

* Module skeleton based on AlwaysOnTop

* Add loggers to module interface

* Add crop and lock to the runner

* Enable starts and disable kills the process

* Events reacting to hotkeys

* Main application reacting to events

* Initialize unhandled exception handling

* Singleton in line with other projects

* Also exit when PowerToys exit is detected

* Create Settings page

* React to shortcut changes in Settings

* Disable Crop and Lock through an Event

* Disable running Crop and Lock standalone

* Remove Crop and Lock tray icon

* Module Interface dll version

* Fix main app resource file to include version

* Make pch conditional on CI build

* Add to signing

* Remove settings screen opened by removed tray icon

* Fix spellcheck

* Yet another fix for spellcheck

* Fix disabling utility

* Fix solution build configurations

* Fix C++ analyzer errors

* Try to fix pre-compiled header CI errors

* Fix crash while exiting with an active reparent window

* Fix missing reference when building in release CI

* Add OOBE page

* GPO: Add admx and adml file changes

* GPO: react to changes in GPO

* Add quick access flyout menu entry

* Use Crop And Lock icon

* Use actual images for Settings and OOBE

* Module and app telemetry

* Add entry to README.md

* Add to process lists

* Additional logging

* Attribution in Settings page

* Add attribution to Community.md

* Fix spellcheck

* Fix typo in strings

* Fix crash when window handle is no longer valid

* Update COMMUNITY.md

* Fix supportedOS in manifest

* Don't show msgbox if detecting second instance

* Remove unused hotkey

* Tweak attribution

* Fix attribution spellcheck
2023-08-10 10:46:33 +01:00

16 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 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 Microsoft PowerToys GitHub releases page, 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.72.0-x64.exe 9925894D797458C78A8C3DF6FE4BD748580638B01BB43680477763662915109A
Per user - ARM64 PowerToysUserSetup-0.72.0-arm64.exe 2E68139C22C56648E64514E4E8E0A0D12882F6CF30B48EB20ECC66B4CCDD5909
Machine wide - x64 PowerToysSetup-0.72.0-x64.exe 788EE4D828169F092737A739030B218CEFEC79583E42858BB8F9F036B701BE6F
Machine wide - ARM64 PowerToysSetup-0.72.0-arm64.exe 39C1D430A538B0F3D7869D39DF7F636A64AAFAD8DFB3C82059A97F4EBD3369C4

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

Collection of third-party plugins created by the community that aren't distributed with PowerToys.

Contributing

This project welcomes contributions of all types. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. 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 will 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 have the right to, and actually do, grant us the rights to use your contribution.

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.72 - July 2023 Update

In this release, we focused on stability and improvements.

Highlights

  • Greatly reduced the PowerToys installed space by having utilities share the same installed path. When compared to 0.71, the 0.72 x64 machine installed version of PowerToys reduces the size reported in the Installed Apps screen from 1.15GB to 785 MB and the size in File Explorer properties for the installation folder from 3.10GB to 554 MB.
  • Value Generator - A new PowerToys Run plugin that generates hashes and GUID values. Thanks @IHorvalds!
  • Mouse Highlighter has a new feature to have a highlight always follow the mouse pointer. Thanks @hayatogh!
  • PowerRename was reworked to support a bigger number of files without crashing.

Known issues

  • Due to changing paths in the installation folder, the Mouse Without Borders service might be pointing to the wrong place. Users not running as admin will have to enable service mode again after install. A toast notification will appear if Mouse Without Borders is unable to start the service correctly.
  • File Explorer extensions changed paths might not be loaded correctly until File Explorer and Preview Host processes are restarted, so we advise restarting the computer when possible after updating PowerToys.

General

  • Shared dependencies between applications in order to greatly reduce the installed size.
  • Added missing icons and icon sizes. Thanks @niels9001!

FancyZones

  • Fixed an issue where FancyZones wouldn't register a change to the "Switch between windows in the current zone" setting.
  • Added a Setting to enable the behavior of clicking the middle mouse button to toggle multiple zone spanning.

File Locksmith

  • Fixed a File Explorer crash when deleting a file, updating PowerToys and then trying to right-click the background of a folder in File Explorer.
  • UI tweaks. Thanks @Jay-o-Way!

File Explorer add-ons

  • Updated the Monaco dependency for Developer Files Preview, supporting new file extensions and fixing issues. Thanks @Aaron-Junker!

Hosts File Editor

Installer

  • Refactored the Monaco dependency inclusion. What to install is now being generated automatically.
  • Removed hardlinks and simplified the installer files, now that many utilities use the same paths.

Mouse Highlighter

  • Added a feature so that a highlight follows the mouse even if no mouse button is being pressed. Thanks @hayatogh!

Mouse Pointer Crosshairs

  • Added a setting to hide the crosshairs when the mouse pointer is also hidden. Thanks @davidegiacometti!
  • Added a setting to select a fixed length for the crosshairs, which also spans across screens. Thanks @Epp-code!

Mouse Without Borders

  • Switched to a UWP mouse input API to fix mouse pointer lag issues that were reported.
  • A toast notification will appear when the service can't be started and Mouse Without Borders will try to start in non-service mode instead.
  • Fixed a bug where the service path wouldn't update to the new binary path when trying to re-enable service mode.
  • Fixed some grammar errors in the Mouse Without Borders user facing strings. Thanks @KhurramJalil!
  • Allow changing the shortcuts in the same way as other utilities and changed them to better defaults to avoid conflicting with Alt Gr+letter combos on international layouts.

Peek

  • Also benefits from the Monaco dependency update when peeking into files supported by the Developer Files Preview. Thanks @Aaron-Junker!
  • Fixed a flash on PowerToys starting due to the Peek window activating and hiding right away. Thanks @davidegiacometti!
  • Updated icon design. Thanks @niels9001!
  • Fixed flipped content issues on systems with RTL languages.

PowerRename

  • Reworked the UI and resource consumption to fix crashes and hangs when trying to rename a huge number of files.
  • Added the Mica background material and some UI tweaks. Thanks @niels9001!

PowerToys Run

  • New plugin: Value Generator - generates values like hashes and GUIDs. Thanks @IHorvalds!
  • The default input smoothing values were changed to the recommended values. Thanks @SamMercer172!
  • Fixed tab navigation issues when using Shift+Tab to go backwards. Thanks @davidegiacometti!
  • Fixed a crash caused by images not being found in the image cache due to racing conditions.
  • Fixed synchronization issues in the WindowWalker plugin. Thanks @davidegiacometti!
  • Fixed a synchronization crash when getting localized system paths.
  • The PowerToys plugin is now activated by default. Thanks @davidegiacometti!

Quick Accent

  • Added the ("ḍ", U+1E0D) unicode character. Thanks @SamMercer172!
  • Fixed an issue causing the left and right keys being discarded even when Quick Accent didn't activate.

Registry Preview

  • Fixed a bug causing DWORD values to not be shown correctly. Thanks @randyrants!
  • UI tweaks. Thanks @Jay-o-Way!

Runner

  • Show a warning asking the user to restart the computer after updating the PowerToys version.

Screen Ruler

Settings

  • Fix an unused Expander in the File Locksmith settings page.
  • Added an info box to better explain what the extended context menu is.

Development

  • Projects were restructured to allow sharing the same folder and dependencies and to avoid resource name conflicts.
  • Added scripts to CI to guard against applications having conflicting resources.
  • Added scripts to CI to guard against depending on different versions of the same dependency.
  • Test projects now build to a separate path.
  • Dependencies updated across the solution to ensure every project is using the same dependencies.

What is being planned for version 0.73

For v0.73, we'll work on below:

  • New utility: Crop and Lock
  • Language selection
  • PowerRename enumeration keywords
  • Modernize and refresh UX of PowerToys based on WPF
  • Stability / bug fixes
  • Peek: UI improvements

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