Os "consoles emulados" são específicos do sistema, como você entende com sua referência a fbdev
. Além disso, eles são geralmente integrados ao kernel, então tentar modificá-los diretamente exigiria a modificação do kernel, o que certamente é mais “exagero” do que ficar com o X.
Você poderia usar fbdev diretamente ou escrever algo baseado em SDL, como Thomas Dickey sugere, mas, como ele disse, nenhum dos trabalhos necessários foi feito, e a quantidade de trabalho que representa não deve ser subestimada.
Mas enquanto a maioria dos ambientes de desktop são bastante pesados, o próprio X não é (por nenhum padrão remotamente moderno). Se você tiver um aplicativo baseado principalmente em texto, mas precisar colocar uma imagem de vez em quando, considere usar X sem um ambiente de área de trabalho. Como? Use startx
ou um script personalizado para iniciar o servidor X e um xterm
(ou seu emulador de terminal de escolha), em tela cheia, sem gerenciador de janelas (ou encontre um dos WMs ultra-leves alternativos). Esconda o cursor do mouse se quiser. Então, de dentro do seu programa em modo texto, você pode iniciar e parar os clientes X leves que exibem imagens em locais especificados na tela e removê-los sob o controle do programa. Você pode redimensionar o xterm
ou apenas acomodar o fato de que parte da sua tela de texto será obscurecida. Claro, há um número ilimitado de variações sobre este tema, mas você tem a idéia.
Eu costumava usar X em máquinas Unix com menos de 4Mb de RAM (não Gb), então não é necessário que o X seja inchado. Como um efeito secundário benéfico, você ganha portabilidade de plataforma (você pode potencialmente direcionar qualquer coisa com um servidor X) e a capacidade de executar remotamente.