Hacker News new | past | comments | ask | show | jobs | submit login
Yaft – Yet another framebuffer terminal (github.com/uobikiemukot)
130 points by mcbuilder on Jan 7, 2017 | hide | past | favorite | 19 comments



Yay! This is cool.

I wrote something like this myself a while back: http://41j.com/hterm/

I recommend checking out libvterm (http://www.leonerd.org.uk/code/libvterm/). It abstracts out of lot of the v220/xterm terminal rendering code and is very neat. I'd love to see it get more support.

Also nice to see Sixel support (graphical terminal are fun!).


My programming skills are not advanced enough, to talk about the technical aspect of libvterm. But neovim uses it, and damn, it runs fast and smooth and feels native like any other terminal emulator INSIDE of neovim. Simply great. Hope someone will port it also over to emacs.


The term's not something I've heard a lot, but is a "framebuffer terminal" the thing that engages outside of running a graphical session?

It's kind of neat to see improvements made here if that's the case. Not everyone will make extensive use of this, but having proper support for a lot of modern conveniences is never a bad thing.


Exactly. The Linux console for example only supports a tiny number of colours. Folks use FB terminals for tty* for this reason etc.


> sixel (experimental)

Well hello there. Makes a guy wonder if it would be possible to run a web browser without X.


Retroarch, which provides a pretty graphical config fronted and file browser (more or less) to various programs that use its provided IO capabilities ("cores", implemented as dynamic libraries—mostly game console and computer system emulators, original games, and media-related programs) can run in the kernel's direct rending mode, which is, at least from the user's perspective, kind of like a framebuffer, though with 3d accelleration. If you could find a browser that can be packaged as a dynamic lib, output to a provided opengl interface, and accapt input programmatically, it could probably be ported to Retroarch very quickly by someone familiar with that process, and run without the x window system.


I remember using Awesomiun render to OpenGL, so this could be done.


Check out w3m (which has some graphics support).

There's also Netsurf, I've not used it but it. Looks awesome: http://www.netsurf-browser.org


Sadly neither of those can properly handle the kind of JS a modern site throws at a browser...


Netsurf is working on it by shipping with Duktape. Still very experimental, though.


No, this is true.

I wonder how hard that would be.


It's possible without X. Links (http://links.twibright.com/) did it via framebuffer for years.

Unless you mean in actual text/sixel mode. Then I haven't heard of one.


Links definitely works in text mode, in fact I've only used it that way.


I meant sixel, as in text pretending it's graphics.


Iirc, links do not use sixel but rather a trick of X. Meaning that it can only show images when run within certain terminal emulators (not anything derived from GTK or Qt).


The "trick of X" you speak of is that it figures out X window ID of the terminal, then asks the X server the coordinates of that window, then creates borderless windows at the correct coordinates above that window to show images.

However, in addition to this "trick of X" mode, links also supports rendering its own X window; with proportional fonts and everything; no terminal emulator needed.

However, the graphics system isn't based on X; X is just one backend; it can also render to the Linux framebuffer, so it doesn't even need X11 to be running, it can render full graphics straight in your TTY.


I can't figure out what mkfont_bdf is doing. Converting TTF to what kind of glyph?



tmux is a window manager if I say it is!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: