←back to thread

1080 points mmulet | 4 comments | | HN request time: 0.412s | source

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.

1. fzorb ◴[] No.45199902[source]
I remember seeing something similar named Carbonyl a while back. What a coincidence lol.

https://github.com/fathyb/carbonyl

P.S. This is very cool btw.

replies(2): >>45200496 #>>45200756 #
2. dodslaser ◴[] No.45200496[source]
Awrit is also similar.

https://github.com/chase/awrit

3. patcon ◴[] No.45200756[source]
I truly appreciate the relational thinking and pointing out other projects that might interest ppl who are excited about this :) Having said that, term.everything seems to be much larger in scope than a browser, unless I'm mistaken
replies(1): >>45201288 #
4. mmulet ◴[] No.45201288[source]
That’s right. These other projects are awesome, but they’re attempting something different. It’s apples to oranges.