* add script to build a installer
* minor fix
* fix search path for msix file
* fix sign
* fix sign
* fix spelling
* Fix powershell5 can't recognize emoji
* ensure-wix
* bring cmdpal available during local build
* remove early quit
* fix marco
* add logger
* doc
* add a note
* self review
* fix macro def
* add functionality to export cert so that other machine can install it.
* spelling
Windows Command Palette ("CmdPal") is the next iteration of PowerToys Run. With extensibility at its core, the Command Palette is your one-stop launcher to start _anything_.
By default, CmdPal is bound to <kbd>Win+Alt+Space</kbd>.


----
This brings the current preview version of CmdPal into the upstream PowerToys repo. There are still lots of bugs to work out, but it's reached the state we're ready to start sharing it with the world. From here, we can further collaborate with the community on the features that are important, and ensuring that we've got a most robust API to enable developers to build whatever extensions they want.
Most of the built-in PT Run modules have already been ported to CmdPal's extension API. Those include:
* Installed apps
* Shell commands
* File search (powered by the indexer)
* Windows Registry search
* Web search
* Windows Terminal Profiles
* Windows Services
* Windows settings
There are a couple new extensions built-in
* You can now search for packages on `winget` and install them right from the palette. This also powers searching for extensions for the palette
* The calculator has an entirely new implementation. This is currently less feature complete than the original PT Run one - we're looking forward to updating it to be more complete for future ingestion in Windows
* "Bookmarks" allow you to save shortcuts to files, folders, and webpages as top-level commands in the palette.
We've got a bunch of other samples too, in this repo and elsewhere
### PowerToys specific notes
CmdPal will eventually graduate out of PowerToys to live as its own application, which is why it's implemented just a little differently than most other modules. Enabling CmdPal will install its `msix` package.
The CI was minorly changed to support CmdPal version numbers independent of PowerToys itself. It doesn't make sense for us to start CmdPal at v0.90, and in the future, we want to be able to rev CmdPal independently of PT itself.
Closes#3200, closes#3600, closes#7770, closes#34273, closes#36471, closes#20976, closes#14495
-----
TODOs et al
**Blocking:**
- [ ] Images and descriptions in Settings and OOBE need to be properly defined, as mentioned before
- [ ] Niels is on it
- [x] Doesn't start properly from PowerToys unless the fix PR is merged.
- https://github.com/zadjii-msft/PowerToys/pull/556 merged
- [x] I seem to lose focus a lot when I press on some limits, like between the search bar and the results.
- This is https://github.com/zadjii-msft/PowerToys/issues/427
- [x] Turned off an extension like Calculator and it was still working.
- Need to get rid of that toggle, it doesn't do anything currently
- [x] `ListViewModel.<FetchItems>` crash
- Pretty confident that was fixed in https://github.com/zadjii-msft/PowerToys/pull/553
**Not blocking / improvements:**
- Show the shortcut through settings, as mentioned before, or create a button that would open CmdPalette settings.
- When PowerToys starts, CmdPalette is always shown if enabled. That's weird when just starting PowerToys/ logging in to the computer with PowerToys auto-start activated. I think this should at least be a setting.
- Needing to double press a result for it to do the default action seems quirky. If one is already selected, I think just pressing should be enough for it to do the action.
- This is currently a setting, though we're thinking of changing the setting even more: https://github.com/zadjii-msft/PowerToys/issues/392
- There's no URI extension. Was surprised when typing a URL that it only proposed a web search.
- [x] There's no System commands extension. Was expecting to be able to quickly restart the computer by typing restart but it wasn't there.
- This is in PR https://github.com/zadjii-msft/PowerToys/pull/452
---------
Co-authored-by: joadoumie <98557455+joadoumie@users.noreply.github.com>
Co-authored-by: Jordi Adoumie <jordiadoumie@microsoft.com>
Co-authored-by: Mike Griese <zadjii@gmail.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Michael Hawker <24302614+michael-hawker@users.noreply.github.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Kristen Schau <47155823+krschau@users.noreply.github.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Ethan Fang <ethanfang@microsoft.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
* Add variable support - initial version without UI
* Add variable in template filename support in New+
* Fix XAML style
* Addressed code review feedback
* first launch test
* add FancyZonesEditorHelper
* click monitor test and add FindByAccessibilityId function
* add ui initialization tests and add exit scope exe function
* add cleanup test function and change file init
* add TemplateLayoutsTest and add LayoutTypeEnumExtension.cs and Element class add sendkey function
* add UI Initialize Test
* add OpenEditLayoutDialog test case and add By type
* add LayoutHotkeysTest
* add EditLayoutTests and add element drag function
* add DeleteLayouTest and change cleanup to base class and change FindByAccessibilityId to By.AccessibilityId
* add DefaultLayoutsTest
* add CustomLayoutsTest
* add CreateLayoutTest
* add CopyLayoutTest
* add ApplyLayoutTest
* add some cleanup code
* fix spelling error
* fix DeleteLayoutWithHotkey test code bug
* change code
* fix restart exe some bug
* move first lunch text code to new file
* test write file error
* fix test code init fancyzone file error
* test maxsize button
* get current window size
* change layout count
* change test case work windows size
* change fancyzone editor window size
* change fancyzone editor window size and change element move rule
* change window size
---------
Co-authored-by: Zhaopeng Wang <zhaopengwang@microsoft.com>
* Add more UI-Test, refactor UITestAutomation
* Convert manual test-case to automation
UI-Tests:
Validating Empty-view is shown if no entries in the list.
Validating Empty-view is NOT shown if 1 or more entries in the list.
Validating Add-an-entry HyperlinkButton in Empty-view works correctly.
Validating Adding-entry Button works correctly.
Validating the Add button should be Disabled if more than 9 hosts in one entry.
Validating the Add button should be Enabled if less or equal 9 hosts in one entry.
Validating error message should be shown if not run as admin.
Validating Warning-Dialog will be shown if 'Show a warning at startup' toggle is On.
Validating Warning-Dialog will NOT be shown if 'Show a warning at startup' toggle is Off.
Validating click 'Quit' button in Warning-Dialog, the Hosts File Editor window would be closed.
Validating click 'Accept' button in Warning-Dialog, the Hosts File Editor window would NOT be closed.
---------
Co-authored-by: Jerry Xu <nxu@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use function to init static value
* Replace GetFileName with GetFileNameWithoutExtension
* Add exception catch for GetCallerInfo
* Remove sourceLineNumber
* Add kernal to allow list
* Remove unused commit
* Add new folder to place source generation context
* update
* fix build issue
* Move line number back
* Use fileName to replace full path
---------
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
* Add UITestAutomation framework
* add code comments
* Optimized code format
* Optimized code format
* Update commons and add keyboard manager ui test project
* Optimized code format
* test scope and fix fancyzone exe path
* Add readme
* Optimize helper functions and UI test method
* Fix spelling errors and restore module UI tests
* Restore Indent
* Update NOTICE.md
* Update comments to Session and Elements
* Update comments for Button and Window
* delete unnecessary code
* change FindElementByName to FindElmenet
* Update comments for ModuleConfigData
* Update readme and comments
* Remove extra comments
* change public property
* Optimize code readability
* add default Attach Function
* change attach function name
* Update comments to XML format
* Hide by internal functions
* Update readme
* Refine the framework
* Fix process start position and update readme
* Remove Enum PowerToysModuleWindow
* Update attach comments
* Update ModuleConfigData comments
---------
Co-authored-by: Zhaopeng Wang (from Dev Box) <zhaopengwang@microsoft.com>
Co-authored-by: Xiaofeng Wang (from Dev Box) <xiaofengwang@microsoft.com>
Co-authored-by: urnotdfs <709586527@qq.com>
[Build] compatibility with VS17.3 and later, for C++23 <expected> has been introduced in VS17.3.6, and std::expected has conflict/inconsistent with the makeshift (expected-lite)
* ZoomIt initial code dump
* Change vcxproj to normalize dependency versions
* Fix code quality to build
* Add to PowerToys solution
* Clean out C-style casts
* Fix some more analyzer errors
* Constexpr a function
* Disable some warnings locally that it seemed better not to touch
* Add ZoomIt module interface
* Add GPO
* Add Settings page with Enable button
* Output as PowerToys.ZoomIt.exe
* Extract ZoomIt Settings definition to its own header
* Make ZoomItModuleInterface build with ZoomItSettings too
* WinRT C++ interop for ZoomItSettings
* From Registry To PowerToys Json
* Properly fix const_cast analyzer error
* Initial Settings page loading from registry
* Zoom mode settings
* Save settings
* Add file picker and DemoType file support
* Remaining DemoType settings
* Have ZoomIt properly reloading Settings and exiting
* Remove context menu entries for Options and Exit
* ZoomIt simple Break Options
* Break advanced options
* Simple Record settings
* Record Microphone setting
* Fix break background file picker title
* Font setting
* Fix build issues after merge
* Add ZoomIt conflict warning to Settings
* Exclude Eula from spell checking
* Fix spellcheck errors
* Fix spell check for accelerated menu items
* Remove cursor files from spellcheck. They're binary
* Fix forbidden patterns
* Fix XAML style
* Fix C# analyzers
* Fix signing
* Also sign module interface dll
* Use actual ZoomIt icon
* Add OOBE page for ZoomIt
* ZoomIt image for Settings
* Flyout and Dashboard entries
* Fix type speed slider labels
* Correctly load default Font
* Correctly register shortcuts on ZoomIt startup first run
* Fix modifier keys not changing until restart
* Show MsgBox on taken shortcut
* Start PowerToys Settings
* Normalize ZoomIt file properties with rest of PowerToys
* Add attribution
* Add ZoomIt team to Community.md
* More copyright adjustments
* Fix spellcheck
* Fix MsgBox simultaneous instance to the front
* Add mention of capturevideosample code use
* Add ZoomIt to process lists
* Add telemetry
* Add logging
* React to gpo
* Normalize code to space identation
* Fix installer build
* Localize percent setting
* Fix XAML styling
* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
* Fix spellcheck
* One more spellcheck fix
* Integrate LiveDraw feature changes from upstream
* Fix name reuse in same scope
* Fix c-style casts
* Also register LIVEDRAW_HOTKEY
* Fix newLiveZoomToggleKey
* Update LiveZoom description in Settings to take LiveDraw into account
* Fix spellcheck
* Fix more spellcheck
* Fix Sysinternals capitalization
* Fix ARM64 Debug build
* Support Sysinternals build (#36873)
* Remove unneeded files
* Make build compatible with Sysinternals
* Separate PowerToys ZoomIt product name (#36887)
* Separate PowerToys ZoomIt product name
To help maintain the Sysinternals branding in the standalone version.
* Clarify branding-related includes
* Remove ZoomIt.sln
* Add foxmsft to spell-check names
* Add ZoomIt to README
* Add ZoomIt to GH templates
* Add ZoomIt events to DATA_AND_PRIVACY.md
* Remove publish_config.json
* Remove publish_config.json from vcxproj too
---------
Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
* Remove all VideoConferenceMute related code and files
* Clean up vcm driver registry keys
* Also remove the Webcam report tool
* Also clean out video conference on the installer
* Fix spellcheck
* Remove comment about video conf
* Update gpo files revision
* Revert removing the VCM policies
* Deprecate VCM GPO policy
* Change deprecation message to show first supported version
* Tweak supported strings in the adml
* Fix borders for windows in the Settings UI
* Fix HOSTS window
* Fix Advanced Paste
* Fix Environment Variables
* Fix File Locksmith
* Fix Peek, with a caveat
* Fix Registry Preview
* Remove unused imports
* Clean up imports in OobeShellPage
* Move OSVersionHelper from Common.UI up into ManagedCommon
This upgrades to [v0.0.24](https://github.com/check-spelling/check-spelling/releases/tag/v0.0.24).
A number of GitHub APIs are being turned off shortly, so you need to upgrade or various uncertain outcomes will occur.
There's a new accessibility forbidden pattern:
> Do not use `(click) here` links
> For more information, see:
> * https://www.w3.org/QA/Tips/noClickHere
> * https://webaim.org/techniques/hypertext/link_text
> * https://granicus.com/blog/why-click-here-links-are-bad/
> * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
```pl
(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
```
There are some minor bugs that I'm aware of and which I've fixed since this release, but I don't expect to make another release this month.
I've added a pair of patterns for includes and pragmas. My argument is that the **compiler** will _generally_ tell you if you've misspelled an include and the **linker** will _generally_ tell you if you misspell a lib.
- There's a caveat here: If your include case-insensitively matches the referenced file (but doesn't properly match it), then unless you either use a case-sensitive file system (as opposed to case-preserving) or beg clang to warn, you won't notice when you make this specific mistake -- this matters in that a couple of Windows headers (e.g. Unknwn.h) have particular case and repositories don't tend to consistently/properly write them.
* display ruler: supporting millimeter and other units
* Measurement Tool: UI Setting for an extra unit
* Update images
* spelling
* spelling
* suit code style
* Fix for code review
* remove weird file
* rename field
* [Workspaces] Add move functionality
* spell checker
* [Workspaces] Modify Arranger to move apps without launch
* moved ipc helper
* removed callback
* use LauncherStatus in WindowArranger
* wait for launching next app
* launch in a separate thread and protect by mutexes
* update app version in advance
* changed canceling launch
* increased waiting time
* Fix optional parameter load from json
* changed arranger waiting time
* additional waiting time for Outlook
* added app id
* ensure ids before launch
* set id in editor
* minor updates
* [Workspaces] Move: Get the nearest window when moving a window
* [Workspaces] convert optional boolean to enum to avoid json problems
* Handle case when the new Application Property "moveIfExists" does not exist
* Re-implementing app-window pairing for moving feature.
* spell checker
* XAML formatting
* Fixing bug: IPC message not arriving
* spell checker
* Removing app-level-setting for move app. Also fixed compiler errors due styling.
* Updating editor window layout
* Re-implementing window positioning UI elements
* XAML formatting
* Code review findings
* Code cleanup
* Code cleanup
* Code cleanup
* code cleanup
* Code cleanup
* Code cleanup
* fix Move attribute after launch and snapshot
* Extend WindowArranger with PWA functionality to detect different PWA apps. PwaHelper moved to the common library
* fix repeat counter in the editor
* Code optimization
* code cleanup, optimization
* fix double-processing window
---------
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>
* [Deps] Upgrade Framework Libraries to .NET 9 RC2
* [Common][Build] Update TFM to NET9
* [FileLocksmith][Build] Update TFM to NET9 in Publish Profile
* [PreviewPane][Build] Update TFM to NET9 in Publish Profile
* [PTRun][Build] Update TFM to NET9 in Publish Profile
* [Settings][Build] Update TFM to NET9 in Publish Profile
* [MouseWithoutBorders][Analyzers] Resolve WFO1000 by configuring Designer Serialization Visibility
* [Deps] Update Microsoft.CodeAnalysis.NetAnalyzers
* [Analyzers] Set CA1859,CA2263,CA2022 to be excluded from error
* [MouseWithoutBorders] Use System.Threading.Lock to lock instead of object instance
* [ColorPicker] Use System.Threading.Lock to lock instead of object instance
* [AdvancedPaste] Use System.Threading.Lock to lock instead of object instance
* [TextExtractor] Use System.Threading.Lock to lock instead of object instance
* [Hosts] Use System.Threading.Lock to lock instead of object instance
* [MouseJump] Use System.Threading.Lock to lock instead of object instance
* [PTRun] Use System.Threading.Lock to lock instead of object instance
* [Wox] Use System.Threading.Lock to lock instead of object instance
* [Peek] Use System.Threading.Lock to lock instead of object instance
* [PowerAccent] Use System.Threading.Lock to lock instead of object instance
* [Settings] Use System.Threading.Lock to lock instead of object instance
* [Deps] Update NOTICE.md
* [CI] Update .NET version step to target 9.0
* [Build] Attempt to add manual trigger for using Visual Studio Preview for building
* [Build] Fix variable typo
* [Build][Temporary] set to use preview builds
* [Build] Add missing parameters
* [Build][Temporary] directly hardcode preview image
* [Build][Temporary] Trying ImageOverride
* [Build] Revert hardcode and use ImageOverride
* [Build] Add env var for adding prerelease argument for vswhere
* [Build] Update VCToolsVersion script to use env var to optionally add prerelease version checking
* [Build] Remove unneeded parameter
* [Build] Re-add parameter in all the right places
* [CI][Build] Add NoWarn NU5104 when building with VS Preview
* [Deps] Update to stable .NET 9 packages
* [Deps] Update NOTICE.md
* Everything is WPF and WindowsForms now to fix .NET 9 dependency conflicts
* Ensure .NET 9 SDK for tests too
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
* Data diagnostics opt-in
* [c++] Drop DROP_PII flag
* Bump telemtry package to 2.0.2
* Drop DropPii from custom actions
* Cleanup
* Do not start manually C# EtwTrace. FZ engine exit event.
* ImageResizer, PowerRename, FileLocksmith prev handlers
* Revert C# handlers exe logging
* Revert "Revert C# handlers exe logging"
This reverts commit 4c75a3953b.
* Do not recreate EtwTrace
* consume package
* xaml formatting
* Fix deps.json audit
* Update telem package paths
* Address PR comments
* Fix AdvancedPaste close on PT close
* Override etl file name for explorer loaded dlls
Start/stop tracer when needed for explorer loaded dlls to prevent explorer overload
* Fix setting desc
* Fix missing events
* Add infobar to restart when enable data viewing
* Flush on timer every 30s
* [Settings] Update View Data diagnostic description text
[New+] Add tracer
* Show Restart info bar for both enable/disable data viewer
* Fix newplus
* Fix stuck on restart and terminate AdvPaste exe on destroy()
* [Installer] Add tracer
* Address PR comment
* Add missing tracers
* Exclude etw dir from BugReport
* Fix bad merge
* [Hosts] Proper exit on initial dialog
* [OOBE] Make Data diagnostic setting visible without scroll
* [OOBE] Add hiperlynk to open general settings
* Disable data view on disabling data diagnostics
* Don't disable View data button
* Fix disabling data viewing
* Add missing dot
* Revert formatting
* [AdvancedPaste] Additional actions, including Image to text
* Spellcheck issue
* [AdvancedPaste] Paste as file and many other improvements
* Fixed typo
* Fixed typo
* [AdvancedPaste] Improved paste window menu layout
* [AdvancedPaste] Improved settings window layout
* [AdvancedPaste] Removed AudioToText for the moment
* Code cleanup
* Minor fixes
* Changed log-line with potentially sensitive info
* Extra telemetry for AdvancedPaste
* Added 'Hotkey' suffix to AdvancedPaste_Settings telemetry event