Cmdpal extension: Powertoys extension for cmdpal#44006
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/FancyZonesMonitorIdentifier.cs
Fixed
Show fixed
Hide fixed
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/FancyZonesMonitorIdentifier.cs
Fixed
Show fixed
Hide fixed
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/FancyZonesMonitorIdentifier.cs
Fixed
Show fixed
Hide fixed
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/FancyZonesMonitorIdentifier.cs
Fixed
Show fixed
Hide fixed
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/FancyZonesMonitorIdentifier.cs
Fixed
Show fixed
Hide fixed
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/FancyZonesMonitorIdentifier.cs
Fixed
Show fixed
Hide fixed
This comment has been minimized.
This comment has been minimized.
| return null; | ||
| } | ||
|
|
||
| private static string GetPathFromUserRegistration(RegistryKey baseKey) |
There was a problem hiding this comment.
Useless, delete this
| <MakeDir Directories="$(TargetDir)DSCModules" /> | ||
| <Exec Command="dotnet "$(TargetPath)" manifest --resource settings --outputDir "$(TargetDir)DSCModules"" /> | ||
|
|
||
| <PropertyGroup> |
There was a problem hiding this comment.
Remove, and restore to previous code
| Task.Run(async () => await NamedPipeProcessor.ProcessNamedPipeAsync(pipeName, connectTimeout: TimeSpan.FromSeconds(10), OnMessage, CancellationToken.None)); | ||
| } | ||
|
|
||
| private void StartShowUiEventListener() |
There was a problem hiding this comment.
Looks like this will not work when we not explicitly start advanced paste UI, what we expect should be exactly the same with the hotkey behaviour
| commands.Add(new CommandContextItem(openCommand)); | ||
| } | ||
|
|
||
| commands.Add(new CommandContextItem(new OpenWithCommand(fullPath))); |
| </ClCompile> | ||
| <Link> | ||
| <AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(CoreLibraryDependencies);%(AdditionalDependencies);advapi32.lib</AdditionalDependencies> | ||
| <AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CoreLibraryDependencies);%(AdditionalDependencies);advapi32.lib;Shlwapi.lib</AdditionalDependencies> |
| @@ -0,0 +1,7 @@ | |||
| // ZoomIt mode ids (map to WM_HOTKEY wParam values) | |||
There was a problem hiding this comment.
Really need? Wrap in powertoys
| private void NavigateCmdPalSettings_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e) | ||
| { | ||
| SettingsDeepLink.OpenSettings(SettingsDeepLink.SettingsWindow.CmdPal, true); | ||
| SettingsDeepLink.OpenSettings(SettingsDeepLink.SettingsWindow.CmdPal); |
There was a problem hiding this comment.
Make sure run extension still work
| * Version files and manifests modified during build are reverted. | ||
| * Untracked generated files are cleaned up. | ||
| - Use the -Clean parameter to clean build outputs (bin/obj) and ignored files. | ||
| - If the working tree is not clean, the script will prompt before continuing (use -Force to skip the prompt). |
There was a problem hiding this comment.
Better split a PR for this
| <!-- Including MessagePack to force version, since it's used by StreamJsonRpc but contains vulnerabilities. After StreamJsonRpc updates the version of MessagePack, we can upgrade StreamJsonRpc instead. --> | ||
| <PackageVersion Include="MessagePack" Version="3.1.3" /> | ||
| <PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" /> | ||
| <PackageVersion Include="Microsoft.CommandPalette.Extensions" Version="0.5.250829002" /> |
There was a problem hiding this comment.
Upgrade to see if it still work
There was a problem hiding this comment.
Pull request overview
This PR adds a PowerToys extension for the Windows Command Palette (CmdPal), enabling PowerToys functionality to be accessed directly through CmdPal. The extension uses sparse app deployment instead of requiring a separate MSIX package, and the build installer script has been updated to remove automatic git workspace management.
Key changes:
- New CmdPal extension project providing PowerToys commands and settings access
- Build script improvements removing git stash/cleanup logic in favor of user prompts
- Module service infrastructure for Awake, ColorPicker, and Workspaces
- FancyZones integration with layout management and monitor identification
Reviewed changes
Copilot reviewed 185 out of 194 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tools/build/build-installer.ps1 | Removed git stash/cleanup automation; added Force parameter and working tree check prompt |
| src/settings-ui/Settings.UI/SettingsXAML/Views/PowerLauncherPage.xaml.cs | Removed second boolean parameter from OpenSettings call |
| src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeWhatsNew.xaml.cs | Removed second boolean parameter from OpenSettings call |
| src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs | Removed second boolean parameter from OpenSettings call |
| src/settings-ui/Settings.UI/PowerToys.Settings.csproj | Added trailing newline |
| src/settings-ui/Settings.UI.XamlIndexBuilder/Settings.UI.XamlIndexBuilder.csproj | Added trailing newline |
| src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/Utility.cs | Removed second boolean parameter from OpenSettings call |
| src/modules/imageresizer/ui/ViewModels/InputViewModel.cs | Removed second boolean parameter from OpenSettings call |
| src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs | Removed second boolean parameter from OpenSettings call |
| src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs | Removed blank line |
| src/modules/fancyzones/FancyZonesEditorCommon/Data/FancyZonesJsonContext.cs | Added JSON serialization context for AOT compatibility |
| src/modules/fancyzones/FancyZonesEditorCommon/Data/EditorData`1.cs | Refactored to use FancyZonesJsonContext for AOT-compatible serialization |
| src/modules/fancyzones/FancyZonesEditorCommon/Data/CustomLayouts.cs | Updated to use FancyZonesJsonContext type info |
| src/modules/fancyzones/FancyZonesEditor.UITests/Utils/AppZoneHistory.cs | Changed to static JsonOptions property |
| src/modules/fancyzones/FancyZones.FuzzTests/FancyZones.FuzzTests.csproj | Added additional FancyZones data file links |
| src/modules/colorPicker/ColorPickerUI/Helpers/AppStateHandler.cs | Removed second boolean parameter from OpenSettings call |
| src/modules/colorPicker/ColorPicker.ModuleServices/* | New ColorPicker module service files |
| src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/* | New CmdPal extension implementation |
| src/modules/cmdpal/Microsoft.CmdPal.UI/Properties/PublishProfiles/* | Added trailing newlines |
| src/modules/awake/Awake.ModuleServices/* | New Awake module service files |
| src/modules/ZoomIt/ZoomItModuleInterface/dllmain.cpp | Added shared_constants.h include |
| src/modules/ZoomIt/ZoomIt/ZoomIt.vcxproj | Added trailing newline |
| src/modules/Workspaces/WorkspacesLauncherUI/* | Refactored to use shared WorkspacesEditorData base class |
| NOTICE.md | Added Shmuelie.WinRTServer to third-party notices |
Summary of the Pull Request
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
Installer built, and every command works as expected,
Now use sparse app deployment, so we don't need an extra msix