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