That's awesomely useless, it straddles the line between programming and art.
I am sure it was a great and fun learning experience.
Well done !
GTP 1 days ago [-]
Well, not 100% useless: I can see its use for applications running inside Docker containers. Yes, there are ways to have GUI applications rendered from the inside of a container, but maybe this is easier than getting the Dockerfile right.
EDIT: nevermind, doing this with Docker seems much easier than I expected [0]. I'll try it tomorrow, I'm curious to see if the proposed solution works on Windows as well.
Windows had Wayland support before most distros! Rather surprising.
0points 16 hours ago [-]
> Windows had Wayland support before most distros! Rather surprising.
WSL had non-accelerated wayland support at one point in time.
Was it before "most distros"?
I don't understand what you think that amounts to.
Wayland support in Linux-land typically means that the software supports running in your wayland compositor.
Windows famously is not a wayland compositor, no matter how much you try to bend reality.
actsasbuffoon 1 days ago [-]
Yeah, I can’t explain why this project makes me so happy because I struggle to think of any time where I’d need this, but it puts a big, dumb grin on my face.
pawelduda 1 days ago [-]
Well, you can run apps on any less capable device with ssh and proper terminal display. You can limit data usage by offloading video buffering to the host (however not sure if that's net positive saving). And put the host behind VPN to avoid getting region blocks.
blooalien 24 hours ago [-]
I actually used to tunnel Netscape Navigator via SSH to my Commodore Amiga desktop via an Xorg server way back in the 56K phone modem Internet days from my ISP's SSH user account login, since Amiga didn't have Netscape (and even if it did, the Amiga likely would have choked on it, massive and bloated as Netscape was), and the browser AmigaOS did have just wasn't up to the task of normal day-to-day usage of the Web as it existed back then. Fun times.
Sure am glad of the broadband Internet and modern "powerhouse" PCs we have so readily available today. Hell, even the computer most everyone carries in their pocket these days is infinitely more powerful than the average desktop machines of my childhood. :)
I think one significant difference though is that Browsh renders actual text for text content, so you can copy and paste, etc.
mmulet 23 hours ago [-]
You will be able to copy/paste with term.everything once I implement the Wayland copy/paste interface (wl_data_device_manager).
tombh 11 hours ago [-]
OMG! That'd be AMAZING. But it still wouldn't render GUI text as terminal font text right?
mmulet 9 hours ago [-]
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 1 days ago [-]
<3
k-warburton 1 days ago [-]
I came here to make the same comment. I want to try this myself just for the fun of it and the grin it will put on my face. Nice work!
mmulet 1 days ago [-]
You can have a <3 too!
snozolli 1 days ago [-]
It reminds me a bit of chindōgu, the Japanese art (?) of useless inventions. There's a particular delight to ingenious, but absurd or useless creations.
hnlmorg 1 days ago [-]
That’s a term I’ve not heard in literally decades.
Thanks for the reminder
anthk 1 days ago [-]
Emacs it's full of chindogus. Also, there's geekcode, xroach, megahal/hailo, xneko, aatv and mplayer rendering videos over aalib, aaquake, eforth running in the subleq virtual machine...
hiccuphippo 1 days ago [-]
I remember watching the World Cup over telnet with one of those aalib libraries years ago. The signal arrived 5 seconds earlier than the TV :)
anthk 1 days ago [-]
With a small framebuffer font aatv was almost watchable over a distance, but OFC fbtv made it obsolete, and ditto with mplayer -vo aalib as movies worked in the framebuffer just as fine as X.
But I remember the BB demo and I still remember these catchy s3m modules...
And, well, not AA, but I still play today tons of text adventures and roguelikes (and BSDgames and such), and my main X environment it's CLI/TUI based except for CWM (Window manager), MPV/MuPDF/NSxiv (images) and djview4 for DJVU files..
DiggyJohnson 1 days ago [-]
I’m a fan of `xeyes`
watersb 1 days ago [-]
xeyes can be Actually Useful; two eyes always looking at the cursor...
your animal brain hardwired to discern the direction of gaze of the eyes facing you (citations appreciated)...
Helps me find the mouse cursor on a big screen if I lose track, even with small parallax angle.
On macOS, I just wiggle the mouse back and forth, and the cursor gets really big, it pops out at you.
I generally don't keep `xeyes` running. But it's a righteous, venerable hack.
robot-wrangler 1 days ago [-]
[dead]
dmayle 1 days ago [-]
Definitely not useless!
I run a ttyd server to get terminal over https, and I have used carbonyl over that to get work done. That's limited to a web browser (to get access to resources not exposed via the public internet), so having full GUI support is very useful
shonku 20 hours ago [-]
Absolutely love the energy here. You really terminally outdid yourself here. Consider me officially shell-shocked.
pbhjpbhj 15 hours ago [-]
Terrible puns. But at least you gave it a bash.
psd1 13 hours ago [-]
Very prompt. This thread has Bourne fruit. I'm uTTYerly impressed.
reactordev 1 days ago [-]
This is one of those things that pushes the boundaries to nowhere, yet everywhere at the same time whilst being incredibly awesome and something you can show off ad infinitum. Outstanding! Not sure how we’ll implement vdi now! Gives ghost in the shell a whole new meaning.
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.
reactordev 23 hours ago [-]
Phenomenal!!!
I used to write telnet games so I know all about keypress up never coming through. Even with immediate mode (so repeated keys will send repeated key codes while held down) it never tells you when it stops. You have to read the buffer ascii byte by byte. Still, awesome to see. Great work!!!
anthk 1 days ago [-]
aaquake ran under ASCII terminals before this ever existed.
reactordev 23 hours ago [-]
But that isn’t this, answered above.
wdavidw 9 hours ago [-]
A few years back, I was deploying, operating and debugging a Hadoop cluster with Kerberos enabled behind a firewall with only the SSH port being opened. Without a web browser would have been a much more complicated task. I ended up installing the X11 client on my local macOS and the all Gnome + Firefox on one of the cluster's node. Something that is not doable with Wayland. This project work like a charm, here is a quick example on how to test it inside an Incus container (I had to install 2 additional dependencies).
# Work with Gnome terminal but resolution is much better in something supporting images
apt install -y kitty
kitty
# Create an incus container
incus --project default launch images:ubuntu/24.04 term
incus --project default shell term
# Install dependencies
apt install -y curl firefox libharfbuzz0b libfontconfig1
curl -L -o term https://github.com/mmulet/term.everything/releases/download/0.5.1/term.everything.mmulet.com-dont_forget_to_chmod_+x_this_file
mv term.everything.mmulet.com-dont_forget_to_chmod_+x_this_file term
chmod u+x term
echo '<h1>Hello</h1>' > test.html
# Start firefox, wait for a few seconds
./term firefox test.html
marcodiego 1 days ago [-]
This is interesting, but there was something that was even more impressive many years ago: a GTK theme that rendered all decoration and widgets using text chars and a GDK backend that rendered to text. Combine both and you could run any GTK app on a terminal with legible text and a beautiful TUI.
Damn I have a vague memories of seeing this thing in Fedora Core
colecut 1 days ago [-]
why did this go away?
saghm 14 hours ago [-]
Maybe linking to this reminded the owner that they had a sourceforge account they had forgotten about, and they took the opportunity to delete it.
tri2820 2 days ago [-]
This is such a cool project. Personally, I think there are so many interesting use cases that can be built on top of Wayland, like https://github.com/udevbe/greenfield
and this
warwren 1 days ago [-]
I remember the carbonyl project to run chromium in the terminal that got me really excited (https://github.com/fathyb/carbonyl) but it eventually became unmaintained.
This is pretty much that but supercharged. Definitely really cool to see. Good work!
Obviously no input though, you would have to use xdotool! The main benefit is that you probably already have all these tools installed :)
FortuneIIIPick 6 hours ago [-]
Looks like you're on Windows? You can run X apps with XMing, I used to do it years ago. You can run the actual X app and use it, not just get a screenshot.
taviso 5 hours ago [-]
The point is to view it in a terminal (e.g. XTerm, Konsole, etc), of course you can just run it in an X server.
roughly 20 hours ago [-]
This is the exact kind of unhinged that belongs on HN. Naturally, it's written in typescript.
This could be useful for testing UI elements of apps ...
Modern UI applications are way too tightly coupled for my liking, and difficult to test especially if you don't practice "separation of concerns", e.g. decoupling the app logic from its presentation.
Haven't looked at the full thing but something like this might allow you to write tests for UI apps without actually having the UI backend...
fzorb 1 days ago [-]
I remember seeing something similar named Carbonyl a while back. What a coincidence lol.
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
mmulet 1 days ago [-]
That’s right. These other projects are awesome, but they’re attempting something different. It’s apples to oranges.
Surprisingly enough, my keyboard is missing the "V", "N", and "C" keys. Thank you for helping me save money by not buying a new keyboard!
Forgret 2 days ago [-]
I wish you success in further development, don't stop!
mmulet 2 days ago [-]
Thanks!
tracker1 1 days ago [-]
This is pretty cool, I can see this being useful when I need to run a one-off remotely. Not sure about attaching a running program then detaching again, or mirroring... I wouldn't mind being able to SSH to my desktop and manipulate say the running Discord client, or similar.
Another similar thing that I'd been meaning to look into is the RDP remote apps stuff.
anthk 1 days ago [-]
Just use a CLI discord client, or fire up an IRC client against some Bitlbee server.
tracker1 1 days ago [-]
It was an example, not the only use case. 99% of what I want to do remote is just fine over SSH (over Wireguard)... Mostly remote VS Code usage since my desktop is much beefier than my laptop when travelling.
Guestmodinfo 23 hours ago [-]
I like it. I always want to run things in a terminal. Because
1. I used to think that's more secure than X
2. I always seem to get better audio of the videos that I run in tty and my mouse is much smoother in the tty. Yes I can move mouse in tty.
Also someone mentioned a cool project like carbonyl. They also mentioned brow.sh which I have heard but they described it in detail so that's another plus when term.everything kind of projects come they drag other cool projects to he foreground
Point 1 of mine may be pure superstition.
How term.everything works on tty I don't know maybe it will be horriblebecause of the resolution thing but still it's a nice direction.
kposehn 1 days ago [-]
Wow. I love this! I actually have a specific, esoteric use for this: VSCode on iPad
Absolutely no mouse support though, anyone know of an iPad ssh client with mouse support?
(still working on getting vscode to run smoothly)
jsjohnst 10 hours ago [-]
> anyone know of an iPad ssh client with mouse support?
Prompt 3 from Panic
mmulet 9 hours ago [-]
Thanks, I’ll check that out
oarsinsync 1 days ago [-]
> anyone know of an iPad ssh client with mouse support
Blink terminal for iOS and iPadOS. Ships with vscode support built in too.
jamiek88 16 hours ago [-]
I literally laughed in delight at this.
chamomeal 19 hours ago [-]
That is absolutely insane lmao
chamomeal 20 hours ago [-]
Oohh wow you’re right, that’s crazy!!
IshKebab 1 days ago [-]
I started working on this with the Kitty image protocol, but unfortunately that protocol is really unsuited to this sort of thing. Performance will be awful.
The protocol is sort of:
1. I'd like you to display this PNG. Here's the data: ...
2. Ok I've got the data.
3. Ok now display it at this position.
4. Ok now remove it from the screen.
We're talking motion-PNG here. Just think about how awful that is.
I wish someone would add some kind of AV1-over-terminal protocol. That would be actually useful.
The other thing I was going to try was a custom GUI that used normal terminal text for the text of widgets, but Kitty images for the rest. It's quite a hard problem though.
f33d5173 20 hours ago [-]
What you're describing is a graphical shell. If you want it over the network, we have a protocol for that, it's called X. Misusing a terminal for this is fundamentally pointless.
IshKebab 17 hours ago [-]
Nope. X is too slow to be useful except on local networks, and alternatives like FreeNX or xpra are difficulty and janky to set up. Also X is dying so you really mean something like waypipe or worse (which also jankily failed to run some external command when I last tried it).
But I don't want that anyway. I want something graphical that's actually integrated into the terminal.
Sixels are hilariously inefficient. Think "motion xpm".
ugh123 1 days ago [-]
This could be used on build machines I own where I occasionally need to interact with the desktop and/or browser on the machine and vnc or other desktop sharing is impractical or exposes security issues.
user3939382 21 hours ago [-]
I've been working on the same thing but with a totally different approach. Good work! Keep it up.
serbuvlad 1 days ago [-]
We got Wayland over vt100 escape codes over ssh over tcp before we got a headless Wayland VNC/RDP solution.
beckthompson 1 days ago [-]
Super cool! I also really am glad you added videos and examples in your github repo its nice to get an overview
2 days ago [-]
christophilus 1 days ago [-]
Wow. This is amazing. I have started running a lot of stuff in containers by default for a whole host of reasons, and this may make my workflow even better on the occasions when I want to run a graphical app.
xiphias2 1 days ago [-]
- Can you run a compositor inside a compositor? I'd love to just ssh to a server and run hyprland
- doesTerm.everything run inside tmux with automatic window resizing? I guess not, but it would be cool
mmulet 1 days ago [-]
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.
impoppy 1 days ago [-]
Can it run Doom?
mmulet 1 days ago [-]
It can. GIFs forthcoming.
mmulet 1 days ago [-]
Looks like archive.org is down right now… so I guess we’ll have to wait for GIFS. Sorry:
It is funny but this is what I wished things did when I first started using Linux back in the day. '98-'99 timeframe, then I "learned" better that there was Xorg/X11,etc.
maxglute 1 days ago [-]
Stupid, love it. Occasionally I'll use shaderglass ascii shader on oled screen to play videos with pixel ratio that makes UI unreadable, but it's charming experience.
chaps 1 days ago [-]
Neat! I did a similar project many years ago just to see if I could with ANSI color stuff to animate video in my terminal. Worked really well, but it looked like absolute butt (unlike this project).
Nicely done!
maurya_anand 15 hours ago [-]
Absolute madlad!! Kudos!
mathfailure 23 hours ago [-]
Does running something via Term.everything consume more or less resources, than running that something directly?
mmulet 23 hours ago [-]
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.
watersb 1 days ago [-]
I love this.
I would go for weeks just in a large framebuffer terminal, no GUI running. And I still run some servers that way.
Terminally insanely great!
teknopaul 1 days ago [-]
Someone needs to make bash_completion really trivial to write.
It isn't: and even copy paste is hard.
Clever people write apps that are bash_completion friendly.
If first main arg is bash friendly
mycli myfunc ...
Myour whole cliapp becomes "discoverable" with one tab keystroke that you probably already typed hopefully anyway.
Never need to advertise a new feature.
Deprecate by removing from completion without breaking scripts.
Then _everything_ already is in your cli, because someone already did it.
This is so cool, thanks for sharing! Having this on a Mac would be great but I understand that this might be a huge undertaking :)
mmulet 1 days ago [-]
I definitely want to make a macOS version, but I haven’t even looked into it yet. So, I don’t know the level of hacking required. It definitely doesn’t sound like anything Apple would have an api for, so it would probably be a vnc or accessibility api trick.
krackers 1 days ago [-]
I think there is an API (that was added with sidecar) to create a virtual display. So at best you could retrieve the framebuffer and then display that. I don't think there is an easy exposed way to get per-window information, aside from doing a screencapture (which likely would not work if you also wanted to hide the window).
mmulet 1 days ago [-]
Interesting… do you have a link to the docs? The easiest thing prob would be to set the window to be fullscreen, but on that virtual display. That would accomplish per window screen capture.
krackers 1 days ago [-]
It's a private API CGVirtualDisplay, but mostly well reverse engineered. Here's one example I found of a wrapper library
This is one of those things I'm going to keep in my back pocket for a very specific time I need it for a weird reason.
I love it.
camdroidw 14 hours ago [-]
Some apps you install just out of pure respect, this is one of those. Like I also have eagle view that I never use.
NewUser49 1 days ago [-]
Outstanding project! Keep it up. If it ever gets renamed, consider - Terminal.All, T.All, or TAll.
FergusArgyll 1 days ago [-]
Termin-all was right there
mmulet 1 days ago [-]
The deciding factor was that I just liked using term as a verb.
xarope 24 hours ago [-]
one is required to ask about Gwerm, and why he is not moving... :-P
mmulet 23 hours ago [-]
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.
xarope 15 hours ago [-]
saw your email, thanks! As much as I would want a customized Gwerm-Jörmungandr-ouroboros t-shirt (just a random though!), I think you have already more than earned the kudos with your work, so let me just give my thanks to you for something that brightened my day today.
mmulet 8 hours ago [-]
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 24 hours ago [-]
He is doing okay. Thanks for asking.
rc_kas 22 hours ago [-]
WHAT THE FUACK!? You internet people are genius sometimes
camdroidw 14 hours ago [-]
Going to be a repetitive asshole but guys please remember lesson 1 of marketing for engineers: learn to post videos/screenshot first thing.
Also, I'm lost for words, this is plain awesome.
Koshkin 1 days ago [-]
> in the terminal
A note to myself: this won't work in the text mode.
SkidanovAlex 1 days ago [-]
Isn't the first example (with the cartoon) in text mode?
riddley 1 days ago [-]
Do I need to be using wayland to try this? I'm still on x11.
mmulet 1 days ago [-]
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.
didip 1 days ago [-]
I was about to asked about X11, but ended up learning about Wayland.
Thanks for sharing!
lxe 1 days ago [-]
This is absolutely unhinged and I love everything about it
OhMeadhbh 1 days ago [-]
This will be very useful when it exits beta.
igorhvr 23 hours ago [-]
This is so cool - thank you! I have a very (ahem) useful purpose for this: I use a command line application that calls back to a browser during authentication and that alone prevented me from doing what I needed/wanted from an ssh terminal... I will now happily laugh my ass off as it launches firefox from inside my terminal every time I use it.
komali2 1 days ago [-]
This is an incredibly cool project and you should be proud for building it.
0points 16 hours ago [-]
Love it!
rochak 1 days ago [-]
Wow this is incredible
QuiCasseRien 1 days ago [-]
insane ! but i still wonder for the use case ^^
toomim 20 hours ago [-]
A replacement for X11 window forwarding which has been lost with wayland.
pancsta 1 days ago [-]
Another custom wayland compositor, this one not written in a scripting language.
"I feel like every single day I hear about another terminal file viewer. I say, stop making terminal file viewers because you can just use the file viewer you already have! In your terminal!"
LMAO
babypuncher 1 days ago [-]
Combine this with desktop-tui[1] and say goodbye to graphical desktop managers forever!
Great job! If you tug on this thread long and hard enough, you develop this enough and you get RDP (which you can try via xrdp, GNOME's remoting thing, etc.).
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 days ago [-]
tclover 16 hours ago [-]
I tried recently once again to ditch Windows for Linux. Everything kinda worked, but the MediaTek Wi-Fi drivers were janky and my speed was like 10x slower than it should’ve been. After spending about 10 hours messing around with configs, I realized I was doing literally everything except what I actually wanted to do when I turned on the PC… so I just went back and installed LTSC Windows again.
saghm 13 hours ago [-]
I don't really understand the relevance of this comment to this thread, but since it's here...I remember running into something somewhat similar when trying to dual-boot Windows for something on a machine I already had Linux installed on, and while I can't remember whether it was actually MediaTek or not, I think it might have been. If my recollection is correct, I ended up figuring out that having the wifi configured to 1 Gbps in Windows somehow reverted the wifi to only 100 Mbps in Linux, and the only way for me to fix it was to boot back into Windows and switch it to whatever it had been by default (I think 100 Mbps?). Not sure if this is something you care enough to actually try out or not, but I figured it couldn't hurt to mention!
1 days ago [-]
jrcii 21 hours ago [-]
[dead]
dcreater 1 days ago [-]
[flagged]
colecut 1 days ago [-]
Looks like a nice way to run a gui app on a VM remotely over an ssh connection?
graemep 1 days ago [-]
Because its cool.
vidarh 1 days ago [-]
Why not?
2 days ago [-]
20after4 1 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.
> 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)."
Rendered at 23:19:24 GMT+0000 (Coordinated Universal Time) with Vercel.
I am sure it was a great and fun learning experience.
Well done !
EDIT: nevermind, doing this with Docker seems much easier than I expected [0]. I'll try it tomorrow, I'm curious to see if the proposed solution works on Windows as well.
[0] https://medium.com/@priyamsanodiya340/running-gui-applicatio...
WSL had non-accelerated wayland support at one point in time.
Was it before "most distros"?
I don't understand what you think that amounts to.
Wayland support in Linux-land typically means that the software supports running in your wayland compositor.
Windows famously is not a wayland compositor, no matter how much you try to bend reality.
Sure am glad of the broadband Internet and modern "powerhouse" PCs we have so readily available today. Hell, even the computer most everyone carries in their pocket these days is infinitely more powerful than the average desktop machines of my childhood. :)
[1] https://www.brow.sh/
Thanks for the reminder
But I remember the BB demo and I still remember these catchy s3m modules...
https://aa-project.sourceforge.net/bb/
And, well, not AA, but I still play today tons of text adventures and roguelikes (and BSDgames and such), and my main X environment it's CLI/TUI based except for CWM (Window manager), MPV/MuPDF/NSxiv (images) and djview4 for DJVU files..
your animal brain hardwired to discern the direction of gaze of the eyes facing you (citations appreciated)...
Helps me find the mouse cursor on a big screen if I lose track, even with small parallax angle.
On macOS, I just wiggle the mouse back and forth, and the cursor gets really big, it pops out at you.
I generally don't keep `xeyes` running. But it's a righteous, venerable hack.
I run a ttyd server to get terminal over https, and I have used carbonyl over that to get work done. That's limited to a web browser (to get access to resources not exposed via the public internet), so having full GUI support is very useful
But can it run doom?
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.
I used to write telnet games so I know all about keypress up never coming through. Even with immediate mode (so repeated keys will send repeated key codes while held down) it never tells you when it stops. You have to read the buffer ascii byte by byte. Still, awesome to see. Great work!!!
http://zemljanka.sourceforge.net/cursed/screenshots/
This is pretty much that but supercharged. Definitely really cool to see. Good work!
For example...
It looks like this: https://imgur.com/a/Eq2ToVOObviously no input though, you would have to use xdotool! The main benefit is that you probably already have all these tools installed :)
Modern UI applications are way too tightly coupled for my liking, and difficult to test especially if you don't practice "separation of concerns", e.g. decoupling the app logic from its presentation.
Haven't looked at the full thing but something like this might allow you to write tests for UI apps without actually having the UI backend...
https://github.com/fathyb/carbonyl
P.S. This is very cool btw.
https://github.com/chase/awrit
Another similar thing that I'd been meaning to look into is the RDP remote apps stuff.
Also someone mentioned a cool project like carbonyl. They also mentioned brow.sh which I have heard but they described it in detail so that's another plus when term.everything kind of projects come they drag other cool projects to he foreground
Point 1 of mine may be pure superstition.
How term.everything works on tty I don't know maybe it will be horriblebecause of the resolution thing but still it's a nice direction.
Hopefully supports iPadOS one day.
Absolutely no mouse support though, anyone know of an iPad ssh client with mouse support?
(still working on getting vscode to run smoothly)
Prompt 3 from Panic
Blink terminal for iOS and iPadOS. Ships with vscode support built in too.
The protocol is sort of:
1. I'd like you to display this PNG. Here's the data: ...
2. Ok I've got the data.
3. Ok now display it at this position.
4. Ok now remove it from the screen.
We're talking motion-PNG here. Just think about how awful that is.
I wish someone would add some kind of AV1-over-terminal protocol. That would be actually useful.
The other thing I was going to try was a custom GUI that used normal terminal text for the text of widgets, but Kitty images for the rest. It's quite a hard problem though.
But I don't want that anyway. I want something graphical that's actually integrated into the terminal.
- doesTerm.everything run inside tmux with automatic window resizing? I guess not, but it would be cool
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.
https://news.ycombinator.com/item?id=45203700
Good luck man, you rock
Nicely done!
I would go for weeks just in a large framebuffer terminal, no GUI running. And I still run some servers that way.
Terminally insanely great!
It isn't: and even copy paste is hard. Clever people write apps that are bash_completion friendly.
If first main arg is bash friendly
mycli myfunc ...
Myour whole cliapp becomes "discoverable" with one tab keystroke that you probably already typed hopefully anyway.
Never need to advertise a new feature.
Deprecate by removing from completion without breaking scripts.
Then _everything_ already is in your cli, because someone already did it.
https://github.com/enfp-dev-studio/node-mac-virtual-display/...
I love it.
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.
Also, I'm lost for words, this is plain awesome.
A note to myself: this won't work in the text mode.
Thanks for sharing!
https://github.com/wayland-transpositor/wprs
1: https://github.com/Julien-cpsn/desktop-tui
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)."