Top
Best
New

Posted by mmulet 4 days ago

Show HN: Term.everything – Run any GUI app in the terminal(github.com)
I made a built-from scratch Wayland Compositor to display any GUI app* in the terminal! I think there is a lot of unexplored potential in custom Wayland compositors, a lot of really cool things you can embed existing applications into! So, I started with embedding apps into the terminal because that is the easiest input/output (output is just utf-8 and I use the great `chafa` library for that, and I just read from stdin for the input).

If you have any other ideas for cool Wayland compositors, let me know. I purposedly wrote 80% the app in Typescript to appeal to the most developers and attract cool contributions (I do all drawing with the familiar Canvas2D api, so if there is interest, I can also fork this out into a cool Terminal canvas, let me know!)

I have a blog post here about how I did it, but it’s pretty high level and non technical, so please ask if you have any questions.

[How I Did It](<https://github.com/mmulet/term.everything/blob/main/resource...>)

*technically only Wayland apps and x11 apps with Xwayland. But on Linux that’s mostly everything.

1053 points | 143 commentspage 7
dcreater 3 days ago|
[flagged]
colecut 3 days ago||
Looks like a nice way to run a gui app on a VM remotely over an ssh connection?
graemep 3 days ago|||
Because its cool.
vidarh 3 days ago||
Why not?
20after4 3 days ago|
You could use a terminal graphics protocol to render real graphics. But there is already waypipe¹ to do that kind of remoting. Without using an actual terminal.

1. https://gitlab.freedesktop.org/mstoeckl/waypipe

vidarh 3 days ago|
> You could use a terminal graphics protocol to render real graphics.

It already does that[1].

> But there is already waypipe¹ to do that kind of remoting.

That requires Wayland on the client side, doesn't it? I don't expect this to be super-practical anyway, but it's fun to see how far you can push a terminal.

[1] "If your terminal supports images (like kitty or iterm2) you can render windows at full resolution (performance may degrade)."