JosefNemec / Playnite

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
https://playnite.link
MIT License
9.53k stars 505 forks source link

Global search rework #1413

Closed JosefNemec closed 2 years ago

JosefNemec commented 5 years ago

The idea is to have global search to work as general game and command search. Similarly to how VS Code's command palette works.

You open the search/command bar (for example with CTRL-F) and start typing. Playnite will list both games and commands that fit the search term and instead of filtering list of visible games it will allow user to immediately invoke the action (start the game, start game installation, invoke Playnite command etc.)

For example if you type "add" you would get list of all games with "add" string in them, but all commands like "Add Emulated Game", "Add Game Manually" etc.

Additional:

bluddy commented 5 years ago

It would also be nice to include all content from the library manager in the search. This would be an easier way, for example, to open up to a specific genre or a specific category than the Explorer Panel.

darklinkpower commented 5 years ago

This is a good idea. I moved to keyboard based launcher for my PC a long time a ago and they are pretty good. I think implementing a command based system too would help a lot since a general one can get clunky results. Similar to how keyboard launcher work by using a letter or command + space + search. A few ideas:

For game status: i Gamename (limits search to installed games and Searchs using "Gamename") u Gamename (limits search to unninstalled games and Searchs using "Gamename") f Gamename (limits search to favorited games and Searchs using "Gamename") h Gamename (limits search to hidden games and Searchs using "Gamename")

You could also limit the search by library or platform using commands epic Gamename Steam Gamename snes Gamename etc...

For Playnite commands: cmd Add cmd update etc...

JosefNemec commented 5 years ago

You should not have to write cmd, i, u or any other keywords. It should automatically list all options grouped based on what they are (commands, games etc.), with an option to choose priorities.

darklinkpower commented 5 years ago

Yes I get that, it's just that in my experience with keyboard launchers, they sometimes don't give you what you want and you have sometimes almost have to write the full word to give you what you want. Commands limit the search, are more precise, get you to the result you want faster and don't clutter the list with stuff you don't want, but it's fine to have a general search too, just was throwing an idea.

Flomkato commented 5 years ago

I am missing an exclude option in the filters. A optional keyword would come in handy. e.g.:

g(enre) Action && #t(ag) --gore

TRoehrman commented 4 years ago

Suggestion for associated feature: (When searching, press down to move to the list and hit enter to launch the game.) Lessens reliance on the mouse.

tynansdtm commented 4 years ago

I also want to suggest a feature. A new field for game details, specifically for search aliases. For example, searching GTA could find Grand Theft Auto games in my library. If there's only one, I wouldn't want to use the Series field. Maybe future extensions could automatically add acronyms to this search alias field.

Bluscream commented 4 years ago

^ 100% this, thanks for suggesting it

Bluscream commented 4 years ago

^ 100% this, thanks for suggesting it

felixkmh commented 3 years ago

I tried my hand at an extension (before I knew this issue existed) that checks most of the boxes in the initial proposal, so I thought I might as well share it here. Forum post for the extension: https://playnite.link/forum/thread-677.html . Problems it has of course, are that it has limited access to Playnite's commands outside of the ones bound to shortcuts in the main window and that adding commands from other extension requires these extension to reference an additional assembly.

JosefNemec commented 2 years ago

Done in devel.