A while ago as an experiment I set up a new system and decided to see just how much I could get done without installing a graphical environment. Most of my work happens in Neovim and there are plenty of applications that will do things like play video directly to a framebuffer so it should be pretty straightforward right? Turns out not really. Neovim will run in a kernel VT, but it'll be ... messy. The kernel virtual terminal is only designed to be good enough to use to install a desktop manager or repair your configuration. It's not meant to be used full time. It only supports 16 colors which breaks just about every color scheme out there. It also only supports specially converted pixel fonts, meaning your choices of font size are somewhat restricted, ligatures are a complete no go, you can pretty much forget about nerdfonts (unless you wanna do a lot of work) and the only way to change fonts or font sizes is to use the setfont command which only works if run directly in the terminal as opposed to inside e.g. tmux.
I just kinda used my phone for that. Like I said, not a good experience. Elinks and Links2 are marginally better than the trash fire that is Lynx, and I remember a while ago there was a project that would run Firefox in headless mode and cram its output into a terminal (wish I could remember what it was called), but you're not really gonna get a browser in a terminal no matter what you do
Found it again after a bit of googling. It's called Browsh. Haven't played with it yet (will report back when I do) but from the demo on that github page it seems to work pretty well.
UPDATE: I've tried it out and hooooly craaaaaap this is good. If I didn't know this was running in a terminal I would never have guessed. I would've just assumed it was a novelty browser meant to evoke that style. Smooth scrolling works astonishingly well as does video playback.
Lol, I'm already up and running. It's pretty good, and I can actually use my mouse with it in bash. Protip, it seems very important to use the right window size. It's good enough to do a lot of normal browsing, but openstreetmap understandably had broken controls. The only local issue is that I can't see what I'm entering into the URL bar.
It's also designed to run distributed, so you can use shitty bandwidth between a rendering machine and the display machine. I should try fitting it into a radio channel or phone connection or something, haha. I also wonder if it could be adapted to work with Tor Browser.
You can use fbterm if you want to use TTF fonts. It even works with nerdfonts, although the rendering is not quite right. It does support 256 colors, although the way it implements colors makes it a pain to use.
Any good terminal emulator has them. Personally I use Konsole, but I'd be remiss if I didn't mention Neovide which supports them as well. It's a bit like a terminal emulator that can only run Neovim and has some Neovim-specific settings and integration (e.g. change window opacity with a Vim command, animated scrolling, plus that funky little animated cursor effect you can see on the website), and as a bonus it supports Windows and MacOS if you're a heathen
improvable, also wayland problem isn't fundamental, is the slowness to merge new protocols, wlroots, for example, add protocols that aren't approved in the wayland gitlab to make it work better, so... third option is wayland, with protocols waiting for approval(that can be updated later if the protocol changes idk)
also nvidia, but that can't be fixed with a third option anyway
to be fair people need to read the gitlab discutions, the devs there aren't approving protocol just because the sake of it, is really hard to make things work securely and on every plataform, also, there things that really don't need a protocol to work, look at the QT handoff that fixes an issue that even on xorg wasn't fixed, and without needing a new protocol
other than that, certaing things like the tearing could have being merged earlier lol