PowerToys 0.58 update prepares native ARM64 version and brings more improvements
Microsoft has once again updated the PowerToys suite of tools for Windows, bringing it to version 0.58. This new update doesn’t add any new user-facing features per se, but it does make some important under-the-hood changes, including preparing for an upcoming ARM64 version of the app. Currently, PowerToys is only designed for x64 processors, meaning that to run on ARM devices like the Surface Pro X, it needs to use emulation, which affects performance. Many of the required components for PowerToys to run on ARM64 are now included in the package, so hopefully, we don’t have long to wait now.
That’s not all that’s changed with this update, however. The team has done some work under the hood to bring PowerToys up to more modern standards. For one thing, it’s no longer using the old WebBrowser control for web content, and has switched to WebView2, powered by the Chromium-based Microsoft Edge browser.
Similarly, PowerToys 0.58 drops all uses of .NET Core 3.1 and transitions fully to .NET 6, so it’s more current. And on a final note on the development side, the PowerToys Settings window now runs on WinUI 3, the latest version of Microsoft’s UI framework. Previously, it was using XAML Islands to incorporate UWP-style design in a Win32 app, but WinUI 3 brings all those elements together as well and it’s newer. The team says this transition should solve some bugs related to the use of XAML Islands, so things should work better overall.
Aside from that, there are a ton of smaller fixes and tweaks in PowerToys 0.58, improving the experience overall. You can read the full list of changes below if you want to see everything that’s been improved.
PowerToys 0.58 changelog
- Spell checking fixes in the code. Thanks @jsoref!
- Fix for a CI error related to spell checking due to a GitHub API change. Thanks @jsoref!
- Fixed the documentation references to GitHub. Thanks @Cyl18!
- Prepare solution and property files for ARM64 port. Thanks @snickler!
- Port unhandled exception handler to ARM64. Thanks @snickler!
- Port of the Settings projects to ARM64. Thanks @snickler!
- Port of most of the PowerToys to ARM64. Thanks @snickler!
- Port of the debug utilities to ARM64.
Always on Top
- Fix for topmost state of the window resetting for some applications. (This was a hotfix for 0.57)
- The CIEXYZ format is now properly show in upper case.
- Restore rounded corners on Windows 11 and add a setting to control this behavior. (This was a hotfix for 0.57)
- Fixed an edge case where the Windows Terminal window wouldn’t be snapped when opened. (This was a hotfix for 0.57)
- Improved narrator support in the Grid Editor. (This was a hotfix for 0.57)
- Fixed a bug when restoring rounded corners on Windows 11. (This was a hotfix for 0.57)
- Fix for windows not being resized correctly on different dpi settings. (This was a hotfix for 0.57)
- Removed resolution from the screen identifier so zones aren’t reset when resolution changes.
- Scale the canvas layout when editing according to new scaling/resolution.
- Shipping a new tool to help debug windows interactions with FancyZones.
- Fix for a crash in dev file preview if the settings file hadn’t been created yet. (This was a hotfix for 0.57)
- New file types were added to dev file preview (“.reg”, “.xslt”, “.xsd”, “.wsdl”, “.ino”, “.pde”, “.razor”). Thanks @Aaron-Junker!
- Fix an existing “file still in use” issue in dev file preview. Thanks @Aaron-Junker!
- Dev file preview is now able to interpret file extensions in a case-insensitive way. Thanks @Aaron-Junker!
- SVG and markdown viewers no longer use WebBrowser and use WebView2 instead.
- Markdown preview now respects the dark mode settings on Windows. Thanks @davidegiacometti!
- Fix for the bug causing shortcuts set on icons to not activate when a mouse utility was active on specific monitor configurations.
- Fix for PowerToys Run using high CPU and memory when updating its settings. (This was a hotfix for 0.57)
- Add the “Run as different user” feature to the Program, Shell, and Search plugins. Thanks @htcfreek! (This was a hotfix for 0.57)
- Fix for a WindowWalker crash when a Virtual Desktop registry key is not set. Thanks @htcfreek! (This was a hotfix for 0.57)
- Fix for VS Code Workspaces not using the user’s path variable right after an install or update. Thanks @ricardosantos9521! (This was a hotfix for 0.57)
- Fix for the System plugin causing PowerToys Run to be slow when many network interfaces exist. Thanks @htcfreek! (This was a hotfix for 0.57)
- Fix for the Program plugin not showing special shortcuts with empty targets, like Control Panel. (This was a hotfix for 0.57)
- Additional logging for the Terminal plugin. Thanks @davidegiacometti! (This was a hotfix for 0.57)
- Web Search and URI plugins have better code for detecting the default browser now.
- Fix for the Services plugin not manipulating service names with spaces correctly. Thanks @davidegiacometti!
- Fix for the Terminal plugin not recognizing profiles correctly. Thanks @davidegiacometti!
- Fix for latest VSCode insiders build not showing up in the VSCode Workspaces plugin. Thanks @JacobDeuchert!
- Increased floating number precision in the Unit Converter plugin.
- VSCode Workspaces now finds portable installations of VS Code. Thanks @harvastum
- Fixed an issue starting PowerToys Run when the desktop is not initialized. Thanks @davidegiacometti!
- Settings now runs on WinUI3 instead of XAML islands.
- Settings no longer runs as an administrator when runner is started as an administrator.
- Use sensible default times for rechecking for an update, to avoid writing to the logs in a loop. (This was a hotfix for 0.57)
- Runner cleans up the update directory if the installation is up to date. Thanks @davidegiacometti!
- Distribute a signed .msi inside the .exe installer bootstrapper. (This was a hotfix for 0.57)
- Removed the .NET core dependency from the installer.
- Partial support for an ARM64 installer.
- Updated the .NET to 6.0.4.
- Force update all files on reinstall/update, to try and fix installation issues.
- PowerToys no longer takes a dependency on .NET core.
- WinUI3 is a new dependency. Settings now targets win10-x64 and win10-arm64 due to this.
The past couple of updates for PowerToys have focused mostly on quality improvements rather than new features, but that’s not necessarily a bad thing. These under-the-hood changes should also make it easier to maintain the app going forward. Recently, we saw a new PowerToys feature called Peek is in development, though it isn’t available yet. It’s essentially a Windows version of macOS’ Quick Look, allowing you to quickly view files without opening them in their respective app.
If you’re interested, you can download PowerToys 0.58 from GitHub today, or check for updates within the app if you have it already.