From 4c5eae895b83c87ed56555765cc798d4624702a8 Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Wed, 1 Nov 2023 17:35:00 +0100 Subject: [PATCH 1/9] Implement CloseShellAfterPress (no logic) Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Main.cs | 12 ++++++++++-- Plugins/Flow.Launcher.Plugin.Shell/Settings.cs | 2 ++ Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml | 6 ++++++ .../Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs | 12 ++++++++++++ 6 files changed, 32 insertions(+), 2 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml index 3fa7c64fa..8aae3a5fd 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml @@ -2,6 +2,7 @@ Ersetzt Win+R + Schließe die Kommandozeilte nachdem eine Taste gedrückt wurde Schließe die Kommandozeilte nicht nachdem der Befehl ausgeführt wurde Immer als Administrator ausführen Als anderer Benutzer ausführen diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml index 9a692cac3..88fa264d0 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml @@ -3,6 +3,7 @@ xmlns:system="clr-namespace:System;assembly=mscorlib"> Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs index 66917d594..b963302db 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs @@ -187,7 +187,7 @@ namespace Flow.Launcher.Plugin.Shell return history.ToList(); } - private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdministrator = false) + private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdministrator = false) //TODO: implement logic for CloseCMDAfterPress { command = command.Trim(); command = Environment.ExpandEnvironmentVariables(command); @@ -203,7 +203,7 @@ namespace Flow.Launcher.Plugin.Shell case Shell.Cmd: { info.FileName = "cmd.exe"; - info.Arguments = $"{(_settings.LeaveShellOpen ? "/k" : "/c")} {command}"; + info.Arguments = $"{(_settings.LeaveShellOpen ? "/k" : "/c")} {command} {(_settings.CloseShellAfterPress ? "& pause" : "")}"; //// 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: @@ -233,6 +233,10 @@ namespace Flow.Launcher.Plugin.Shell { info.ArgumentList.Add("-Command"); info.ArgumentList.Add(command); + if (_settings.CloseShellAfterPress) + { + info.ArgumentList.Add("; pause"); + } } break; } @@ -246,6 +250,10 @@ namespace Flow.Launcher.Plugin.Shell } info.ArgumentList.Add("-Command"); info.ArgumentList.Add(command); + if (_settings.CloseShellAfterPress) + { + info.ArgumentList.Add("; pause"); + } break; } diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs b/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs index 47b46055c..6f47d5d17 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/Settings.cs @@ -7,6 +7,8 @@ namespace Flow.Launcher.Plugin.Shell public Shell Shell { get; set; } = Shell.Cmd; public bool ReplaceWinR { get; set; } = false; + + public bool CloseShellAfterPress { get; set; } = false; public bool LeaveShellOpen { get; set; } diff --git a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml index 240bda953..960272f0f 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml @@ -22,6 +22,12 @@ Margin="10,10,5,5" HorizontalAlignment="Left" Content="{DynamicResource flowlauncher_plugin_cmd_relace_winr}" /> + + { + _settings.CloseShellAfterPress = true; + }; + + CloseShellAfterPress.Unchecked += (o, e) => + { + _settings.CloseShellAfterPress = false; + }; + LeaveShellOpen.Checked += (o, e) => { _settings.LeaveShellOpen = true; From 06211a181e9e7d2760456c485b1a0c45cde20a11 Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Sun, 5 Nov 2023 14:30:12 +0100 Subject: [PATCH 2/9] Add more language support for new shell option Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml | 1 + 21 files changed, 21 insertions(+) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml index 2c764d845..30d15ec76 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml @@ -2,6 +2,7 @@ Nahradit Win+R + Po stisknutí libovolné klávesy zavřít příkazový řádek Po dokončení příkazu příkazový řádek nezavírejte Vždy spustit jako správce Spustit jako jiný uživatel diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml index 284a2a0e6..122198357 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml @@ -2,6 +2,7 @@ Reemplazar Win+R + Cerrar Símbolo del sistema después de pulsar cualquier tecla No cerrar Símbolo del Sistema tras ejecutar el comando Siempre ejecutar como administrador Ejecutar como otro usuario diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml index 8bf1a2c11..ff01f30d6 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml @@ -2,6 +2,7 @@ Reemplazar Win+R + Cerrar Símbolo del sistema después de pulsar cualquier tecla No cerrar el símbolo del sistema después de la ejecución del comando Ejecutar siempre como administrador Ejecutar como usuario diferente diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml index d08efb9b8..438f8cc8f 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml @@ -2,6 +2,7 @@ Remplacer Win+R + Fermer l'invite de commande après avoir appuyé sur n'importe quelle touche Ne pas fermer l'invite de commandes après l'exécution de la commande Toujours exécuter en tant qu'administrateur Exécuter en tant qu'utilisateur différent diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml index de40b0c47..fa7df2c07 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml @@ -2,6 +2,7 @@ Sostituisci Win+R + Chiudere il prompt dei comandi dopo aver premuto qualsiasi tasto Non chiudere il prompt dei comandi dopo l'esecuzione dei comandi Esegui sempre come amministratore Esegui come utente differente diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml index 014a46dfc..9531fe832 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml @@ -2,6 +2,7 @@ Win+R 단축키 대체 + 아무 키나 누른 후 명령 프롬프트 닫기 명령 실행 후 명령 프롬프트를 닫지 않음 항상 관리자 권한으로 실행 다른 유저 권한으로 실행 diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml index c851be93b..d83386d2d 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml @@ -2,6 +2,7 @@ Zastąp Win+R + Zamykanie wiersza polecenia po naciśnięciu dowolnego klawisza Nie zamykaj wiersza poleceń po wykonaniu polecenia Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml index 6a0a3c8fd..ef0223dd9 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml @@ -2,6 +2,7 @@ Substituir Win+R + Fechar o Prompt de Comando após pressionar qualquer tecla Não feche o Prompt de Comando após a execução do comando Sempre executar como administrador Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml index 33d7f35a6..f91fcd888 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml @@ -2,6 +2,7 @@ Substituir Win+R + Fechar linha de comandos depois de pressionar qualquer tecla Não fechar linha de comandos depois de executar o comando Executar sempre como administrador Executar com outro utilizador diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml index 0b76303df..76221a0ef 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml @@ -2,6 +2,7 @@ Nahradiť Win+R + Zatvoriť príkazový riadok po stlačení ľubovoľnej klávesy Nezatvárať príkazový riadok po dokončení príkazu Spustiť vždy ako správca Spustiť ako iný používateľ diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml index c6433cef1..437e25f18 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml @@ -2,6 +2,7 @@ Win+R kısayolunu kullan + Herhangi bir tuşa basıldıktan sonra komut istemini kapat Çalıştırma sona erdikten sonra komut istemini kapatma Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml index 0ccfd8c9a..77fbcf8d4 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml @@ -2,6 +2,7 @@ Replace Win+R + Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml index 916542c3a..07e8142d7 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml @@ -2,6 +2,7 @@ 替换 Win+R + 按任意键后关闭命令窗口 执行后不关闭命令窗口 始终以管理员身份运行 以其他用户身份运行 diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml index 7ddc58918..58e1a11f8 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml @@ -2,6 +2,7 @@ 取代 Win+R + 按任意鍵後關閉命令提示字元視窗 執行後不關閉命令提示字元視窗 一律以系統管理員身分執行 Run as different user From 276c6eda6b0e1cd648278eeebcf53ac22540b9d5 Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Sat, 11 Nov 2023 12:36:09 +0100 Subject: [PATCH 3/9] Fix overlapping layout Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml index 960272f0f..2f02ef723 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml @@ -15,6 +15,7 @@ + CMD @@ -50,7 +51,7 @@ Pwsh RunCommand - + Date: Sat, 11 Nov 2023 13:47:22 +0100 Subject: [PATCH 4/9] Disable conflicting options Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs index c89e481d7..24365f2aa 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/ShellSetting.xaml.cs @@ -43,21 +43,27 @@ namespace Flow.Launcher.Plugin.Shell CloseShellAfterPress.Checked += (o, e) => { _settings.CloseShellAfterPress = true; + LeaveShellOpen.IsChecked = false; + LeaveShellOpen.IsEnabled = false; }; CloseShellAfterPress.Unchecked += (o, e) => { _settings.CloseShellAfterPress = false; + LeaveShellOpen.IsEnabled = true; }; LeaveShellOpen.Checked += (o, e) => { _settings.LeaveShellOpen = true; + CloseShellAfterPress.IsChecked = false; + CloseShellAfterPress.IsEnabled = false; }; LeaveShellOpen.Unchecked += (o, e) => { _settings.LeaveShellOpen = false; + CloseShellAfterPress.IsEnabled = true; }; AlwaysRunAsAdministrator.Checked += (o, e) => From 651711711d19bcef33fa593272474e364262b4cc Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Wed, 13 Dec 2023 18:35:34 +0100 Subject: [PATCH 5/9] Implement pause/exit logic Signed-off-by: Florian Grabmeier --- .../Flow.Launcher.Plugin.Shell/Languages/en.xaml | 1 + Plugins/Flow.Launcher.Plugin.Shell/Main.cs | 16 ++++------------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml index 88fa264d0..52aaf3c27 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/en.xaml @@ -4,6 +4,7 @@ Replace Win+R Close Command Prompt after pressing any key + Press any key to close this window... Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs index b963302db..f3c34d41d 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Shell/Main.cs @@ -187,7 +187,7 @@ namespace Flow.Launcher.Plugin.Shell return history.ToList(); } - private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdministrator = false) //TODO: implement logic for CloseCMDAfterPress + private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdministrator = false) { command = command.Trim(); command = Environment.ExpandEnvironmentVariables(command); @@ -203,7 +203,7 @@ namespace Flow.Launcher.Plugin.Shell case Shell.Cmd: { info.FileName = "cmd.exe"; - info.Arguments = $"{(_settings.LeaveShellOpen ? "/k" : "/c")} {command} {(_settings.CloseShellAfterPress ? "& pause" : "")}"; + 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: @@ -232,11 +232,7 @@ namespace Flow.Launcher.Plugin.Shell else { info.ArgumentList.Add("-Command"); - info.ArgumentList.Add(command); - if (_settings.CloseShellAfterPress) - { - info.ArgumentList.Add("; pause"); - } + info.ArgumentList.Add($"{command}; {(_settings.CloseShellAfterPress ? $"Write-Host '{context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")}'; [System.Console]::ReadKey(); exit" : "")}"); } break; } @@ -249,11 +245,7 @@ namespace Flow.Launcher.Plugin.Shell info.ArgumentList.Add("-NoExit"); } info.ArgumentList.Add("-Command"); - info.ArgumentList.Add(command); - if (_settings.CloseShellAfterPress) - { - info.ArgumentList.Add("; pause"); - } + info.ArgumentList.Add($"{command}; {(_settings.CloseShellAfterPress ? $"Write-Host '{context.API.GetTranslation("flowlauncher_plugin_cmd_press_any_key_to_close")}'; [System.Console]::ReadKey(); exit" : "")}"); break; } From d0f25036cac1531a9a706fba9138ca53a6539930 Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Wed, 27 Dec 2023 18:44:20 +0100 Subject: [PATCH 6/9] Remove translations Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml | 1 - Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml | 1 - 22 files changed, 22 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ar.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml index 30d15ec76..2c764d845 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/cs.xaml @@ -2,7 +2,6 @@ Nahradit Win+R - Po stisknutí libovolné klávesy zavřít příkazový řádek Po dokončení příkazu příkazový řádek nezavírejte Vždy spustit jako správce Spustit jako jiný uživatel diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/da.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml index 8aae3a5fd..3fa7c64fa 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/de.xaml @@ -2,7 +2,6 @@ Ersetzt Win+R - Schließe die Kommandozeilte nachdem eine Taste gedrückt wurde Schließe die Kommandozeilte nicht nachdem der Befehl ausgeführt wurde Immer als Administrator ausführen Als anderer Benutzer ausführen diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml index 122198357..284a2a0e6 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es-419.xaml @@ -2,7 +2,6 @@ Reemplazar Win+R - Cerrar Símbolo del sistema después de pulsar cualquier tecla No cerrar Símbolo del Sistema tras ejecutar el comando Siempre ejecutar como administrador Ejecutar como otro usuario diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml index ff01f30d6..8bf1a2c11 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/es.xaml @@ -2,7 +2,6 @@ Reemplazar Win+R - Cerrar Símbolo del sistema después de pulsar cualquier tecla No cerrar el símbolo del sistema después de la ejecución del comando Ejecutar siempre como administrador Ejecutar como usuario diferente diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml index 438f8cc8f..d08efb9b8 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/fr.xaml @@ -2,7 +2,6 @@ Remplacer Win+R - Fermer l'invite de commande après avoir appuyé sur n'importe quelle touche Ne pas fermer l'invite de commandes après l'exécution de la commande Toujours exécuter en tant qu'administrateur Exécuter en tant qu'utilisateur différent diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml index fa7df2c07..de40b0c47 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/it.xaml @@ -2,7 +2,6 @@ Sostituisci Win+R - Chiudere il prompt dei comandi dopo aver premuto qualsiasi tasto Non chiudere il prompt dei comandi dopo l'esecuzione dei comandi Esegui sempre come amministratore Esegui come utente differente diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ja.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml index 9531fe832..014a46dfc 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ko.xaml @@ -2,7 +2,6 @@ Win+R 단축키 대체 - 아무 키나 누른 후 명령 프롬프트 닫기 명령 실행 후 명령 프롬프트를 닫지 않음 항상 관리자 권한으로 실행 다른 유저 권한으로 실행 diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nb.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/nl.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml index d83386d2d..c851be93b 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pl.xaml @@ -2,7 +2,6 @@ Zastąp Win+R - Zamykanie wiersza polecenia po naciśnięciu dowolnego klawisza Nie zamykaj wiersza poleceń po wykonaniu polecenia Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml index ef0223dd9..6a0a3c8fd 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-br.xaml @@ -2,7 +2,6 @@ Substituir Win+R - Fechar o Prompt de Comando após pressionar qualquer tecla Não feche o Prompt de Comando após a execução do comando Sempre executar como administrador Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml index f91fcd888..33d7f35a6 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/pt-pt.xaml @@ -2,7 +2,6 @@ Substituir Win+R - Fechar linha de comandos depois de pressionar qualquer tecla Não fechar linha de comandos depois de executar o comando Executar sempre como administrador Executar com outro utilizador diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/ru.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml index 76221a0ef..0b76303df 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sk.xaml @@ -2,7 +2,6 @@ Nahradiť Win+R - Zatvoriť príkazový riadok po stlačení ľubovoľnej klávesy Nezatvárať príkazový riadok po dokončení príkazu Spustiť vždy ako správca Spustiť ako iný používateľ diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/sr.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml index 437e25f18..c6433cef1 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/tr.xaml @@ -2,7 +2,6 @@ Win+R kısayolunu kullan - Herhangi bir tuşa basıldıktan sonra komut istemini kapat Çalıştırma sona erdikten sonra komut istemini kapatma Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml index 77fbcf8d4..0ccfd8c9a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/uk-UA.xaml @@ -2,7 +2,6 @@ Replace Win+R - Close Command Prompt after pressing any key Do not close Command Prompt after command execution Always run as administrator Run as different user diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml index 07e8142d7..916542c3a 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-cn.xaml @@ -2,7 +2,6 @@ 替换 Win+R - 按任意键后关闭命令窗口 执行后不关闭命令窗口 始终以管理员身份运行 以其他用户身份运行 diff --git a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml index 58e1a11f8..7ddc58918 100644 --- a/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml +++ b/Plugins/Flow.Launcher.Plugin.Shell/Languages/zh-tw.xaml @@ -2,7 +2,6 @@ 取代 Win+R - 按任意鍵後關閉命令提示字元視窗 執行後不關閉命令提示字元視窗 一律以系統管理員身分執行 Run as different user From 1327250a6fc29375965c903dd576309586215323 Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Tue, 16 Jan 2024 22:55:25 +0100 Subject: [PATCH 7/9] Add "Open With" option to file context menu Signed-off-by: Florian Grabmeier --- .../ContextMenu.cs | 20 +++++++++++++++++++ .../Languages/en.xaml | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs index b4924a0fc..96a4af09c 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs @@ -52,6 +52,11 @@ namespace Flow.Launcher.Plugin.Explorer } } + if (record.Type == ResultType.File) + { + contextMenus.Add(CreateOpenWithMenu(record)); + } + contextMenus.Add(CreateOpenContainingFolderResult(record)); if (record.WindowsIndexed) @@ -434,6 +439,21 @@ namespace Flow.Launcher.Plugin.Explorer }; } + private Result CreateOpenWithMenu(SearchResult record) + { + return new Result + { + Title = Context.API.GetTranslation("plugin_explorer_openwith"), + SubTitle = Context.API.GetTranslation("plugin_explorer_openwith_subtitle"), + Action = _ => + { + Process.Start("rundll32.exe", $"{Path.Combine(Environment.SystemDirectory, "shell32.dll")},OpenAs_RunDLL {record.FullPath}"); + return true; + }, + IcoPath = Constants.ShowContextMenuImagePath + }; + } + private void LogException(string message, Exception e) { Log.Exception($"|Flow.Launcher.Plugin.Folder.ContextMenu|{message}", e); diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml index d5352ef1e..f2491d928 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml @@ -102,7 +102,9 @@ Remove from Quick Access Remove current item from Quick Access Show Windows Context Menu - + Open With + Select a program to open with + {0} free of {1} Open in Default File Manager From 8898a09aac613c89d726060c10bd77471be98655 Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Tue, 16 Jan 2024 22:59:46 +0100 Subject: [PATCH 8/9] Add Glyph for open with Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs index 96a4af09c..4e0596a44 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs @@ -52,13 +52,13 @@ namespace Flow.Launcher.Plugin.Explorer } } + contextMenus.Add(CreateOpenContainingFolderResult(record)); + if (record.Type == ResultType.File) { contextMenus.Add(CreateOpenWithMenu(record)); } - contextMenus.Add(CreateOpenContainingFolderResult(record)); - if (record.WindowsIndexed) { contextMenus.Add(CreateOpenWindowsIndexingOptions()); @@ -450,7 +450,8 @@ namespace Flow.Launcher.Plugin.Explorer Process.Start("rundll32.exe", $"{Path.Combine(Environment.SystemDirectory, "shell32.dll")},OpenAs_RunDLL {record.FullPath}"); return true; }, - IcoPath = Constants.ShowContextMenuImagePath + IcoPath = Constants.ShowContextMenuImagePath, + Glyph = new GlyphInfo(FontFamily: "/Resources/#Segoe Fluent Icons", Glyph: "\ue700"), }; } From e14e7d09590cbf03d84802d0f39eca180836f9de Mon Sep 17 00:00:00 2001 From: Florian Grabmeier Date: Wed, 17 Jan 2024 10:56:10 +0100 Subject: [PATCH 9/9] Update Glyph Signed-off-by: Florian Grabmeier --- Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs index 4e0596a44..2297e5f96 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs @@ -451,7 +451,7 @@ namespace Flow.Launcher.Plugin.Explorer return true; }, IcoPath = Constants.ShowContextMenuImagePath, - Glyph = new GlyphInfo(FontFamily: "/Resources/#Segoe Fluent Icons", Glyph: "\ue700"), + Glyph = new GlyphInfo(FontFamily: "/Resources/#Segoe Fluent Icons", Glyph: "\ue7ac"), }; }