diff --git a/crates/terminal/src/terminal.rs b/crates/terminal/src/terminal.rs index f6109572a7..1d508fb491 100644 --- a/crates/terminal/src/terminal.rs +++ b/crates/terminal/src/terminal.rs @@ -93,6 +93,7 @@ pub struct Terminal { has_new_content: bool, has_bell: bool, //Currently using iTerm bell, show bell emoji in tab until input is received cur_size: SizeInfo, + associated_directory: Option, } ///Upward flowing events, for changing the title and such @@ -127,8 +128,8 @@ impl Terminal { .detach(); let pty_config = PtyConfig { - shell: None, //Use the users default shell - working_directory, + shell: None, + working_directory: working_directory.clone(), hold: false, }; @@ -174,6 +175,7 @@ impl Terminal { has_new_content: false, has_bell: false, cur_size: size_info, + associated_directory: working_directory, } } @@ -404,6 +406,13 @@ impl Item for Terminal { .boxed() } + fn clone_on_split(&self, cx: &mut ViewContext) -> Option { + //From what I can tell, there's no way to tell the current working + //Directory of the terminal from outside the terminal. There might be + //solutions to this, but they are non-trivial and require more IPC + Some(Terminal::new(cx, self.associated_directory.clone())) + } + fn project_path(&self, _cx: &gpui::AppContext) -> Option { None }