-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MVP] Integrated Terminal #4649
base: master
Are you sure you want to change the base?
Conversation
@@ -42,6 +43,7 @@ toml = "0.5" | |||
log = "~0.4" | |||
|
|||
which = "4.2" | |||
alacritty_terminal = "0.17.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add this dependency only in the helix-vte
crate, then re-export it via pub use alacritty_terminal
there? That way it's not included several times
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really don't think helix-vte
should know anything about alacritty_terminal
. helix-vte
it is about process PTY or SSH.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm okay. How about splitting helix-view/src/terminal.rs
etc into a helix-terminal
crate? I'd like to keep the least amount of code possible in helix-view
so it's more separated from the rest of -view
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only concern is - the name (helix-terminal
) is confusing with helix-term
e14e136
to
9d50b02
Compare
Was wezterm https://github.com/wez/wezterm/tree/main/term considered ? The advantage is the number of protocols it implements It has sixel iterm2 and kitty support and even more stuff already implemented. Nvim terminal is implementing kitty protocol progressively and helix itself supports it since its using crossterm |
Good call, it should also be a bit more lightweight since you need to bring your own |
Hi, yes sure, but I decided that pulling whole wezterm repo only for |
ea69dec
to
5835d0b
Compare
helix-vte/src/lib.rs
Outdated
impl Default for PtySpawnConfig { | ||
fn default() -> Self { | ||
Self { | ||
command: "/usr/bin/zsh".to_string(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's pass this in and use editor.config.shell
helix/helix-view/src/editor.rs
Lines 124 to 125 in 5835d0b
/// Shell to use for shell commands. Defaults to ["cmd", "/C"] on Windows and ["sh", "-c"] otherwise. | |
pub shell: Vec<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we shouldn't use that option, because by default it is just /bin/sh
and that is good for simple cases like pipe through some program. But when we starting the terminal we usually would like to see default system shell program. For now I am setting it value from SHELL
env variable, but later it would be better make some terminal section in main configuration file.
e01c2fb
to
e79ebfc
Compare
e79ebfc
to
450c9da
Compare
#[error("IO Error: {0}")] | ||
IoError(#[from] std::io::Error), | ||
|
||
#[error("Termina Not Found: {0}")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#[error("Termina Not Found: {0}")] | |
#[error("Terminal Not Found: {0}")] |
Totally benign typo - just happened to be reading through the code and spotted it.
FWIW Zellij uses |
Is the consensus to include a built in terminal as opposed to a multiplexer? If so what needs to be done? |
Random question as an outsider - is there a difference to the end-user? |
There is no difference in our case. A built-in in terminal would automatically be a multiplexer since we'd be multiplexing it in a view split |
There has to be way to integrate the warp terminal with Helix. Can't we just split the windows and have keybindings to change focus? |
@kazimir-malevich I suspect it wouldn't be integrated due to license incompatibility
|
Not to mention it's (from the looks of it) MacOS-only (removed the @ as to not ping people for this irrelevant comment)
|
What's the status on this PR? |
The status is |
|
Minimal implementation of integrated terminal based on
alacritty_terminal
crate.Checklist:
pty_process
)config.toml
Also nice to have later: