diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml
index 3df1f468d8c..1c0077db252 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml
@@ -4,6 +4,9 @@
Activate {0} plugin action keyword
+ Settings: {0}
+ Open the settings page for the {0} plugin
+
Plugin Indicator
Provides plugins action words suggestions
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs
index 631d3daee49..a0c6371f0ba 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs
@@ -3,7 +3,7 @@
namespace Flow.Launcher.Plugin.PluginIndicator
{
- public class Main : IPlugin, IPluginI18n, IHomeQuery
+ public class Main : IPlugin, IPluginI18n, IHomeQuery, IContextMenu
{
internal static PluginInitContext Context { get; private set; }
@@ -38,6 +38,7 @@ from pluginPair in nonGlobalPlugins[keyword]
SubTitle = Localize.flowlauncher_plugin_pluginindicator_result_subtitle(plugin.Name),
Score = score,
IcoPath = plugin.IcoPath,
+ ContextData = plugin,
AutoCompleteText = $"{keyword}{Plugin.Query.TermSeparator}",
Action = c =>
{
@@ -48,6 +49,23 @@ from pluginPair in nonGlobalPlugins[keyword]
return [.. results];
}
+ public List LoadContextMenus(Result selectedResult)
+ {
+ if (selectedResult.ContextData is not PluginMetadata plugin)
+ return [];
+
+ return new List
+ {
+ new Result
+ {
+ Title = Localize.flowlauncher_plugin_pluginindicator_plugin_settings_title(plugin.Name),
+ SubTitle = Localize.flowlauncher_plugin_pluginindicator_plugin_settings_subtitle(plugin.Name),
+ IcoPath = plugin.IcoPath, // icon of indicated plugin
+ Action = _ => Context.API.OpenPluginSettingsWindow(plugin.ID)
+ }
+ };
+ }
+
private static Dictionary> GetNonGlobalPlugins()
{
var nonGlobalPlugins = new Dictionary>();