diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml
index 52aaf3c27..645a0e14f 100644
--- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml
@@ -7,6 +7,7 @@
Press any key to close this window...
Do not close Command Prompt after command execution
Always run as administrator
+ Use Windows Terminal
Run as different user
Shell
Allows to execute system commands from Flow Launcher
@@ -15,4 +16,4 @@
Run As Administrator
Copy the command
Only show number of most used commands:
-
\ No newline at end of file
+
diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml
index 5ee2c43b4..f3ef0df0a 100644
--- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml
@@ -6,6 +6,7 @@
Press any key to close this window...
No cerrar Símbolo del Sistema tras ejecutar el comando
Siempre ejecutar como administrador
+ Ejecutar en la Terminal de Windows
Ejecutar como otro usuario
Shell
Allows to execute system commands from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml
index a3ee35ef8..ee3193b16 100644
--- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml
@@ -6,6 +6,7 @@
Pulsar cualquier tecla para cerrar esta ventana...
No cerrar el símbolo del sistema después de la ejecución del comando
Ejecutar siempre como administrador
+ Ejecutar en la Terminal de Windows
Ejecutar como usuario diferente
Terminal
Permite ejecutar comandos del sistema desde Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs
index fc8746e41..7f1f4bd4d 100644
--- a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs
+++ b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs
@@ -202,28 +202,31 @@ namespace Flow.Launcher.Plugin.Shell
{
case Shell.Cmd:
{
- info.FileName = "cmd.exe";
- info.Arguments = $"{(_settings.LeaveShellOpen ? "/k" : "/c")} {command} {(_settings.CloseShellAfterPress ? $"&& echo {context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")} && pause > nul /c" : "")}";
-
- //// Use info.Arguments instead of info.ArgumentList to enable users better control over the arguments they are writing.
- //// Previous code using ArgumentList, commands needed to be separated correctly:
- //// Incorrect:
- // info.ArgumentList.Add(_settings.LeaveShellOpen ? "/k" : "/c");
- // info.ArgumentList.Add(command); //<== info.ArgumentList.Add("mkdir \"c:\\test new\"");
-
- //// Correct version should be:
- //info.ArgumentList.Add(_settings.LeaveShellOpen ? "/k" : "/c");
- //info.ArgumentList.Add("mkdir");
- //info.ArgumentList.Add(@"c:\test new");
-
- //https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.processstartinfo.argumentlist?view=net-6.0#remarks
+ if (_settings.UseWindowsTerminal)
+ {
+ info.FileName = "wt.exe";
+ info.ArgumentList.Add("cmd");
+ }
+ else
+ {
+ info.FileName = "cmd.exe";
+ }
+ info.ArgumentList.Add($"{(_settings.LeaveShellOpen ? "/k" : "/c")} {command} {(_settings.CloseShellAfterPress ? $"&& echo {context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")} && pause > nul /c" : "")}");
break;
}
case Shell.Powershell:
{
- info.FileName = "powershell.exe";
+ if (_settings.UseWindowsTerminal)
+ {
+ info.FileName = "wt.exe";
+ info.ArgumentList.Add("powershell");
+ }
+ else
+ {
+ info.FileName = "powershell.exe";
+ }
if (_settings.LeaveShellOpen)
{
info.ArgumentList.Add("-NoExit");
@@ -232,21 +235,28 @@ namespace Flow.Launcher.Plugin.Shell
else
{
info.ArgumentList.Add("-Command");
- info.ArgumentList.Add($"{command}; {(_settings.CloseShellAfterPress ? $"Write-Host '{context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")}'; [System.Console]::ReadKey(); exit" : "")}");
+ info.ArgumentList.Add($"{command}\\; {(_settings.CloseShellAfterPress ? $"Write-Host '{context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")}'\\; [System.Console]::ReadKey()\\; exit" : "")}");
}
break;
}
case Shell.Pwsh:
{
- info.FileName = "pwsh.exe";
+ if (_settings.UseWindowsTerminal)
+ {
+ info.FileName = "wt.exe";
+ info.ArgumentList.Add("pwsh");
+ }
+ else
+ {
+ info.FileName = "pwsh.exe";
+ }
if (_settings.LeaveShellOpen)
{
info.ArgumentList.Add("-NoExit");
}
info.ArgumentList.Add("-Command");
- info.ArgumentList.Add($"{command}; {(_settings.CloseShellAfterPress ? $"Write-Host '{context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")}'; [System.Console]::ReadKey(); exit" : "")}");
-
+ info.ArgumentList.Add($"{command}\\; {(_settings.CloseShellAfterPress ? $"Write-Host '{context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")}'\\; [System.Console]::ReadKey()\\; exit" : "")}");
break;
}
@@ -279,33 +289,6 @@ 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 75cc56618..9ce2293a2 100644
--- a/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs
+++ b/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs
@@ -14,6 +14,8 @@ namespace Flow.Launcher.Plugin.Shell
public bool RunAsAdministrator { get; set; } = true;
+ public bool UseWindowsTerminal { get; set; } = false;
+
public bool ShowOnlyMostUsedCMDs { get; set; }
public int ShowOnlyMostUsedCMDsNumber { get; set; }
@@ -39,7 +41,5 @@ 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 7e35a872f..8a3b7f115 100644
--- a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml
@@ -16,6 +16,7 @@
+
+
CMD
PowerShell
Pwsh
- Terminal (Pwsh)
- Terminal (CMD)
RunCommand
-
+
+ {
+ _settings.UseWindowsTerminal = true;
+ };
+
+ UseWindowsTerminal.Unchecked += (o, e) =>
+ {
+ _settings.UseWindowsTerminal = false;
+ };
+
ReplaceWinR.Checked += (o, e) =>
{
_settings.ReplaceWinR = true;
@@ -91,8 +103,6 @@ namespace Flow.Launcher.Plugin.Shell
Shell.Cmd => 0,
Shell.Powershell => 1,
Shell.Pwsh => 2,
- Shell.TerminalPWSH => 3,
- Shell.TerminalCMD => 4,
_ => ShellComboBox.Items.Count - 1
};
@@ -103,8 +113,6 @@ 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;