From f708ad9ffdb823282e522b31608289e68beefcd2 Mon Sep 17 00:00:00 2001 From: Azakidev Date: Tue, 4 Feb 2025 23:18:21 +0100 Subject: [PATCH] Add Windows Terminal to Shell Plugin --- Plugins/Flow.Launcher.Plugin.Shell/Main.cs | 27 +++++++++++++++++++ .../Flow.Launcher.Plugin.Shell/Settings.cs | 2 ++ .../ShellSetting.xaml | 4 ++- .../ShellSetting.xaml.cs | 4 +++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs index 921c6bc21..a192b8900 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs @@ -279,6 +279,33 @@ namespace Flow.Launcher.Plugin.Shell break; } + case Shell.TerminalPWSH: + { + info.filename = "wt.exe" + info.ArgumentList.Add("pwsh"); + if (_settings.LeaveShellOpen) + { + info.ArgumentList.Add("-NoExit"); + } + info.ArgumentList.Add("-Command"); + info.ArgumentList.Add(command); + break; + } + case Shell.TerminalCMD: + { + info.filename = "wt.exe" + info.ArgumentList.Add("cmd"); + if (_settings.LeaveShellOpen) + { + info.ArgumentList.Add("/k"); + } + else + { + info.ArgumentList.Add("/c"); + } + info.ArgumentList.Add(command); + break; + } default: throw new NotImplementedException(); } diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs b/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs index 6f47d5d17..75cc56618 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs @@ -39,5 +39,7 @@ namespace Flow.Launcher.Plugin.Shell Powershell = 1, RunCommand = 2, Pwsh = 3, + TerminalPWSH = 4, + TerminalCMD = 5, } } diff --git a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml index 2f02ef723..22f4ff22d 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml @@ -43,12 +43,14 @@ Content="{DynamicResource flowlauncher_plugin_cmd_always_run_as_administrator}" /> CMD PowerShell Pwsh + Terminal (Pwsh) + Terminal (CMD) RunCommand diff --git a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs index 24365f2aa..e981f8b74 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs @@ -91,6 +91,8 @@ namespace Flow.Launcher.Plugin.Shell Shell.Cmd => 0, Shell.Powershell => 1, Shell.Pwsh => 2, + Shell.TerminalPWSH = 3, + Shell.TerminalCMD = 4, _ => ShellComboBox.Items.Count - 1 }; @@ -101,6 +103,8 @@ namespace Flow.Launcher.Plugin.Shell 0 => Shell.Cmd, 1 => Shell.Powershell, 2 => Shell.Pwsh, + 3 => Shell.TerminalPWSH, + 4 => Shell.TerminalCMD, _ => Shell.RunCommand }; LeaveShellOpen.IsEnabled = _settings.Shell != Shell.RunCommand;