microsoft / microsoft/PowerToys
[CmdPal] Support running unpackaged
- 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
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