-
Notifications
You must be signed in to change notification settings - Fork 6.6k
PowerToys Run Plugin spec
Clint Rutkas edited this page Jan 28, 2021
·
3 revisions
- What is it: Settings UX for configuration PowerToys Run plugins
- Authors: Clint Rutkas
- Spec Status: Draft
- GitHub issue: #5273
PowerToys Run's is powered by plugins. Each plugin has a set of behaviors that are currently hardcoded but could be overridden or disabled. This provides the configuration an end user wants. Making it work as they want it to.
- Disable a built-in plugin
- Change the weight of a plugin
- Change the action keyword of a plugin
Lots of instances inside the settings dialog for how something like this could be enacted.
Here the options are both inline and allow for an on/off.
- Ability to customize action words
- Ability to disable a plugin
-
Ability to add a weight multiplier to increase weighting for individual plugins.- We fixed a bug that reintroduces weighting based on usage and want to validate based on user feedback if this is needed.
- Ability to launch a single plugin via key shortcut
- Have configurations happen without restarting PT Run
- Settings outside what is listed above
- 3rd party plugin spec
- Disable a built-in plugin
- Change the action keyword of a plugin
- Trigger PT Run
- New configuration respected
Term | Definition |
---|---|
Action word | This is the concept inside PowerToys Run where you can directly invoke only that plugin(s) that use that. An example is doing =2+2 would only call the calculator plugin. The UX Screenshot is calling this "Direct activation" below |
Weight | A multiplier to increase the result value |
PT Run / Run | Shorthand for PowerToys Run launcher |
Most plugin information comes from PowerToys\modules\launcher\Plugins\PLUGIN_FOLDER\plugin.json
where PLUGIN_FOLDER
is the name of the plugin.
# | Definition | Priority |
---|---|---|
1 | List of plugins with toggle On / Off | P0 |
2 | When clicked, inline options are displayed | P0 |
3 |
|
P0 |
4 | When new settings are applied, PT Run does not have to restart | P2 |
5 | When an error state is hit, the warning will be displayed to user below title for plugin | P0 |
6 | Detect error state when there is no direct activation, no global result and no action word | P0 |
7 | Disable file drive warning checkbox if Search plugin is disabled | P1 |
8 | Do not have warning appear if Disable file drive warning is enabled and the Search plugin is disabled | P1 |
9 | List author of plugin (from json file) | P1 |
# | Definition | Priority |
---|---|---|
1 | Checkbox to "include results in default list" (adding in * to action keyword) | P0 |
2 | Text field for additional action word. | P0 |
3 | Action word do not have to be unique (This already is supported). | P0 |
4 | Text field for additional action word can be blank. | P0 |
5 | Do not allow action word of * as under the hood this is the global keyword | P1 |
6 |
|
P1 |
7 | Direct shortcut to execute a single plugin | P2 |
8 | No plugin can have the same direct shortcut | P2 |
9 | Description of plugin is shown when expanded | P1 |
# | Definition | Priority |
---|---|---|
1 | Tabbing between options once selected are in order | P0 |
Quick mock of what it could look like in a first attempt.
Right now with Wox, each plugin defines their action keywords in a json file. We could extend this and include the hotkey there.
# | Requirement | Implication | Pri |
---|---|---|---|
1 | The enable / disable state | Validate if a plugin should be off by default based on population | P0 |
2 | Action word for plug | Validate if we should shift the Action word | P1 |
3 | Include in global result list for plug | Validate if we should shift the Action word from the global list | P1 |
4 | Action word for plug | Validate if we should shift the default Action word | P1 |
5 | Is a direct shortcut used for a plugin | Validate if we should make certain plugins have direct shortcuts. If so, we should add in one more bit of telemetry, what shortcut was used to see if there are commonalities | P1 |
- Per-plugin setting
- This would move the setting for ignoring the file drive warning into Search plugin section
- Adding in weight per plugin
- Adding in a 'reset' ability
- 3rd party plugins