Live data from Hacker News

Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

github.com

81–90 of 99 posts

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#81
post #45
post #38

Given the quality of text (or the requirement to zoom) I'm not sure what the fuss is about. It looks abysmal, and having to zoom all the time is a habit I am glad we got rid of due to higher resolutions. Though still existing on mobile devices it is also user-friendlier to zoom there, and the reason for the feature is the device is more mobile. You could already run a browser in a framebuffer for ages. Which means yo…

I'm actually in the middle of a complete rewrite (I was hoping to stay under the radar until then). I'm ditching X11 and ffmpeg and actually rendering real text as a layer over the TTY blocks. See: https://github.com/tombh/texttop/blob/webext-rewrite/webext/...

Can't edit my post anymore but I just tried Texttop out. I ran it according to your Quickstart guide in Docker as you suggested. In Terminal the keybinds didn't work, in iTerm zooming at least works. Whilst I was zooming in, I noticed my CPU fans suddenly went crazy on my MBP compared to Chrome RDP. The only time that happens on RDP is when I play a game remotely, or watch a video remotely. Htop confirmed it was iTerm.App. I didn't see either of these terminals in your known to work list either.

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#82
post #79

Earlier quoted context omitted.

Ah yes, that was a big hurdle, but that's actually fully supported now with DOM Ranges - basically codified selection boxes, those regions that highlight when you select with a mouse. There's still some extra leg work though to render whitespace in the same way as the browser.

I did that to if you are referring to getBoundingClientRect & getClientRects, before I switched over to the render tree. It does work perfecly for single line text but not multi line text. The rect will become larger than the text and you won't know where each line starts. Well that is what I remember happening.

[deleted]

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#83
post #59

Earlier quoted context omitted.

I'm just expressing how I don't see it useful (I'm curious to hear use cases though). That doesn't mean I want nobody in the world to find it useful. That's up to each and every one of us. Heck, perhaps it can be improved, who knows. These projects I mentioned have already (partly) tackled the latency issues. RDP and NX suffers far less from latency issues than X11 and VNC. As for framebuffer, see [1] [2] for example…

I have a use case! I travel with my smartphone (and leave my desktop at home), but I receive links to huge files via document sharing sites (gigabytes and up - not the medium I would choose, but the choice isn't mine: the clients like those, for some strange reason). The links expire quickly, are not downloadable through console browsers (JS/images/CAPTCHAs), and I might not even have enough space and/or bandwidth to…

Right so, if the previous options of running UI apps remotely don't work, you'd need a web browser with JPEG, PNG, JS and Linux framebuffer support.

Dillo and Lynx are quick. Dillo last release was 2 years ago. Lynx is in active development. They don't have JS support though.

Links has support for JPEG/PNG and Linux framebuffer but somewhere in '00s they removed JS support (it was an unmaintained port of spidermonkey). ELinks port which also supported all 4 features is dead.

There's surf and uzbl. I don't know the latter much, former is used with keyboard shortcuts only. AFAIK these don't use the Linux framebuffer. Dooble is a lightweight web browser, but no Linux framebuffer support.

I question wanting JS 24/7 locally. You can also just not load all these JS nonsense and have a quicker experience (with NoScript or uMatrix). Same with loading all images. You could use a proxy to downsize JPEG pictures as well. The very first Opera versions on mobile phones did the same thing. They didn't even serve HTML! They spoke a different language with the browser. I'm not sure if Vivaldi (formerly Opera) still employs this feature. But you need to remember there's a market for this in upcoming economies where mobile bandwidth is scarce.

Sources used [1] [2]

[1] https://en.wikipedia.org/wiki/Comparison_of_web_browsers

[2] https://en.wikipedia.org/wiki/List_of_web_browsers_for_Unix_...

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#84
post #79

Earlier quoted context omitted.

Ah yes, that was a big hurdle, but that's actually fully supported now with DOM Ranges - basically codified selection boxes, those regions that highlight when you select with a mouse. There's still some extra leg work though to render whitespace in the same way as the browser.

I did that to if you are referring to getBoundingClientRect & getClientRects, before I switched over to the render tree. It does work perfecly for single line text but not multi line text. The rect will become larger than the text and you won't know where each line starts. Well that is what I remember happening.

Oh! Sorry I just assumed they weren't around then. That's really interesting to know. Hey could I have a chat with somewhere, IM, or something? Would be really good to hear your story with this.

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#85
post #81
post #45

Earlier quoted context omitted.

I'm actually in the middle of a complete rewrite (I was hoping to stay under the radar until then). I'm ditching X11 and ffmpeg and actually rendering real text as a layer over the TTY blocks. See: https://github.com/tombh/texttop/blob/webext-rewrite/webext/...

Can't edit my post anymore but I just tried Texttop out. I ran it according to your Quickstart guide in Docker as you suggested. In Terminal the keybinds didn't work, in iTerm zooming at least works. Whilst I was zooming in, I noticed my CPU fans suddenly went crazy on my MBP compared to Chrome RDP. The only time that happens on RDP is when I play a game remotely, or watch a video remotely. Htop confirmed it was iTer…

Thanks for trying. Yes the iTerm keybindings are a known problem. Like I said, I've completely rewritten Texttop from scratch - it's now merely a lightweight Go binary (to receive a websocket and print to STDOUT) and a webextension. So it's significantly more performant.

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#86
post #54

Earlier quoted context omitted.

I did look into that, but it's not as widely supported as the UTF8 half-block.

With many bytes necessary to print just six pixels, it wouldn't be as low-bandwidth, right? On the other hand, how about libcaca? https://en.wikipedia.org/wiki/Libcaca

The TTY "graphics" rendering is actually relatively trivial, it's really just a few lines of JS in my rewrite now. So there's no need for an external rendering lib. Also with the new approach, I'm focussing on real text as the main feature, so you'll actually be able to turn off the colour blocks and just surf the web as raw text, with all the goodness of full CSS rendered, realtime text and JS.

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#87
post #40

Author here. Surprised to see this here as I've been literally spending the last 2 weeks on a complete rewrite from scratch that actually layers REAL text over the blocks. You can get an idea of my approach with this function: https://github.com/tombh/texttop/blob/webext-rewrite/webext/... After the success of hitting the front page here last year, I really wanted to sit down and do this properly. So not only am I wo…

Have you thought about adding sound? Either something like Opus, or... You could do a decomposition of the audio signal and send a small array of {frequency, amplitude} pairs for each frame, then ramp to each new pair as they arrive. If you do this fast enough then you get just enough of the timbre of the original to make a listener think they are hearing the "right" thing for a video they already know. Even with a s…

I've thought about it a little, it seems really hard. But that's a really interesting idea you have there. Are there any docs or blog posts or something you can point me to?

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#88
post #85
post #81

Earlier quoted context omitted.

Can't edit my post anymore but I just tried Texttop out. I ran it according to your Quickstart guide in Docker as you suggested. In Terminal the keybinds didn't work, in iTerm zooming at least works. Whilst I was zooming in, I noticed my CPU fans suddenly went crazy on my MBP compared to Chrome RDP. The only time that happens on RDP is when I play a game remotely, or watch a video remotely. Htop confirmed it was iTer…

Thanks for trying. Yes the iTerm keybindings are a known problem. Like I said, I've completely rewritten Texttop from scratch - it's now merely a lightweight Go binary (to receive a websocket and print to STDOUT) and a webextension. So it's significantly more performant.

Tom, my bad. It seems there is a bug in Docker for Mac which causes high CPU usage [1]. Def made the overheating worse. I'll give it a whirl on a different environment instead.

EDIT: Just tried it on Windows. Is there a terminal you can recommend working on Windows? I tried CMD.exe, Powershell, Bash (WSL / Ubuntu) and Cmder. None worked well.

[1] https://github.com/docker/for-mac/issues/1759

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#89
post #88
post #85

Earlier quoted context omitted.

Thanks for trying. Yes the iTerm keybindings are a known problem. Like I said, I've completely rewritten Texttop from scratch - it's now merely a lightweight Go binary (to receive a websocket and print to STDOUT) and a webextension. So it's significantly more performant.

Tom, my bad. It seems there is a bug in Docker for Mac which causes high CPU usage [1]. Def made the overheating worse. I'll give it a whirl on a different environment instead. EDIT: Just tried it on Windows. Is there a terminal you can recommend working on Windows? I tried CMD.exe, Powershell, Bash (WSL / Ubuntu) and Cmder. None worked well. [1] https://github.com/docker/for-mac/issues/1759

Oh, interesting, I never tried it on Windows. What doesn't work? Everything!? Can you make an Github Issue for it?

Re: Texttop – An interactive X Linux desktop rendered in TTY and streamable over SSH

#90
post #34

Earlier quoted context omitted.

3 kbps is not enough for smooth TTY text-only ssh either...

I've done pretty productive work over much tighter links than that. Think 300bps. One of the systems I'm responsible for currently can only be reached over a 1200bps dialup connection.

But does this work require full refreshes of 80x24 screen or larger?
Post reply on HN