diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt
index 4f367cfb27..e012585b27 100644
--- a/.github/actions/spell-check/expect.txt
+++ b/.github/actions/spell-check/expect.txt
@@ -1,7 +1,6 @@
# FALSE POSITIVES
## "PackagemanagerWrapper.cs" should be "PackageManagerWrapper.cs"
## NOTICE.MD > MOZILLA PUBLIC LICENSE v1.1
-
aaaa
abcdefghjkmnpqrstuvxyz
abgr
@@ -43,7 +42,6 @@ AMPROPSETID
amr
ANDSCANS
animatedvisuals
-anr
ansicolor
ANull
AOC
@@ -1215,6 +1213,7 @@ prgms
pri
PRINTCLIENT
printmanagement
+privacystatement
prm
proactively
PROCESSENTRY
diff --git a/.pipelines/v2/templates/job-build-project.yml b/.pipelines/v2/templates/job-build-project.yml
index 40a0e4a866..2a7acc2bdd 100644
--- a/.pipelines/v2/templates/job-build-project.yml
+++ b/.pipelines/v2/templates/job-build-project.yml
@@ -376,6 +376,16 @@ jobs:
msbuildArchitecture: x64
maximumCpuCount: true
+ ### HACK: On ARM64 builds, building an app with Windows App SDK copies the x64 WebView2 dll instead of the ARM64 one. This task makes sure the right dll is used.
+ - task: CopyFiles@2
+ displayName: HACK Copy core WebView2 ARM64 dll to output directory
+ condition: eq(variables['BuildPlatform'],'arm64')
+ inputs:
+ contents: packages/Microsoft.Web.WebView2.1.0.2739.15/runtimes/win-ARM64/native_uap/Microsoft.Web.WebView2.Core.dll
+ targetFolder: $(Build.SourcesDirectory)/ARM64/Release/WinUI3Apps/
+ flattenFolders: True
+ OverWrite: True
+
# Check if deps.json files don't reference different dll versions.
- pwsh: |-
& '.pipelines/verifyDepsJsonLibraryVersions.ps1' -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)'
diff --git a/DATA_AND_PRIVACY.md b/DATA_AND_PRIVACY.md
new file mode 100644
index 0000000000..9390d37722
--- /dev/null
+++ b/DATA_AND_PRIVACY.md
@@ -0,0 +1,1012 @@
+# PowerToys Data & Privacy
+## Overview
+PowerToys diagnostic data is completely optional for users and is off by default in v0.86 and beyond. Our team believes in transparency and trust. As PowerToys is open source, all of our diagnostic data events are in the codebase.
+
+Additionally, this document aims to list each diagnostic data event individually and describe their purpose clearly.
+
+For more information, please read the [Microsoft privacy statement](https://privacy.microsoft.com/privacystatement).
+
+## What does PowerToys collect?
+
+1. **Usage**: Understanding usage and frequency rates for utilities and settings helps us make decisions on where to focus our time and energy. This data also helps us better understand what and how to move well-loved features directly into Windows!
+2. **Stability**: Monitoring bugs and system crashes, as well as analyzing GitHub issue reports, assists us in prioritizing the most urgent issues.
+3. **Performance**: Assessing the performance of PowerToys features to load and execute gives us an understanding of what surfaces are causing slowdowns. This supports our commitment to providing you with tools that are both speedy and effective.
+
+### Success Story: Fixing FancyZones Bugs with Your Help
+FancyZones had numerous bug reports related to virtual desktop interactions. Initially, these were considered lower priority, since the assumption was that virtual desktops were not widely used, so we chose to focus on more urgent issues. However, the volume of bug reports suggested otherwise, prompting us to add additional diagnostics to see virtual desktop usage with FancyZones. We discovered that virtual desktop usage was much higher among FancyZones users. This new understanding led us to prioritize this class of bugs and get them fixed.
+
+## Transparency and Public Sharing
+As much as possible, we aim to share the results of diagnostic data publicly.
+
+We hope this document provides clarity on why and how we collect diagnostic data to improve PowerToys for our users. If you have any questions or concerns, please feel free to reach out to us.
+
+Thank you for using PowerToys!
+
+## List of Diagnostic Data Events
+_**Note:** We're in the process of updating this section with more events and their descriptions. We aim to keep this list current by adding any new diagnostic data events as they become available._
+
+_If you want to find diagnostic data events in the source code, these two links will be good starting points based on the source code's langauge._
+- [C# events](https://github.com/search?q=repo%3Amicrosoft/PowerToys%20EventBase&type=code)
+- [C++ events](https://github.com/search?q=repo%3Amicrosoft%2FPowerToys+ProjectTelemetryPrivacyDataTag&type=code)
+
+### General
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.DebugEvent |
+ Logs debugging information for diagnostics and troubleshooting. |
+
+
+ Microsoft.PowerToys.GeneralSettingsChanged |
+ Logs changes made to general settings within PowerToys. |
+
+
+ Microsoft.PowerToys.Runner_Launch |
+ Indicates when the PowerToys Runner is launched. |
+
+
+ Microsoft.PowerToys.SettingsBootEvent |
+ Triggered when PowerToys settings are initialized at startup. |
+
+
+ Microsoft.PowerToys.SettingsEnabledEvent |
+ Indicates that the PowerToys settings have been enabled. |
+
+
+ Microsoft.PowerToys.ScoobeStartedEvent |
+ Triggered when SCOOBE (Secondary Out-of-box experience) starts. |
+
+
+ Microsoft.PowerToys.TrayFlyoutActivatedEvent |
+ Indicates when the tray flyout menu is activated. |
+
+
+ Microsoft.PowerToys.TrayFlyoutModuleRunEvent |
+ Logs when a utility from the tray flyout menu is run. |
+
+
+
+### OOBE (Out-of-box experience)
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.AdvancedPaste_EnableAdvancedPaste |
+ Triggered when Advanced Paste is enabled. |
+
+
+ Microsoft.PowerToys.AdvancedPaste_Error |
+ Occurs when an error is encountered during the Advanced Paste process. |
+
+
+ Microsoft.PowerToys.AdvancedPaste_InvokeAdvancedPaste |
+ Activated when Advanced Paste is called by the user. |
+
+
+ Microsoft.PowerToys.AdvancedPaste_Settings |
+ Triggered when settings for Advanced Paste are accessed or modified. |
+
+
+ Microsoft.PowerToys.AdvancedPasteClipboardItemClicked |
+ Occurs when a clipboard item is selected from the Advanced Paste menu. |
+
+
+ Microsoft.PowerToys.AdvancedPasteClipboardItemDeletedEvent |
+ Triggered when an item is removed from the Advanced Paste clipboard history. |
+
+
+ Microsoft.PowerToys.AdvancedPasteCustomFormatOutputThumbUpDownEvent |
+ Triggered when a user gives feedback on a custom format output (thumb up/down). |
+
+
+ Microsoft.PowerToys.AdvancedPasteFormatClickedEvent |
+ Occurs when a specific paste format is clicked in the Advanced Paste menu. |
+
+
+ Microsoft.PowerToys.AdvancedPasteGenerateCustomErrorEvent |
+ Triggered when an error occurs while generating a custom paste format. |
+
+
+ Microsoft.PowerToys.AdvancedPasteGenerateCustomFormatEvent |
+ Occurs when a custom paste format is successfully generated. |
+
+
+ Microsoft.PowerToys.AdvancedPasteInAppKeyboardShortcutEvent |
+ Triggered when a keyboard shortcut is used within the Advanced Paste interface. |
+
+
+
+### Always on Top
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.Awake_EnableAwake |
+ Triggered when Awake is enabled. |
+
+
+ Microsoft.PowerToys.AwakeExpirableKeepAwakeEvent |
+ Occurs when the system is kept awake for a temporary, expirable duration. |
+
+
+ Microsoft.PowerToys.AwakeIndefinitelyKeepAwakeEvent |
+ Triggered when the system is set to stay awake indefinitely. |
+
+
+ Microsoft.PowerToys.AwakeNoKeepAwakeEvent |
+ Occurs when Awake is turned off, allowing the computer to enter sleep mode. |
+
+
+ Microsoft.PowerToys.AwakeTimedKeepAwakeEvent |
+ Triggered when the system is kept awake for a specified time duration. |
+
+
+
+### Color Picker
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.ColorPicker_EnableColorPicker |
+ Triggered when Color Picker is enabled. |
+
+
+ Microsoft.PowerToys.ColorPicker_Session |
+ Occurs during a Color Picker usage session. |
+
+
+ Microsoft.PowerToys.ColorPicker_Settings |
+ Triggered when the settings for the Color Picker are accessed or modified. |
+
+
+ Microsoft.PowerToys.ColorPickerCancelledEvent |
+ Occurs when a color picking action is cancelled by the user. |
+
+
+ Microsoft.PowerToys.ColorPickerShowEvent |
+ Triggered when the Color Picker UI is displayed on the screen. |
+
+
+
+### Command Not Found
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.CropAndLock_ActivateReparent |
+ Triggered when the cropping interface is activated for reparenting the cropped content. |
+
+
+ Microsoft.PowerToys.CropAndLock_ActivateThumbnail |
+ Occurs when the thumbnail view for cropped content is activated. |
+
+
+ Microsoft.PowerToys.CropAndLock_EnableCropAndLock |
+ Triggered when Crop and Lock is enabled. |
+
+
+ Microsoft.PowerToys.CropAndLock_Settings |
+ Occurs when settings related to Crop and Lock are modified. |
+
+
+
+### Environment Variables
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.EnvironmentVariables_Activate |
+ Triggered when Environment Variables is launched. |
+
+
+ Microsoft.PowerToys.EnvironmentVariables_EnableEnvironmentVariables |
+ Occurs when Environment Variables is enabled. |
+
+
+ Microsoft.PowerToys.EnvironmentVariablesOpenedEvent |
+ Triggered when the Environment Variables interface is opened. |
+
+
+ Microsoft.PowerToys.EnvironmentVariablesProfileEnabledEvent |
+ Occurs when an environment variable profile is enabled. |
+
+
+ Microsoft.PowerToys.EnvironmentVariablesVariableChangedEvent |
+ Triggered when an environment variable is added, modified, or deleted. |
+
+
+
+### FancyZones
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.FancyZones_CycleActiveZoneSet |
+ Triggered when the active zone set is cycled through. |
+
+
+ Microsoft.PowerToys.FancyZones_EditorLaunch |
+ Occurs when the FancyZones editor is launched. |
+
+
+ Microsoft.PowerToys.FancyZones_EnableFancyZones |
+ Occurs when FancyZones is enabled. |
+
+
+ Microsoft.PowerToys.FancyZones_KeyboardSnapWindowToZone |
+ Triggered when a window is snapped to a zone using the keyboard. |
+
+
+ Microsoft.PowerToys.FancyZones_MoveOrResizeEnded |
+ Occurs when a window move or resize action has completed. |
+
+
+ Microsoft.PowerToys.FancyZones_MoveOrResizeStarted |
+ Triggered when a window move or resize action is initiated. |
+
+
+ Microsoft.PowerToys.FancyZones_MoveSizeEnd |
+ Occurs when the moving or resizing of a window has ended. |
+
+
+ Microsoft.PowerToys.FancyZones_OnKeyDown |
+ Triggered when a key is pressed down while interacting with zones. |
+
+
+ Microsoft.PowerToys.FancyZones_QuickLayoutSwitch |
+ Occurs when a quick switch between zone layouts is performed. |
+
+
+ Microsoft.PowerToys.FancyZones_Settings |
+ Triggered when FancyZones settings are accessed or modified. |
+
+
+ Microsoft.PowerToys.FancyZones_SettingsChanged |
+ Occurs when there is a change in the FancyZones settings. |
+
+
+ Microsoft.PowerToys.FancyZones_SnapNewWindowIntoZone |
+ Triggered when a new window is snapped into a zone. |
+
+
+ Microsoft.PowerToys.FancyZones_VirtualDesktopChanged |
+ Occurs when the virtual desktop changes, affecting zone layout. |
+
+
+ Microsoft.PowerToys.FancyZones_ZoneSettingsChanged |
+ Triggered when the settings for specific zones are altered. |
+
+
+ Microsoft.PowerToys.FancyZones_ZoneWindowKeyUp |
+ Occurs when a key is released while interacting with zones. |
+
+
+
+### FileExplorerAddOns
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.GcodeFileHandlerLoaded |
+ Triggered when a G-code file handler is loaded. |
+
+
+ Microsoft.PowerToys.GcodeFilePreviewed |
+ Occurs when a G-code file is previewed in File Explorer. |
+
+
+ Microsoft.PowerToys.GcodeFilePreviewError |
+ Triggered when there is an error previewing a G-code file. |
+
+
+ Microsoft.PowerToys.MarkdownFileHandlerLoaded |
+ Occurs when a Markdown file handler is loaded. |
+
+
+ Microsoft.PowerToys.MarkdownFilePreviewed |
+ Triggered when a Markdown file is previewed in File Explorer. |
+
+
+ Microsoft.PowerToys.PdfFileHandlerLoaded |
+ Occurs when a PDF file handler is loaded. |
+
+
+ Microsoft.PowerToys.PdfFilePreviewed |
+ Triggered when a PDF file is previewed in File Explorer. |
+
+
+ Microsoft.PowerToys.PowerPreview_Enabled |
+ Occurs when preview is enabled. |
+
+
+ Microsoft.PowerToys.PowerPreview_TweakUISettings_Destroyed |
+ Triggered when the Tweak UI settings for Power Preview are destroyed. |
+
+
+ Microsoft.PowerToys.PowerPreview_TweakUISettings_FailedUpdatingSettings |
+ Occurs when updating Tweak UI settings fails. |
+
+
+ Microsoft.PowerToys.PowerPreview_TweakUISettings_InitSet__ErrorLoadingFile |
+ Triggered when there is an error loading a file during Tweak UI settings initialization. |
+
+
+ Microsoft.PowerToys.PowerPreview_TweakUISettings_SuccessfullyUpdatedSettings |
+ Occurs when the Tweak UI settings for Power Preview are successfully updated. |
+
+
+ Microsoft.PowerToys.QoiFilePreviewed |
+ Triggered when a QOI file is previewed in File Explorer. |
+
+
+ Microsoft.PowerToys.SvgFileHandlerLoaded |
+ Occurs when an SVG file handler is loaded. |
+
+
+ Microsoft.PowerToys.SvgFilePreviewed |
+ Triggered when an SVG file is previewed in File Explorer. |
+
+
+ Microsoft.PowerToys.SvgFilePreviewError |
+ Occurs when there is an error previewing an SVG file. |
+
+
+
+### File Locksmith
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.FileLocksmith_EnableFileLocksmith |
+ Triggered when File Locksmith is enabled. |
+
+
+ Microsoft.PowerToys.FileLocksmith_Invoked |
+ Occurs when File Locksmith is invoked. |
+
+
+ Microsoft.PowerToys.FileLocksmith_InvokedRet |
+ Triggered when File Locksmith invocation returns a result. |
+
+
+ Microsoft.PowerToys.FileLocksmith_QueryContextMenuError |
+ Occurs when there is an error querying the context menu for File Locksmith. |
+
+
+
+### Find My Mouse
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.KeyboardManager_AppSpecificShortcutRemapConfigurationLoaded |
+ Indicates that the application-specific shortcut remap configuration has been successfully loaded. |
+
+
+ Microsoft.PowerToys.KeyboardManager_AppSpecificShortcutRemapCount |
+ Logs the number of application-specific shortcut remaps configured by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_AppSpecificShortcutToShortcutRemapInvoked |
+ Logs each instance when an application-specific shortcut-to-shortcut remap is used. |
+
+
+ Microsoft.PowerToys.KeyboardManager_DailyAppSpecificShortcutToKeyRemapInvoked |
+ Logs the daily count of application-specific shortcut-to-key remaps executed by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_DailyAppSpecificShortcutToShortcutRemapInvoked |
+ Logs the daily count of application-specific shortcut-to-shortcut remaps executed by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_DailyKeyToKeyRemapInvoked |
+ Logs the daily count of key-to-key remaps used by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_DailyKeyToShortcutRemapInvoked |
+ Logs the daily count of key-to-shortcut remaps used by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_DailyShortcutToKeyRemapInvoked |
+ Logs the daily count of shortcut-to-key remaps used by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_DailyShortcutToShortcutRemapInvoked |
+ Logs the daily count of shortcut-to-shortcut remaps used by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_EnableKeyboardManager |
+ Indicates that the Keyboard Manager has been enabled in PowerToys settings. |
+
+
+ Microsoft.PowerToys.KeyboardManager_KeyRemapConfigurationLoaded |
+ Indicates that the key remap configuration has been successfully loaded. |
+
+
+ Microsoft.PowerToys.KeyboardManager_KeyRemapCount |
+ Logs the number of individual key remaps configured by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_KeyToKeyRemapInvoked |
+ Logs each instance of a key-to-key remap being used. |
+
+
+ Microsoft.PowerToys.KeyboardManager_KeyToShortcutRemapInvoked |
+ Logs each instance of a key-to-shortcut remap being used. |
+
+
+ Microsoft.PowerToys.KeyboardManager_OSLevelShortcutRemapCount |
+ Logs the total number of OS-level shortcut remaps configured by the user. |
+
+
+ Microsoft.PowerToys.KeyboardManager_OSLevelShortcutToKeyRemapInvoked |
+ Logs each instance of an OS-level shortcut-to-key remap being used. |
+
+
+ Microsoft.PowerToys.KeyboardManager_OSLevelShortcutToShortcutRemapInvoked |
+ Logs each instance of an OS-level shortcut-to-shortcut remap being used. |
+
+
+ Microsoft.PowerToys.KeyboardManager_ShortcutRemapConfigurationLoaded |
+ Indicates that the shortcut remap configuration has been successfully loaded. |
+
+
+
+### Mouse Highlighter
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.MouseWithoutBorders_Activate |
+ Triggered when Mouse Without Borders is activated. |
+
+
+ Microsoft.PowerToys.MouseWithoutBorders_AddFirewallRule |
+ Occurs when a firewall rule is added for Mouse Without Borders. |
+
+
+ Microsoft.PowerToys.MouseWithoutBorders_EnableMouseWithoutBorders |
+ Triggered when Mouse Without Borders is enabled. |
+
+
+ Microsoft.PowerToys.MouseWithoutBorders_ToggleServiceRegistration |
+ Occurs when the service registration for Mouse Without Borders is toggled. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersClipboardFileTransferEvent |
+ Triggered during a clipboard file transfer between computers. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersDragAndDropEvent |
+ Occurs during a drag-and-drop operation between computers. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersMultipleModeEvent |
+ Triggered when multiple modes are enabled in Mouse Without Borders. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersOldUIOpenedEvent |
+ Occurs when the old user interface for Mouse Without Borders is opened. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersOldUIQuitEvent |
+ Triggered when the old user interface for Mouse Without Borders is closed. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersOldUIReconfigureEvent |
+ Occurs when the old user interface for Mouse Without Borders is reconfigured. |
+
+
+ Microsoft.PowerToys.MouseWithoutBordersStartedEvent |
+ Triggered when Mouse Without Borders is started. |
+
+
+
+### New+
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.NewPlus_EventCopyTemplate |
+ Triggered when an item from New+ is created (copied to the current directory). |
+
+
+ Microsoft.PowerToys.NewPlus_EventCopyTemplateResult |
+ Logs the success of item creation (copying). |
+
+
+ Microsoft.PowerToys.NewPlus_EventShowTemplateItems |
+ Triggered when the New+ context menu flyout is displayed. |
+
+
+ Microsoft.PowerToys.NewPlus_EventToggleOnOff |
+ Triggered when New+ is enabled or disabled. |
+
+
+
+### Peek
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.Peek_Closed |
+ Triggered when Peek is closed. |
+
+
+ Microsoft.PowerToys.Peek_EnablePeek |
+ Occurs when Peek is enabled. |
+
+
+ Microsoft.PowerToys.Peek_Error |
+ Triggered when an error occurs for Peek. |
+
+
+ Microsoft.PowerToys.Peek_InvokePeek |
+ Occurs when Peek is invoked. |
+
+
+ Microsoft.PowerToys.Peek_Opened |
+ Triggered when a Peek window is opened. |
+
+
+ Microsoft.PowerToys.Peek_OpenWith |
+ Occurs when an item is opened with Peek. |
+
+
+ Microsoft.PowerToys.Peek_Settings |
+ Triggered when the settings for Peek are modified. |
+
+
+
+### PowerRename
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.PowerRename_EnablePowerRename |
+ Triggered when PowerRename is enabled. |
+
+
+ Microsoft.PowerToys.PowerRename_Invoked |
+ Occurs when PowerRename is invoked. |
+
+
+ Microsoft.PowerToys.PowerRename_InvokedRet |
+ Triggered when the invocation of PowerRename returns a result. |
+
+
+ Microsoft.PowerToys.PowerRename_RenameOperation |
+ Triggered during the rename operation within PowerRename. |
+
+
+ Microsoft.PowerToys.PowerRename_SettingsChanged |
+ Occurs when the settings for PowerRename are changed. |
+
+
+ Microsoft.PowerToys.PowerRename_UIShownRet |
+ Triggered when the PowerRename user interface is shown. |
+
+
+
+### PowerToys Run
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.LauncherBootEvent |
+ Triggered when PowerToys Run is initialized on boot. |
+
+
+ Microsoft.PowerToys.LauncherColdStateHotkeyEvent |
+ Occurs when the hotkey is pressed in the cold state (not yet initialized). |
+
+
+ Microsoft.PowerToys.LauncherFirstDeleteEvent |
+ Triggered when the first deletion action is performed in PowerToys Run. |
+
+
+ Microsoft.PowerToys.LauncherHideEvent |
+ Occurs when PowerToys Run is hidden. |
+
+
+ Microsoft.PowerToys.LauncherQueryEvent |
+ Triggered when a query is made in PowerToys Run. |
+
+
+ Microsoft.PowerToys.LauncherResultActionEvent |
+ Occurs when an action is taken on a result in PowerToys Run. |
+
+
+ Microsoft.PowerToys.LauncherShowEvent |
+ Triggered when PowerToys Run is shown. |
+
+
+ Microsoft.PowerToys.LauncherWarmStateHotkeyEvent |
+ Occurs when the hotkey is pressed in the warm state (initialized). |
+
+
+ Microsoft.PowerToys.RunPluginsSettingsEvent |
+ Triggered when the settings for PowerToys Run plugins are accessed or modified. |
+
+
+ Microsoft.PowerToys.WindowWalker_EnableWindowWalker |
+ Triggered when the Window Walker plugin is enabled. |
+
+
+
+### Quick Accent
+
+
+ Event Name |
+ Description |
+
+
+ Microsoft.PowerToys.Projects_CLIUsage |
+ Logs usage of command-line arguments for launching apps. |
+
+
+ Microsoft.PowerToys.Workspaces_CreateEvent |
+ Triggered when a new workspace is created. |
+
+
+ Microsoft.PowerToys.Workspaces_DeleteEvent |
+ Triggered when a workspace is deleted. |
+
+
+ Microsoft.PowerToys.Workspaces_EditEvent |
+ Triggered when a workspace is edited or modified. |
+
+
+ Microsoft.PowerToys.Workspaces_Enable |
+ Indicates that Workspaces is enabled. |
+
+
+ Microsoft.PowerToys.Workspaces_LaunchEvent |
+ Triggered when a workspace is launched. |
+
+
+ Microsoft.PowerToys.Workspaces_Settings |
+ Logs changes to workspaces settings. |
+
+
+
+
diff --git a/README.md b/README.md
index aa0648fb40..0c21079740 100644
--- a/README.md
+++ b/README.md
@@ -34,19 +34,19 @@ Microsoft PowerToys is a set of utilities for power users to tune and streamline
Go to the [Microsoft PowerToys GitHub releases page][github-release-link] 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.
-[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aissue+milestone%3A%22PowerToys+0.86%22
-[github-current-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aissue+milestone%3A%22PowerToys+0.85%22
-[ptUserX64]: https://github.com/microsoft/PowerToys/releases/download/v0.85.1/PowerToysUserSetup-0.85.1-x64.exe
-[ptUserArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.85.1/PowerToysUserSetup-0.85.1-arm64.exe
-[ptMachineX64]: https://github.com/microsoft/PowerToys/releases/download/v0.85.1/PowerToysSetup-0.85.1-x64.exe
-[ptMachineArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.85.1/PowerToysSetup-0.85.1-arm64.exe
+[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aissue+milestone%3A%22PowerToys+0.87%22
+[github-current-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aissue+milestone%3A%22PowerToys+0.86%22
+[ptUserX64]: https://github.com/microsoft/PowerToys/releases/download/v0.86.0/PowerToysUserSetup-0.86.0-x64.exe
+[ptUserArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.86.0/PowerToysUserSetup-0.86.0-arm64.exe
+[ptMachineX64]: https://github.com/microsoft/PowerToys/releases/download/v0.86.0/PowerToysSetup-0.86.0-x64.exe
+[ptMachineArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.86.0/PowerToysSetup-0.86.0-arm64.exe
| Description | Filename | sha256 hash |
|----------------|----------|-------------|
-| Per user - x64 | [PowerToysUserSetup-0.85.1-x64.exe][ptUserX64] | 5F287C34BF68972C55D7C26585EA5C449B0DBA7D458BF7039CFF448E1D7B732B |
-| Per user - ARM64 | [PowerToysUserSetup-0.85.1-arm64.exe][ptUserArm64] | 6D5C3B24156E6E66FD38AD15076B8442F0A1C5CFCBBDC33AD478FB27E5E086AE |
-| Machine wide - x64 | [PowerToysSetup-0.85.1-x64.exe][ptMachineX64] | 1CDD3C9602F6E5DDC19C66A4FDFE4231389C08E6A037DD22C0A6471F10C7BE02 |
-| Machine wide - ARM64 | [PowerToysSetup-0.85.1-arm64.exe][ptMachineArm64] | 6F4DC0217495973B974B7AC1099FD01A2A0FCEE96E8719074EC97FBBC0ECAC4A |
+| Per user - x64 | [PowerToysUserSetup-0.86.0-x64.exe][ptUserX64] | CFB9608B28B8FF12C9A7C9814A6EF981636EB5AB261DC278C28EC93FD959CCE2 |
+| Per user - ARM64 | [PowerToysUserSetup-0.86.0-arm64.exe][ptUserArm64] | 857DE9DC5938D9602F82DFD6183DB5E6823B875A412AEC59B4BE93617E27E9CD |
+| Machine wide - x64 | [PowerToysSetup-0.86.0-x64.exe][ptMachineX64] | 861CEDBFDCDA993D1D1056E3280319D5EA45D142CA3C737AB1FB4FABD651A5F5 |
+| Machine wide - ARM64 | [PowerToysSetup-0.86.0-arm64.exe][ptMachineArm64] | 6F37192534C195A02A80AAE1E449DF61C894C50763096A06195581801943FA31 |
This is our preferred method.
@@ -92,113 +92,103 @@ For guidance on developing for PowerToys, please read the [developer docs](/doc/
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
-### 0.85 - September 2024 Update
+### 0.86 - October 2024 Update
In this release, we focused on new features, stability, and improvements.
**Highlights**
-
- - New utility: New+ - allows setting a personalized set of templates to quickly create files and folders from a File Explorer context menu. Thanks [@cgaarden](https://github.com/cgaarden)!
- - Language selection - it's now possible to select which UI language should be used by PowerToys utilities.
- - Lots of quality fixes for Workspaces, improving the number of supported applications.
- - Reduced Peek memory usage by fixing image leaks. Thanks [@daverayment](https://github.com/daverayment)!
+
+ - Advanced Paste has new abilities: Image to text, and paste to file (text / png / html).
+ - In settings, we've adjusted the left navigation to group the utilities. As the number of utilities shipped with PowerToys keeps growing, we felt this was a needed adjustment. Thanks everyone for your feedback!
+ - Workspaces received many bug fixes, including the proper launching of many instances of the same application in the same workspace. Note, we are still actively looking at how to properly handle PWA detection.
+ - We've added a telemetry opt-in option in the Settings General tab. As it is off-by-default, we encourage users to turn it on as that helps direct our development efforts and their journeys. More information about the data we collect can be found in the [PowerToys Data and Privacy documentation](https://aka.ms/powertoys-data-and-privacy-documentation) and what each event does.
### General
- - Added a general setting to select which UI language should be used in PowerToys utilities.
- - Fixed internal code of some policies for Group Policy Objects, that were reading registry entries using the wrong internal functions, and structured code better to avoid future mistakes of the same kind. Thanks [@htcfreek](https://github.com/htcfreek)!
+ - Added a setting for telemetry opt-in (off by default, however, see above for why we encourage you to opt-in!) and user controls to view data.
+ - Improved exception logging by adding the type of Exception and InnerException. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
### Advanced Paste
- - Fixed some telemetry calls to signal Advanced Paste activation on the cases where a direct shortcut is being used without showing the UI.
- - User-defined custom actions can only be used with AI turned on, so custom actions were disabled on Settings when AI is disabled and were hidden from the Advanced Paste UI.
+ - Added new built-in actions: Image to text, and paste txt, png or html as a file.
-### Awake
+### Mouse Jump
- - Fixed tray icon behaviors, not appearing and showing incorrect time. Thanks [@dend](https://github.com/dend)!
+ - Refactored the common classes into a separate project. Thanks [@mikeclayton](https://github.com/mikeclayton)!
+ - Brought back the telemetry events that were deleted across previous refactoring efforts.
-### Environment Variables Editor
+### Mouse Without Borders
- - Added the `_NT_SYMBOL_PATH`, `_NT_ALT_SYMBOL_PATH` and `_NT_SYMCACHE_PATH` as variables that are shown as lists. Thanks [@chwarr](https://github.com/chwarr)!
-
-### FancyZones
-
- - Allow snapping applications that were launched by Workspaces.
-
-### File Locksmith
-
- - Fixed an issue causing File Locksmith to be triggered by unrelated verbs in the context menu.
-
-### Mouse Pointer Crosshairs
-
- - Allow crosshairs radius to be 0 pixels. Thanks [@octastylos-pseudodipteros](https://github.com/octastylos-pseudodipteros)!
+ - Refactored the Logger common classes. Thanks [@mikeclayton](https://github.com/mikeclayton)!
### New+
- - New utility - Allows setting a personalized set of templates to quickly create files and folders from a File Explorer context menu. Thanks [@cgaarden](https://github.com/cgaarden)!
- - Added missing entry for New+ policy state reporting in the Bug Report tool. Thanks [@htcfreek](https://github.com/htcfreek)!
- - Added a policy for enabling/disabling whether filename extensions should be shown. Thanks [@htcfreek](https://github.com/htcfreek)!
+ - Fixed the telemetry event for when the modules is enabled or disabled. (This was a hotfix for 0.85)
+ - Fixed bug when creating folders or files that contain Unicode characters. Thanks [@cgaarden](https://github.com/cgaarden)!
+ - Fixed bug when the name of a new folder collided with an already existing folder. Thanks [@cgaarden](https://github.com/cgaarden)!
+ - Updated the New+ icons to the fluent style.
### Peek
- - Properly show file's modified date instead of creation date in the file previewer. Thanks [@daverayment](https://github.com/daverayment)!
- - Fixed memory leak caused by unmanaged bitmap images not being freed. Thanks [@daverayment](https://github.com/daverayment)!
- - Fixed an issue causing Peek to not be displayed the first time when using a preview handler to display files. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- - Prevent tooltip in file previewer from overlapping with title bar controls. Thanks [@daverayment](https://github.com/daverayment)!
- - Fixed memory leaks in thumbnails and refactored image previewer. Thanks [@daverayment](https://github.com/daverayment)!
+ - Folder preview enumeration of size and number of files is now more responsive and faster. Thanks [@daverayment](https://github.com/daverayment)!
### PowerToys Run
- - Improved the message boxes to be more specific when PowerToys Run failed to initialize itself or any plugin. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- - Use capital letters when showing degree results in the Unit Converter plugin. Thanks [@PesBandi](https://github.com/PesBandi)!
+ - Handled a culture not found error when checking for right-to-left languages.
+ - Fixed the WebSearch plugin results title being trimmed in the UI. Thanks [@octastylos-pseudodipteros](https://github.com/octastylos-pseudodipteros)!
+ - The Unit Converter plugin will now show more significant digits. Thanks [@PesBandi](https://github.com/PesBandi)!
+ - Improved error handling when copying to the clipboard results in an error. Thanks [@PesBandi](https://github.com/PesBandi)!
### Quick Accent
- - Add the Middle Eastern Romanization character set. Thanks [@PesBandi](https://github.com/PesBandi)!
- - Add the degree sign, integral and vertical ellipsis when "All Languages" is selected. Thanks [@rddunphy](https://github.com/rddunphy)!
+ - Added support for the Serbian Cyrillic character set. Thanks [@Sirozha1337](https://github.com/Sirozha1337)!
+
+### Registry Preview
+
+ - Adopted the Monaco Editor as the UI text editor. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
### Settings
- - Fixed the link to the Workspaces documentation. (This was a hotfix for 0.84)
- - Fixed flyout issues after the Windows App SDK upgrade. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- - Fixed initialization for the New+ settings page. Thanks [@htcfreek](https://github.com/htcfreek)!
- - Fixed enabled state of a control on the New+ settings page if the module is enabled by policy. Thanks [@htcfreek](https://github.com/htcfreek)!
- - Fixed a crash when cancelling the template folder selection in the New+ settings page.
+ - Fixed a crash when trying to access a non-existing templates folder from the New+ page. (This was a hotfix for 0.85)
+ - Added a navigation tree to group utilities in the left navigation menu.
+ - Sorted the list of languages in the language selection combo box in the General tab. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
+ - Fixed the state of the info bar about templates not being backed up to not close and react to the module's enabled state in the New+ page. Thanks [@htcfreek](https://github.com/htcfreek)!
+ - Fixed a crash caused by a dangling thread.
+ - Clicking a notification about there being an update available should now correctly open the Settings application in the General tab.
+ - Fixed a UI freeze when trying to access the Diagnostic Data Viewer files. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
### Workspaces
- - Fixed detecting and snapping applications like Discord. (This was a hotfix for 0.84)
- - Fixed detecting and snapping applications like Steam. (This was a hotfix for 0.84)
- - Fixed button visibility in the UI. (This was a hotfix for 0.84)
- - Fixed an issue launching the wrong project when the editor was closed without saving or cancelling a new project.
- - Properly handle repositioning windows running as administrator.
- - Properly handle cases where the monitor where a workspace was saved is no longer present.
- - Fixed the workspace launcher restarting itself in a loop without success.
- - Properly handle standalone applications.
- - Fixed issues causing icons to not show.
+ - Fixed launching the incorrect workspace when launching many workspaces quickly through shortcuts. (This was a hotfix for 0.85)
+ - Fixed launching many instances of the same application in a workspace.
+ - Fixed a crash when a previously captured monitor ID no longer existed.
+ - Fixed an issue causing the wrong coordinates to be saved for minimized applications.
+ - Fixed an issue causing a crash when stress testing workspace launching.
+ - Fixed application launching when UAC is off and every application always runs elevated.
### Documentation
- - Fixed the thirdPartyRunPlugins.md entry for the RDP plugin. Thanks [@YisroelTech](https://github.com/YisroelTech)!
+ - Added HackMD plugin mention to thirdPartyRunPlugins.md. Thanks [@8LWXpg](https://github.com/8LWXpg)!
+ - Added SSH plugin mention to thirdPartyRunPlugins.md. Thanks [@8LWXpg](https://github.com/8LWXpg)!
+ - Added the [Data and Privacy documentation](https://github.com/microsoft/PowerToys/blob/main/DATA_AND_PRIVACY.md) to the repo.
### Development
- - Upgraded Windows App SDK to 1.6.
- - Upgraded the Target Platform Version to 10.0.22621.0.
- - Added a bot trigger to automatically add a label to Workspaces issues. Thanks [@plante-msft](https://github.com/plante-msft)!
- - Fixed a regular expression in the bot triggers for wanting to submit community contributions. Thanks [@PesBandi](https://github.com/PesBandi)!
- - Fixed analyzer errors after the Visual Studio 17.12 update. Thanks [@snickler](https://github.com/snickler)!
- - Fixed the TSA configuration for release CI builds.
- - Refactored automated file component generation during installer builds.
- - Rewrote the Azure Devops build system to be more modular and share more definitions between PR CI and Release CI.
- - Fixed debugging of the New+ page of the Settings application when a settings file was not present.
- - Fixed setting the version of the App Manifest in the File Locksmith and New+ context menu app packages.
- - Fixed abstracted UI library nuget package signing on release CI.
- - Removed build status from GitHub README.
+ - Fixed the CI precheck action to take into account the recent changes in CI actions.
+ - Added the new Microsoft org issue types to the issue templates. Thanks [@Aaron-Junker](https://github.com/Aaron-Junker)!
+ - Updated System.Text.Json to 8.0.5 and System.Runtime.Caching to 8.0.1 and related dependencies to the latest to address security reports. Thanks [@snickler](https://github.com/snickler)!
+ - Updated WinAppSDK to 1.6.1 and CsWinRT to 2.1.5. Thanks [@snickler](https://github.com/snickler)!
+ - Upgraded the WpfUI dependency to 3.0.5.
+ - Updated MessagePack to 2.5.187 and StreamJsonRpc to 2.19.27 to address security reports.
+ - Removed some of the hacks that are no longer needed that tried to force same dependency versions in .csproj files.
+ - Removed the Markdown file exclusions from the conditions that trigger a full CI test.
+ - CI fails again when there are XAML style errors in a PR.
+ - Fixed CI actions that were not failing when one of the powershell scripts they tried to run was failing.
+ - Fixed analyzer violations to allow fully building PowerToys on Visual Studio 17.12. Thanks [@snickler](https://github.com/snickler)!
-#### What is being planned for version 0.86
+#### What is being planned for version 0.87
-For [v0.86][github-next-release-work], we'll work on the items below:
+For [v0.87][github-next-release-work], we'll work on the items below:
- Stability / bug fixes
- New module: File Actions Menu
diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs
index e8e89cc7cd..a7b0bcf5dc 100644
--- a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs
+++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs
@@ -159,9 +159,9 @@ namespace Microsoft.PowerToys.Settings.UI.Views
ViewModel.RefreshSettingsOnExternalChange();
}
- private void ViewDiagnosticData_Click(object sender, RoutedEventArgs e)
+ private async void ViewDiagnosticData_Click(object sender, RoutedEventArgs e)
{
- ViewModel.ViewDiagnosticData();
+ await Task.Run(ViewModel.ViewDiagnosticData);
}
}
}