Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PowerToys Run] Add everything plugin, port it to .NET Core 3.0 #4364

Closed
wants to merge 1 commit into from

Conversation

Xeiotos
Copy link

@Xeiotos Xeiotos commented Jun 17, 2020

Summary of the Pull Request

As referenced in #3278, #4318, #1791, and some duplicates, there is a want to restore the Everything integration to PowerToys Run

My main reasoning for wanting Everything is a little different, the Windows search API could be faster but is 'OK'. As these tools are meant for power users, my issue with the windows search in PT Run is that there's some places it just won't go. (e.g. System32, other system folders...)

Having Everything to scan the MFT as a fallback is a must, if you truely want to find 'everything' :).

References

#3278, #4318, #1791, #3303

PR Checklist

Detailed Description of the Pull Request / Additional comments

  • Ported the Everything plugin to .NET Core 3.0 and integrated it with PowerToys Run
  • Made the Context menu consistent with the Folder plugin

Validation Steps Performed

Ran the dev and release versions locally. Seems to function well enough. Not surprisingly, as it's ported straight from jjw24/Wox and that has been running on my system for ages (and this implementation is still basically Wox).

No conflicts with Microsoft.Plugin.Folder that I could see (oddly enough, I expected duplicated results and such...?).
The fastest result seems to win. Probably someone in the team who knows it off the top of their head could clarify why the search results don't clash, because I couldn't be bothered to check. Why look a gift horse in the mouth, right?

In my fooling around, it seems that Everything nicely fills in the gaps of non-indexed (or not yet indexed) files and locations.

To-Do

  • Could probably use a cleanup. The images folder is entirely useless now, as we use glyphs
  • I'll see if I can't get translations working.

@crutkas
Copy link
Member

crutkas commented Jun 17, 2020

This is a feature we're not ready to implement, the plugin system / settings needs to be better refined.

Install experiences for both plugin and everything need to be discussed. This is why we ask for things to be discussed prior to implementation

@Xeiotos
Copy link
Author

Xeiotos commented Jun 17, 2020

No problemo, I didn't expect it to be merged, hence the draft.

I mostly did it for fun, and to have it available to me as I much prefer PowerToys run's aesthetic but don't want to wait. Just thought I'd leave it here in case it would be useful to you or someone who's impatient like me.

Should've maybe added that to the PR :)

@crutkas
Copy link
Member

crutkas commented Jun 17, 2020

Would you like to help shake the cage on the plugin model?

To me:

  • Settings needs ability to turn on / off plugins
  • Settings needs to be able to 'install' plugins
  • settings needs to be able to remove plugins
  • A plugin must be self-contained
  • PT Run must be resilient on plugin failure

@Xeiotos
Copy link
Author

Xeiotos commented Jun 17, 2020

Absolutely agree on all of those. Turning on/of plugins seems espically nice. Don't like Folder? Turn on Everything/.../x for file searching.

Additionally, to me: a plugin's actions should be consistent with 'core' plugins, such as Folder.
E.g. for common actions, like 'Open in Explorer' make sure they always have the same behavior; look & feel, shortcuts, glyhps. This is probably something the Wox.Plugin (or Microsoft.Plugin...) library could provide.

Integrating plugin-specific settings in the overall settings would also be nice, for more complicated plugins that require it.

@crutkas
Copy link
Member

crutkas commented Jun 18, 2020

We're based off Wox but the issue is we want to be compatible with their plugin model but there are tweaks we want to do.

Agree on base set of contextual actions.

Settings for the plugin is a totally different set of issues :) That could be done a few ways, json schema and settings then render it.

I think we should open up a new issue and discuss. I know @jjw24 was interested in having a unified model between the wox based systems

@htcfreek
Copy link
Collaborator

htcfreek commented Jul 9, 2020

Would you like to help shake the cage on the plugin model?

To me:

  • Settings needs ability to turn on / off plugins
  • Settings needs to be able to 'install' plugins
  • settings needs to be able to remove plugins
  • A plugin must be self-contained
  • PT Run must be resilient on plugin failure

On additional thought:

  • Built-in plugins should not be removal. On this plugins we should only allow enable/disable actions.

@crutkas
Copy link
Member

crutkas commented Sep 30, 2020

Our goal with PowerToys Run was to build a quick way people can launch apps and files. In doing so, our interface is a plug-in based one to enable all the core scenarios we needed to meet this need. When the plugin system is ready for 3rd party plugins, this will anyone to build against the APIs for their feature. This work includes a robust settings UI that would allow someone to not load a plugin as well as set an action key.

The first main step of that is #5273.

We’re going to decline this PR as we do need additional work to enable this for everyone to have a great experience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants