From a0fd2d1517b9e9b26cb39548ef5f62b521374a9c Mon Sep 17 00:00:00 2001
From: Jessica Dene Earley-Cha <12740421+chatasweetie@users.noreply.github.com>
Date: Tue, 22 Jul 2025 14:55:19 -0700
Subject: [PATCH] More instructions to build CmdPal (#40644)
## Summary of the Pull Request
Added more instructions to first time building command palette
## 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
- [X ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx
## Detailed Description of the Pull Request / Additional comments
## Validation Steps Performed
---
src/modules/cmdpal/README.md | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/modules/cmdpal/README.md b/src/modules/cmdpal/README.md
index b9e0a42f61..65d4bc3bb4 100644
--- a/src/modules/cmdpal/README.md
+++ b/src/modules/cmdpal/README.md
@@ -2,16 +2,15 @@
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 Win+Alt+Space.
-
+By default, CmdPal is bound to Win+Alt+Space.
## Creating an extension
-The fastest way to get started is just to run the "Create extension" command in the palette itself. That'll prompt you for a project name and a Display Name, and where you want to place your project. Then just open the `sln` it produces. You should be ready to go 🙂.
+The fastest way to get started is just to run the "Create extension" command in the palette itself. That'll prompt you for a project name and a Display Name, and where you want to place your project. Then just open the `sln` it produces. You should be ready to go 🙂.
The official API documentation can be found [on this docs site](https://learn.microsoft.com/windows/powertoys/command-palette/extensibility-overview).
-We've also got samples, so that you can see how the APIs in-action.
+We've also got samples, so that you can see how the APIs in-action.
* We've got [generic samples] in the repo
* We've got [real samples] in the repo too
@@ -22,14 +21,22 @@ We've also got samples, so that you can see how the APIs in-action.
## Building CmdPal
-The Command Palette is included as a part of PowerToys. To get started building, open up the root `PowerToys.sln`, to get started building.
+### Install & Build PowerToys
+
+1. Follow the install and build instructions for [PowerToys](https://github.com/microsoft/PowerToys/tree/main/doc/devdocs#compiling-powertoys)
+
+### Load & Build
+
+1. In Visual Studio, in the Solution Explorer Pane, confirm that all of the files/projects in `src\modules\CommandPalette` and `src\common\CalculatorEngineCommon` do not have `(unloaded)` on the right side
+ 1. If any file has `(unloaded)`, right click on file and select `Reload Project`
+1. Now you can right click on one of the project below to `Build` and then `Deploy`:
Projects of interest are:
* `Microsoft.CmdPal.UI`: This is the main project for CmdPal. Build and run this to get the CmdPal.
* `Microsoft.CommandPalette.Extensions`: This is the official extension interface.
* This is designed to be language-agnostic. Any programming language which supports implementing WinRT interfaces should be able to implement the WinRT interface.
* `Microsoft.CommandPalette.Extensions.Toolkit`: This is a C# helper library for creating extensions. This makes writing extensions easier.
-* Everything under "SampleExtensions": These are example plugins to demo how to author extensions. Deploy any number of these, to get a feel for how the extension API works.
+* Everything under "SampleExtensions": These are example plugins to demo how to author extensions. Deploy any number of these, to get a feel for how the extension API works.
### Footnotes and other links