-
Notifications
You must be signed in to change notification settings - Fork 3.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
Serializable terminal state #781
Comments
One of the nice advantages of this would be the ability to trivially re-instantiate terminals after re-renderings (i.e: very clean hot code reloading), or even move a session from one window to the other (through drag and drop for example). |
FYI xterm.js is about to go through a refactor to achieve something like this in order to enable the tty to exist and function entirely without being attached to the DOM (xtermjs/xterm.js#266) to better support the terminal API in vscode (microsoft/vscode#12000). |
That sounds great! Definitely a great option then.
|
Right now we're deferring to hterm for terminal rendering. This has worked fantastically well, but has the major drawback that hterm's implementation is very dependent on the rendering logic and the DOM.
We need to transition into a system that allows us to separate the terminal data from its rendering.
In other words, the state of the terminal, such as the visible rows and columns, caret position, active ANSI modes and scrollback should live in reducers.
A strong candidate to transition into is Terminal.js by @Gottox, who's also the author of
child_pty
. Here's some of its relevant documentation: http://terminal.js.org/TermState.htmlThe text was updated successfully, but these errors were encountered: