project-gauntlet / gauntlet

Raycast-inspired open-source cross-platform application launcher with React-based plugins
Mozilla Public License 2.0
125 stars 2 forks source link

Windows Support #9

Open Exidex opened 6 months ago

Exidex commented 6 months ago
Exidex commented 3 weeks ago

Gave an attempt at implementing Application plugin for Windows, unfortunately couldn't make it work. Application plugin does 2 things: collects list of applications and launches one of those when use selects the item. I was able to successfully collect applications via SHGetKnownFolderItem on FOLDERID_AppsFolder and iterating over children of that folder where each child is an application. This does work but unfortunately I couldn't find a way to launch an application that would work for different types of those applications.

Here is a list of different types of PIDLs that I have found in AppsFolder:

Application needs to be able to launch each of those, either in generic way or by handling each of those separately, but then arises the challenge of being able to reliably tell which of those types the PIDL is.

See https://github.com/project-gauntlet/gauntlet/commit/a60fc0f34b44055652dd85b168ea04a50d912f49 for code