As featured in:
- Watch this: 5 Biggest Rivalries in Computing History
- The History of the Modern Graphics Processor
- What's New in DirectX 12? Understanding DirectML, DirectX Raytracing and DirectStorage
Inspired by the Windows 95 era PowerToys project, this reboot provides power users with utilities to squeeze more efficiency out of the Windows 10 shell and customize it for individual workflows. Check out this great overview of the Windows 95 PowerToys.
The first preview release of PowerToys contains two utilities with all the code for the project on GitHub. The repo also contains the information and tools you need to understand how the PowerToys’ utilities work together and how to create your own utilities.
To kick the tires on the first two utilities, download the installer here. The main PowerToys service runs when Windows starts and a user logs in. When the service is running, a PowerToys icon appears in the system tray. Selecting the icon launches the PowerToys settings UI. The settings UI lets you enable and disable individual utilities and provides settings for each utility. There is also a link to the help doc for each utility. You can right click the tray icon to quit the Power Toys service.
PowerToys settings UI.Note that some PowerToys functionality requires running in an elevated process. Elevation is required to interact with and manipulate windows from processes that have a higher set of rights than the current user. This is why the PowerToys.exe requests elevation when launched.
If you find bugs or have suggestions, please open an issue in the Power Toys GitHub repo. The backlog for creating new utilities is here. You can provide feedback on the backlog to suggest new ideas or a different priority order by joining the backlog discussion in this issue.
First two utilities
This first preview of PowerToys contains two utilities. The Windows key shortcut guide and a window manager called FancyZones.
Windows key shortcut guide
The Windows key shortcut guide is a full screen overlay utility that provides a dynamic set of Windows key shortcuts that are applicable for the given desktop and currently active window. When the Windows key is held down for one second, (this time can be tuned in settings,) an overlay appears on the desktop showing all available Windows key shortcuts and what action those shortcuts will take given the current state of the desktop and active window. If the Windows key continues to be held down after a shortcut is issued, the overlay will remain up and show the new state of the active window.
Find detailed information on the Windows key shortcut guide, the backlog for this utility, and the source code.
FancyZones is a window manager that is designed to make it easy to arrange and snap windows into efficient layouts for your workflow, and also to restore these layouts quickly. FancyZones allows the user to define a set of window locations for a desktop that are drag targets for windows. When the user drags a window into a zone, the window is resized and repositioned to fill that zone.
To get started with FancyZones, you need to enable the utility in the PowerToys settings, and then invoke the FancyZones setup UI. There’s a button in settings to open this UI, or you can press Win+~ to launch it. When first launched, the UI presents a list of zone layouts that can be quickly adjusted by how many windows are on the monitor. Choosing a layout shows a preview of that layout on the monitor. Pressing the save and close button sets that layout to the monitor.
The editor also supports creating and saving custom layouts. This functionality is in the Custom tab in the editor UI. There are two ways to create custom zone layouts, window layout and table layout. These can also be thought of as additive and subtractive models. The additive window layout model starts with a blank layout and supports adding zones that can be dragged and resized, similar to windows.
The subtractive table layout model starts with a table layout and allows zones to be created by splitting and merging zones and then resizing the gutter between zones.
Community led and developed in the open
Our goal for the PowerToys project is for it to be an extension of the Windows power user community and for it to provide the functionality these users find most valuable. Our backlog of utilities is on GitHub, and we encourage the community to provide feedback on the backlog in this issue. Each utility has its own feature backlog. You can also contribute to the Windows shortcut guide backlog and the FancyZones backlog. For new utility suggestions, please create a new issue to discuss the idea.
Creating your own PowerToys utilities
While opening bug reports, feature suggestions, and feedback on the backlog are all incredibly valuable for this project, if you’re one of the many power users that are also developers, you can contribute directly to the product.
When the PowerToys project was first announced this spring, we didn’t think the reception would be as enthusiastic as it has been. The project started with just an empty repo, with a roadmap and a place for power users to provide suggestions and ideas. However, over 4000 users starred the repo, showing a strong interest in the project. Given this enthusiasm, we’re anticipating many developers will want to contribute to PowerToys, and we’ve made sure that the documentation, project architecture, and tools are ready for the community to dive in.
Before getting started, it’s worthwhile to read the contribution guidelines for the project. After that, you should read the “Developer Guidance” section of the PowerToys readme, which has a link to the new PowerToys utility Visual Studio template. Each utility is a .dll, which is loaded by the PowerToys runtime and each utility can provide settings to the PowerToys settings framework with a JSON blob. The settings UI takes this JSON and automatically creates a settings UI for the utility. More information on the settings format can be found in the Settings spec.
Our goals for v0.37 release cycle Video Conference Mute work so we can bring it into the stable branch, general bug fixes, moving Keyboard manager out, and removing the legacy settings app.
The 0.36 experimental release was released this month as well which includes Video Conference Mute which is based off the 0.35 code base.
Our prioritized roadmap of features and utilities will dictate what the core team is focusing on for the near future.
Highlights from v0.37
- PowerToys now requires Windows 10, version 1903 or higher
- FancyZones editor default launching key is Win+Shift+`
- Windows Terminal's new Quake mode will use Win+`. We feel this is a far better use of the keystroke.
- Current PowerToys users can update this in our settings in the FancyZone section.
- Removed our v1 HTML based settings system
New Spec - Feedback please!
- What is new in PowerToys (SCOOBE) - Pull Request
- Editor UX bug fixes. Thanks @niels9001
- Monitor resolution is added to the top to directly infer the boxes on top are your monitors
- Fix for editor crash when editing a custom layout
- Option added for capitalization.
- Improved loading responsiveness with large sums of files.
- PowerToys Run
- Changed XAML to improve rendering. Thanks @niels9001
- Disabled plugins are no longer loaded
- VS Code plugin workspaces showing up now. Thanks @ricardosantos9521
- Keyboard manager
- Now an independent exe. This now runs high priority in its own process. When your CPU is under load, this should allow the process to continue to be prioritized
- Color Picker
- uses a centralized keyhook. This should improve activation
- Esc for closing will no longer bubble through. Thanks @DoctorNefario
- Settings / Welcome to PowerToys
- Shortcuts will stand out more
- Few accessability bugs fixed. Thanks @niels9001
- Shortcut Guide
- Excluded apps for Shortcut Guide. Thanks @davidegiacometti
- new arg for starting PT after silent install
- Developer quality of life
- Ability to directly debug against Settings