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.
70 comments
[ 3.7 ms ] story [ 83.4 ms ] threadhttps://news.ycombinator.com/item?id=45203700
Nicely done!
https://github.com/fathyb/carbonyl
P.S. This is very cool btw.
Thanks for sharing!
Another similar thing that I'd been meaning to look into is the RDP remote apps stuff.
The reason the terminal ecosystem doesn't get much more sophisticated over time isn't just the herd-of-cats fragmentation, but also evaporative cooling: people who do really cool things with terminal come to realize that what they really want is remote desktop (perhaps rootless) and leave terminal stuff as-is while they invest in more sophisticated systems instead.
1. https://gitlab.freedesktop.org/mstoeckl/waypipe
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)."
I am sure it was a great and fun learning experience.
Well done !
I love it.