leaningtech / webvm

Virtual Machine for the Web

Home Page:https://webvm.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

replace xterm.js by another terminal

Utopiah opened this issue · comments

Hi, really cool project. I'd like to rely on it in order to developer XR content via the Web. I'm already doing so with my own code editor but truth is, I miss Vim proper.

There are existing solution by using Termux on the device but is not immersive, forcing to switch back and forth between code and content. Alternatively one can stream their desktop via WebRTC, edit, live-reload part of the content. Unfortunately that requires another device.

I believe having WebVM instead would open-up a lot of interesting use cases but even "just" being able to live-reload with a proper editor, like Vim, while being properly standalone is already a great value proposition.

Anyway xterm.js might be usable as-is via e.g https://github.com/AdaRoseCannon/aframe-htmlmesh (but I doubt it, relatively complex) or instead replaced by https://github.com/kylebakerio/a-console

I'm wondering if you have suggestion on how to replace the interface here by something more immersive.

Hello! Rendering WebVM inside A-Frame will be complex, but it sounds pretty cool.

I think the html component that you linked may actually work well. It should detect WebVM's xterm.js canvas elements and render them as three.js meshes. I'd suggest you go down that route!

I'm going to close this because it's more of a question than an issue, and there shouldn't be any need for us to change anything upstream. I suggest you join our Discord server, but if not, let me know how far you get with this idea 👀

That's the best kind of issues, the ones that can be closed right away because the architecture or stack choices solve it instantly ;) I'll try ASAP and report back here but indeed the canvas was the solution I had in mind. I wasn't aware that xterm.js could render directly to canvas but @coderofsalvation clarified that through a recent exchange.

Awesome. Note that xterm.js isn't deeply integrated into WebVM at all - if you run into trouble with xterm.js, you could find some other terminal emulator which could probably be integrated without much work.