Captura de tela do X de tty

15

Usando o Xvfb, posso iniciar um aplicativo e fazer uma captura de tela.

O que estou pensando é como capturar a partir de uma sessão X (inativa) existente.

Diga de tty ou acima de ssh.

Pelo que entendi, as janelas não estão mapeadas e não existem para preservar recursos. Existe alguma ferramenta que pode mapear janelas, áreas de trabalho, etc, existentes em um gerenciador de janelas virtual e dar uma olhada?

Ou pode-se usar libx11e criar um snap usando XShmCreateImageou similar?

Runium
fonte
2
É o xwd -root | convert - /tmp/image.jpgque você está procurando?
jippie
3
@ippie: Talvez. O problema é que, como as janelas não são mapeadas, não há nada para o xwd despejar - resultando em imagem em preto. (Tente esse comando de ie tty1 xwd -display :0 -root | convert xwd:- /tmp/0.png)
Runium 8/12/12
sem saber o que você quer dizer com 'não mapeada'
jippie
4
@ippie: Eles não residem na memória. Pelo que entendi: quando você está no seu espaço de trabalho - ele está ativo - os pixels são mapeados na memória para a GPU processar e renderizar na tela. Quando o espaço de trabalho é alternado ou encerrado (ou seja, por Ctrl-Alt-F1), esses mapas não são mapeados (para liberar recursos) - portanto, não há nada no "buffer de exibição" - e fornece uma imagem em preto.
Runium
Entendo o que você quer dizer, thnx pela explicação. Porém, não sei a resposta neste caso.
jippie

Respostas:

7

Nós podemos "ativar" o X tty manualmente a partir da linha de comando, sem ctrl-alt-F (x).

Se X estiver no tty 7, e você fizer login em um terminal de texto

chvt 7 ; DISPLAY=0.0 xwd -root > screendump.xwd ; chvt 1

No entanto, xhost + localhost deve ser um problema na xsession, caso contrário, o xwd não pode se conectar ao servidor x.

Isso permite que você faça isso a partir da sessão ssh.

PS: Em teoria, com o MTD , deve ser possível capturar a tela da memória da placa de vídeo. Assim, sem primeiro "acordar" a sessão X.

John Siu
fonte
Obrigado por um bom post. Eu estou olhando para isso. Um dos meus principais problemas é que eu sou um velho windows'er e tenho alguns problemas para entender como tudo é tricotado. Servidor X, gerenciador de janelas X, acesso e composição. Mas chegando lá.
Runium
@Sukminder Você tem dificuldade em configurar isso ou precisa de mais instruções sobre isso?
precisa