I used to use full-screen consoles (those opened with Ctrl+Alt+F1…F6) actively and have come to an idea that I would like to try decorating it with a "wallpaper" of a sort (a rather dark and monotonous one of course so that it wouldn't decrease readability), perhaps this could look and feel nice (or not, but I need to try). It would even better if I could set different pictures as different console's background (one for Ctrl+Alt+F1, another for Ctrl+Alt+F2 etc).
The fact the consoles have much higher resolution that pure text mode provides suggests that full-fledged graphical mode is used for them and everything is possible. But how?
Best Answer
I'm pretty sure that the Linux console driver does not have this ability built in, however there is an application called
fbterm
which can do this. In order to make background images work, you will also need a utility which can display an image on the framebuffer such asfbi
:fbterm
does not actually read or display background images itself, it expects some other program to set up the background image on the screen before it starts. There are instructions in thefbterm
man page on how to do this usingfbv
, an absolutely antiquated and unsupported utility I couldn't even get to compile on a modern Ubuntu system.fbi
is a much cleaner and nicer image viewer for the framebuffer, but unfortunately does not have the "set it and exit" functionality of the simplerfbv
, and thus interferes withfbterm
if you try to use it directly. However, I was able to come up with an alternative which works:First, you will need to use
fbi
andcat
to display the image you want and then dump it to a "framebuffer raw format" image file. As root, in a framebuffer console, run:(This will display the image for a couple of seconds and then exit, having saved the result in the file
nifty-background.fbimg
. Replacenifty-background.fbimg
andnifty-background.png
with whatever filenames you wish, of course.)The first part of the command waits for 1 second before catting the framebuffer contents to a file. At the same time, the second part (after the &) launches
fbi
to display the image on the framebuffer, so that when the cat command gets around to executing (1 second later), there's an image there to dump. The reason they're in that order is because I found thatfbi
had issues if it wasn't running in the foreground, which means it has to be the last command in the list.From then on, whenever you want to run
fbterm
, you can start it like so (you may want to create a little wrapper script):