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...
Thanks for the reminder
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.
This is pretty much that but supercharged. Definitely really cool to see. Good work!
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.
Another similar thing that I'd been meaning to look into is the RDP remote apps stuff.
A note to myself: this won't work in the text mode.
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)
Blink terminal for iOS and iPadOS. Ships with vscode support built in too.
- 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://github.com/fathyb/carbonyl
P.S. This is very cool btw.
Nicely done!
I love it.
https://github.com/enfp-dev-studio/node-mac-virtual-display/...
Thanks for sharing!
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.
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)."