Waveterm-like features
Description of the new feature/enhancement
I have come across Waveterm which is only available for Linux and MacOS. It has really nice features such as
- Workspaces
- Inline code viewing and editing
- Viewing Markdown, JSON, CSV and images all in the terminal
- Viewing universal history (commands run universally in all machines)
Could you please implement these features to the Windows Terminal as well?
Also I have previously created an issue #13122 which is now converted to a discussion #13146 . These refer to Warp-terminal like features. Would be nice to have the above features included as well.
### Tasks
- [ ] Workspaces, for persisting individual windows then later reopening them
- [ ] Rich inline content (md, json, images, csv?) blocks via VT
- [ ] Universal history pane (this probably should be linked to the shell integration thread in #13445 (or similar)
I think the "workspaces" sounds a lot like "named sessions". This I don't hate. Like, if you could close a workspace and re-open it ala Edge Workspaces. That's a good idea. I suppose there's no reason today (other than we need to write a bit of code) that a named window couldn't be persisted separately outside the persistedWindowLayouts, and when that's opened cold, we could see if there's something in the state.json for that window first.
The inline stuff is intriguing, but I'm guessing that the way waveterm implements it is very tightly coupled to their own "shell" implementation. If we were gonna do this, we'd want to do it in a way that'd be universally consumable regardless of terminal emulator. I was just talking to @DHowett about this before the break:
then i had this fever dream where you could like emit
OSC 9001 markdown <rows> <columns> <literal markdown> OSC 9001 /markdown
or csv or fuck, png (like, literally raw png bytes) (like literally,
cat manningface.png)and then we'd reserve that much space in the buffer, and draw the file however we were prepared to render it. And we'd just do this "on top of" the buffer so if you like, blat manning into the terminal then move the cursor over his face to repaint it, then too bad?
Of course, inline editing would be really hard, cause you'd have to somehow spawn a process on the (possibly remote) machine to persistently listen for "saves" from the Terminal, and then send those to the file to write it - I'd probably rather not be in the business of that.
also xlink #13445 for my own reference
Another fascinating terminal approach is warp.dev. Worth looking at the features it's offering.