HNHacker News
TopNewBestAskShowJobs

mmulet

892 karma · joined March 12, 2018

Github: https://github.com/mmulet Email me with "Literally any username" at coderelay.io
submissionscomments
mmulet··on Chafa: Terminal Graphics for the 21st Century
I use chafa in term.everything[0], and I have nothing but good things to say about it! hpjansson is a great maintainer too, if anything even seems like it's wrong with chafa he will chime in with a fix or a suggestion[1] (I'm not the only one he does this with too [2][3]). I would definitely recommend this lib for anyone doing terminal graphics.

[0]https://github.com/mmulet/term.everything

[1]https://github.com/mmulet/term.everything/issues/5

[2]https://lobste.rs/s/qh6lil/chafa_terminal_graphics_for_21st_...

[3]https://github.com/wong-justin/vic/issues/1#issue-2586904982

mmulet··on Chafa: Terminal Graphics for the 21st Century
One of the really cool things about chafa is that it has both sixel and kitty graphic renderers! (and iterm2 images as well) So you can output kitty if the terminal supports it, but fall back to ascii if it doesn’t.
mmulet··on Go is portable, until it isn't
I use alpine for this [1] reason, but I will admit that this is a premature-optimization. I haven’t actually ran into the problem myself.

——

Your code is great, I do basically the same thing (great minds think alike!). The only thing I want to add is that cgo supports pkg-config directly [2] via

  // #cgo pkg-config: $lib

So you don’t have to pass in linker flags manually. It’s incredibly convenient.

[1]https://stackoverflow.com/questions/57476533/why-is-statical...

[2]https://github.com/mmulet/term.everything/blob/def8c93a3db25...

mmulet··on Go is portable, until it isn't
It works so far! No major gotchas that I know of yet. From the perspective of the apps, they are just talking to a normal Wayland compositor, so everything works as expected. Just try it for your workflow, and if you run into any problems just open an issue and I’ll fix it.
mmulet··on Go is portable, until it isn't
List of troubles:

[1]https://github.com/mmulet/term.everything/issues/28

[2]https://github.com/mmulet/term.everything/issues/18 (although this issue later gets sidetracked to a build issue)

[3]https://github.com/mmulet/term.everything/issues/14

[4]https://github.com/mmulet/term.everything/issues/7

mmulet··on Go is portable, until it isn't
I ran into this issue when porting term.everything[0] from typescript to go. I had some c library dependencies that I did need to link, so I had to use cgo. My solution was to do the build process on alpine linux[1] and use static linking[2]. This way it statically links musl libc, which is much friendlier with static linking than glibc. Now, I have a static binary that runs in alpine, Debian, and even bare containers.

Since I have made the change, I have not had anyone open any issues saying they had problems running it on their machines. (Unlike when I was using AppImages, which caused much more trouble than I expected)

[0] https://github.com/mmulet/term.everything look at distribute.sh and the makefile to see how I did it.

[1]in a podman or docker container

[2] -ldflags '-extldflags "-static"'

mmulet··on HTML Kong (2016)
A version of game and watch donkey kong using only CSS and HTML (no javascript!).

You can play the game here: kong.xn--8ws00zhy3a.com

mmulet··on We Induced Smells With Ultrasound
This is exceptionally cool! It looks like this post isn’t getting much love though. I’ll see if I can get this post added to the second chance pool[1] and get it added to the front page!

[1]https://news.ycombinator.com/item?id=26998308

mmulet··on Show HN: I made an open-source web engine for relativistic simulations
Very cool!
mmulet··on Show HN: Play snake on your razer keybard on Linux
This is cool. I love games where they don’t belong!
mmulet··on Show HN: Re-Implementing the macOS Spatial Finder
This looks useful! A lot of the time, I open a Space to work on a project and I want all my folders arranged in a certain way. Until now, I’ve been using Shortcuts, but it would be nice if Finder just remembered where everything should go.
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
Awww, thanks for your kind words. Tell you what: should the fates align and we ever meet at a tech conference or hackathon, etc, I’ll do what I can so that you leave with some Gwerm-flavored memorabilia.
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
Thanks, I’ll check that out
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
That’s right, it will still be pixelfied text. We could run ocr on the images then convert to text, but that’s an entirely new can of worms. Make a feature request issue on GitHub if you’re interested,
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
Depends on what resolution your terminal is set to. (Not the resolution of the GUI app you use, just the resolution you display it). At low resolution (640x480) it’s pretty performant, but at 4K I can hear my fans going full blast.
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
You will be able to copy/paste with term.everything once I implement the Wayland copy/paste interface (wl_data_device_manager).
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
But really, in the last 24 hours term.everything has accumulated 1500 stars, 600 upvotes on HN, 185 upvotes on lobsters (the highest upvoted `show` tag of all time), but despite all of that, you, my friend, are the first to ask about Gwerm.

That means you win the secret prize! A custom Gwerm T-shirt! I’ll send the details to the Gmail you have linked to your account.

mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
He is doing okay. Thanks for asking.
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
<3
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
<3
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
1. Yes, but it depends on your compositor because your compositor needs to be able to run as a nested Wayland client. I think there is support for this in wlroots based Wayland compositors, but I'm not sure if hyperland supports it.

2. I think it will work, but I haven't tried. I redraw the terminal window every time the "termed" window updates. So, if you are playing a video for example and you dynamically resize the window, it should update the size automatically. If you are viewing a static window it might not.

mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
Doom time!

https://news.ycombinator.com/item?id=45203700

mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
Ask and ye shall receive: Running doom: https://github.com/mmulet/term.everything/blob/main/resource...

I had the change a couple of line to make it work because term.everything takes input only from stdin (this way it works of ssh and is pretty broadly compatible across terminals).

1. I had to remap another key to the control key (which is usually used to send signals like sigterm)

2. Then I had to change the timeout in which keys are pressed. When using stdin, you get a keydown event, but you don't get a key up event (ever). So I have to guess when you want to key up. Most of the time, I can send key up right away. But, it looks like doom has some sort of key debounce, so I had to wait 50-100 ms for keyup. Then there is the problem of if you want to walk forward in games you usually hold down up arrow, but now you have to rapidly press it! Not ideal, but it does work, and it it playable.

mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
Behold! running on the iPad! Screen Recording - https://github.com/mmulet/term.everything/blob/main/resource... A video of it on the iPad - https://github.com/mmulet/term.everything/blob/main/resource...

Absolutely no mouse support though, anyone know of an iPad ssh client with mouse support?

(still working on getting vscode to run smoothly)

mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
100. Thanks!
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
You can have a <3 too!
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
No you do not. It works on x11 and Wayland host systems. I built the Wayland compositor from scratch and it does not have any dependencies on libwayland. So, you don’t have to install Wayland at all.
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
I know there are ssh clients for iPad. So it should work. I’m going to try it right now!
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
The deciding factor was that I just liked using term as a verb.
mmulet··on Show HN: Term.everything – Run any GUI app in the terminal
That’s right. These other projects are awesome, but they’re attempting something different. It’s apples to oranges.
Page 1 of 3Next →