Você não precisa usar uma tela real de tamanho limitado. Crie uma tela virtual do tamanho necessário para mostrar toda a sua saída de uma só vez e, em seguida, despeje essa tela ou terminal. Por exemplo:
$ Xvfb :1 -screen 0 100x4000x24 -noreset &
$ xterm -geometry 10x200 -display :1 -e \
sh -c 'echo $WINDOWID >/tmp/id;ls -l /etc;sleep 99' &
$ DISPLAY=:1 convert x:$(cat /tmp/id) /tmp/out.png
$ identify /tmp/out.png
/tmp/out.png PNG 79x2604 ...
Isso cria uma tela de 100 por 4000 pixels, com um xterm
200 linhas altas.
A variável WINDOWID
é exportada por xterm
e pode ser fornecida ao programa convert
do ImageMagick para copiar a imagem para um arquivo png. O comando identify
mostra que todo o conteúdo xterm
foi capturado, o que não seria o caso da minha tela real de apenas 1080 pixels.