diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 103d523a7..30c117378 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -348,7 +348,7 @@
Back / Context Menu
Item Navigation
Open Context Menu
- Open A File/Folder's Containing Folder
+ Open Containing Folder
Run as Admin / Open Folder in Default File Manager
Query History
Back to Result in Context Menu
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
index 8ba3ba800..af7cbe442 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
@@ -14,6 +14,7 @@ using Flow.Launcher.Plugin.SharedModels;
using System.Threading.Channels;
using System.Xml;
using Windows.ApplicationModel.Core;
+using System.Windows.Input;
namespace Flow.Launcher.Plugin.Program.Programs
{
@@ -422,12 +423,16 @@ namespace Flow.Launcher.Plugin.Program.Programs
ContextData = this,
Action = e =>
{
- var elevated = (
- e.SpecialKeyState.CtrlPressed &&
- e.SpecialKeyState.ShiftPressed &&
- !e.SpecialKeyState.AltPressed &&
- !e.SpecialKeyState.WinPressed
- );
+ // Ctrl + Enter to open containing folder
+ bool openFolder = e.SpecialKeyState.ToModifierKeys() == ModifierKeys.Control;
+ if (openFolder)
+ {
+ Main.Context.API.OpenDirectory(Location);
+ return true;
+ }
+
+ // Ctrl + Shift + Enter to run elevated
+ bool elevated = e.SpecialKeyState.ToModifierKeys() == (ModifierKeys.Control | ModifierKeys.Shift);
bool shouldRunElevated = elevated && CanRunElevated;
_ = Task.Run(() => Launch(shouldRunElevated)).ConfigureAwait(false);
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs
index 4afedb9e4..5cca2534b 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs
@@ -16,6 +16,7 @@ using System.Diagnostics.CodeAnalysis;
using System.Threading.Channels;
using Flow.Launcher.Plugin.Program.Views.Models;
using IniParser;
+using System.Windows.Input;
namespace Flow.Launcher.Plugin.Program.Programs
{
@@ -169,12 +170,16 @@ namespace Flow.Launcher.Plugin.Program.Programs
ContextData = this,
Action = c =>
{
- var runAsAdmin = (
- c.SpecialKeyState.CtrlPressed &&
- c.SpecialKeyState.ShiftPressed &&
- !c.SpecialKeyState.AltPressed &&
- !c.SpecialKeyState.WinPressed
- );
+ // Ctrl + Enter to open containing folder
+ bool openFolder = c.SpecialKeyState.ToModifierKeys() == ModifierKeys.Control;
+ if (openFolder)
+ {
+ Main.Context.API.OpenDirectory(ParentDirectory, FullPath);
+ return true;
+ }
+
+ // Ctrl + Shift + Enter to run as admin
+ bool runAsAdmin = c.SpecialKeyState.ToModifierKeys() == (ModifierKeys.Control | ModifierKeys.Shift);
var info = new ProcessStartInfo
{