microsoft / microsoft/PowerToys

[CmdPal] Support running unpackaged

Open
#44,901 12 comments 7 reactions 0 assignees View on GitHub
CmdPal-Feature Parity Product-Command Palette
Dominant language
C
Stars
139k
Forks
8.6k
PR merge metrics
PR metrics pending

Description

### Description of the new feature / enhancement

CmdPal should be able to run unpackaged. Currently it's bundled as an MSIX, which is easy. But just like Terminal, there's no reason it shouldn't be able to run unpackaged.

### Scenario when this would be used?

When people can't sideload apps.

### Implementation notes

(comment pilfered from https://github.com/microsoft/PowerToys/issues/41696#issuecomment-3571632362)

I just took the `.msix` for cmdpal, renamed to zip, extracted, and ran the `.exe` out of there, and _it just works_. And it loads extensions too, it would seem.

We would need to
* [x] do the Terminal thing to get the Version straight from the exe, instead of the package identity. But otherwise stuff Just Worked.
* I think this was fixed in #44199
* [ ] Double check settings paths are predictable.
* [x] Double check that logs go in an expected place
* [x] Make sure that XAML resources that we have specified relative to `ms-appx` URI's load right
* namely, those from #43505
* [ ] ...

I BET, we could even do away with the installed version entirely. I bet we could just always do the unpackaged version. That would probably also solve #39476

### Threads that might all be this

* #44860
* #42938
* #42881
* #39476
* #45368

### Mildly related PR

#44886

Contributor guide

Open the contributing guide

Research direction

Begin with CmdPal's packaging and startup behavior, then check settings paths, log location, and ms-appx XAML resources in an unpackaged run. Done means the executable runs without MSIX, extensions load, and those paths and resources behave as expected; resolve the remaining checklist items and related threads before coding.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.