diff --git a/examples/custom_bindings/src/main.rs b/examples/custom_bindings/src/main.rs index 535f81b..917cc81 100644 --- a/examples/custom_bindings/src/main.rs +++ b/examples/custom_bindings/src/main.rs @@ -54,7 +54,8 @@ impl App { }, theme: iced_term::settings::ThemeSettings::default(), backend: iced_term::settings::BackendSettings { - shell: system_shell.to_string(), + program: system_shell, + ..Default::default() }, }; diff --git a/examples/fonts/src/main.rs b/examples/fonts/src/main.rs index ae61e48..db78d22 100644 --- a/examples/fonts/src/main.rs +++ b/examples/fonts/src/main.rs @@ -56,7 +56,8 @@ impl App { }, theme: iced_term::settings::ThemeSettings::default(), backend: iced_term::settings::BackendSettings { - shell: system_shell.to_string(), + program: system_shell, + ..Default::default() }, }; diff --git a/examples/full_screen/src/main.rs b/examples/full_screen/src/main.rs index 055e97c..1bf8ca3 100644 --- a/examples/full_screen/src/main.rs +++ b/examples/full_screen/src/main.rs @@ -44,7 +44,8 @@ impl App { }, theme: iced_term::settings::ThemeSettings::default(), backend: iced_term::settings::BackendSettings { - shell: system_shell.to_string(), + program: system_shell, + ..Default::default() }, }; diff --git a/examples/split_view/src/main.rs b/examples/split_view/src/main.rs index 5e3f09f..ad1d567 100644 --- a/examples/split_view/src/main.rs +++ b/examples/split_view/src/main.rs @@ -57,7 +57,10 @@ impl App { }, theme: iced_term::settings::ThemeSettings::default(), backend: iced_term::settings::BackendSettings { - shell: env!("SHELL").to_string(), + program: std::env::var("SHELL") + .expect("SHELL variable is not defined") + .to_string(), + ..Default::default() }, }; let tab = iced_term::Terminal::new( diff --git a/examples/themes/src/main.rs b/examples/themes/src/main.rs index 91b101f..9e4dde2 100644 --- a/examples/themes/src/main.rs +++ b/examples/themes/src/main.rs @@ -50,7 +50,8 @@ impl App { }, theme: iced_term::settings::ThemeSettings::default(), backend: iced_term::settings::BackendSettings { - shell: system_shell.to_string(), + program: system_shell, + ..Default::default() }, }; diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 93cba8e..21e90eb 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -146,7 +146,7 @@ impl Backend { font_size: Size, ) -> Result { let pty_config = tty::Options { - shell: Some(tty::Shell::new(settings.shell, vec![])), + shell: Some(tty::Shell::new(settings.program, settings.args)), ..tty::Options::default() }; let config = term::Config::default(); diff --git a/src/settings.rs b/src/settings.rs index 74cada4..05f1fda 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -16,13 +16,15 @@ pub struct Settings { #[derive(Debug, Clone)] pub struct BackendSettings { - pub shell: String, + pub program: String, + pub args: Vec, } impl Default for BackendSettings { fn default() -> Self { Self { - shell: DEFAULT_SHELL.to_string(), + program: DEFAULT_SHELL.to_string(), + args: vec![], } } }