Skip to content

Cmdpal extension: Powertoys extension for cmdpal#44006

Merged
vanzue merged 151 commits intomainfrom
dev/vanzue/cmdpal-pt
Dec 23, 2025
Merged

Cmdpal extension: Powertoys extension for cmdpal#44006
vanzue merged 151 commits intomainfrom
dev/vanzue/cmdpal-pt

Conversation

@vanzue
Copy link
Copy Markdown
Contributor

@vanzue vanzue commented Dec 1, 2025

Summary of the Pull Request

PR Checklist

  • Closes: #xxx
  • Communication: I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected
  • Tests: Added/updated and all pass
  • Localization: All end-user-facing strings can be localized
  • Dev docs: Added/updated
  • New binaries: Added on the required places
  • Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

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

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

return null;
}

private static string GetPathFromUserRegistration(RegistryKey baseKey)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Useless, delete this

<MakeDir Directories="$(TargetDir)DSCModules" />
<Exec Command="dotnet &quot;$(TargetPath)&quot; manifest --resource settings --outputDir &quot;$(TargetDir)DSCModules&quot;" />

<PropertyGroup>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove, and restore to previous code

Task.Run(async () => await NamedPipeProcessor.ProcessNamedPipeAsync(pipeName, connectTimeout: TimeSpan.FromSeconds(10), OnMessage, CancellationToken.None));
}

private void StartShowUiEventListener()
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)));
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restore this

</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>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

@@ -0,0 +1,7 @@
// ZoomIt mode ids (map to WM_HOTKEY wParam values)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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" />
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upgrade to see if it still work

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@vanzue vanzue merged commit d87dde1 into main Dec 23, 2025
15 checks passed
@vanzue vanzue deleted the dev/vanzue/cmdpal-pt branch December 23, 2025 13:08
@yeelam-gordon yeelam-gordon added this to the PowerToys 0.97 milestone Jan 12, 2026
@yeelam-gordon yeelam-gordon requested a review from Copilot January 12, 2026 10:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 197 out of 206 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Product-Command Palette Refers to the Command Palette utility

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants