Other Image/video/mouse capabilities of the virtual console?

In Linux's virtual console it's possible to use primitive image/video capabilities without starting X, using the framebuffer with tools like fbgs and fbi. These features are used extensively in programs like Terminology[1], a terminal emulator that can replace the Linux default virtual console with one that allows for more fonts (like ttf), more text colors, graphical components (like a tabbar or a scrollbar), image/video capabilities, mouse support and more.

My question: is it possible to do the same in freeBSD? Namely, using the mouse cursor, images and video in console applications without X (or Wayland, etc.). By console applications I mean programs with curses-like interfaces, like ranger, a file manager that displays image previews in the console.

My goal with this: I think it'd be fun to see how far one can go without using X or similar software for graphics, and want to make the (FOSS) tools needed cover some needs that aren't covered by the console applications I know. I'd have to write a comfortable library for making applications that make use of said multimedia capabilities if such library doesn't exist, and populate the environment with alternatives to graphical utilites like image viewer, ebook reader, etc. As a programming language, I was thinking C for the low level parts and Python for the higher level ones, like user-facing programs, so new applications can be developed easily.
This project is in planning stages and I'm very new to the BSDs, so feel free to tell me to look something up that I'm missing.

[1] https://www.enlightenment.org/about-terminology
 
The possibilities must be there, because if not, how the hell would FreeBSD be able to offer a login prompt on a graphic card screen? My guess is that you will find it if you dig deeper in the source code (sorry, I can't help here). But expect it to be very simple/limited like a VGA screen, or whatever video drivers are included into the kernel (my assumption), or that you add yourself into the kernel.

Except for being big on storage space, X does serve a purpose. And you probably would need to implement/duplicate those features yourself. So if you have the disk/memory space, why not use X and a frame buffer in the first place? I do that on a headless PC. It works quite well, right now, and no hassle. Well, if it's for the learning experience, go for it! Maybe after that, you'll be able to develop a better X System.

Dominique.
 
Back
Top