diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt
index e7bcaab1b5..a6d3b032db 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
@@ -1214,6 +1212,7 @@ prgms
pri
PRINTCLIENT
printmanagement
+privacystatement
prm
proactively
PROCESSENTRY
diff --git a/DATA_AND_PRIVACY.md b/DATA_AND_PRIVACY.md
new file mode 100644
index 0000000000..a4d3fe6d83
--- /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. 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. |
+
+
+
+
\ No newline at end of file