aboutsummaryrefslogtreecommitdiff
path: root/src/platform/fallback.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-05 20:18:24 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-05 20:19:13 +0300
commit220b99a9fabf10fad83a570f641ad39737d85875 (patch)
treea27a3b791f110d091ca6ef9b194bb6c1fb4e2b55 /src/platform/fallback.rs
parent2bc1724c2dae72184a5d2ec070e30c70dc519f9b (diff)
fix: support custom command keybindings on windows
refs #1041
Diffstat (limited to 'src/platform/fallback.rs')
-rw-r--r--src/platform/fallback.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/platform/fallback.rs b/src/platform/fallback.rs
index e9134a8b..382ccf5e 100644
--- a/src/platform/fallback.rs
+++ b/src/platform/fallback.rs
@@ -6,6 +6,23 @@ use super::{ClipboardImage, ForegroundJob, Signal};
/// Unsupported platform stub.
pub fn raise_server_nofile_limit() {}
+fn raw_command_argv(command: &str, flag: &str) -> Vec<std::ffi::OsString> {
+ vec!["/bin/sh".into(), flag.into(), command.into()]
+}
+
+pub(crate) fn detached_custom_command_process_platform(command: &str) -> std::process::Command {
+ let argv = raw_command_argv(command, "-lc");
+ let mut command = std::process::Command::new(&argv[0]);
+ command.args(&argv[1..]);
+ command
+}
+
+pub(crate) fn pane_custom_command_pty_builder_platform(
+ command: &str,
+) -> portable_pty::CommandBuilder {
+ portable_pty::CommandBuilder::from_argv(raw_command_argv(command, "-c"))
+}
+
/// Unsupported platform stub.
pub(crate) fn scrollback_editor_argv(_path: &std::path::Path) -> std::io::Result<Vec<String>> {
Err(std::io::Error::new(