Captura de pantalla de X de tty

15

Usando Xvfb puedo iniciar una aplicación y tomar una captura de pantalla.

Lo que me pregunto es cómo capturar desde una sesión X existente (inactiva).

Decir desde tty o sobre ssh.

Por lo que entiendo, las ventanas no están mapeadas y no existen para preservar los recursos. ¿Hay alguna herramienta que pueda asignar ventanas existentes, espacios de trabajo, etc. en un administrador de ventanas virtual y tomar un chasquido?

¿O puede uno usar libx11y crear un complemento usando XShmCreateImageo similar?

Runium
fuente
2
¿Es xwd -root | convert - /tmp/image.jpglo que estás buscando?
jippie
3
@jippie: Quizás. El problema es que a medida que las ventanas no están asignadas, xwd no tiene nada que volcar, lo que resulta en una imagen negra. (Pruebe ese comando, es decir, tty1 xwd -display :0 -root | convert xwd:- /tmp/0.png)
Runium
inseguro de lo que quieres decir con 'sin asignar'
jippie
44
@jippie: No residen en la memoria. Según tengo entendido: cuando está en su espacio de trabajo, está activo, los píxeles se asignan en la memoria para que la GPU los procese y procese en la pantalla. Cuando se cambia o sale del espacio de trabajo (es decir, con Ctrl-Alt-F1), estos mapas no están asignados (para liberar recursos), por lo tanto, no hay nada en el "búfer de visualización", y proporciona una imagen en negro.
Runium
Ya veo lo que quieres decir, gracias por la explicación. Sin embargo, no sé la respuesta en este caso.
jippie

Respuestas:

7

Podemos "encender" el X tty manualmente desde la línea de comandos, sin ctrl-alt-F (x).

Si X está en tty 7, e inicia sesión en un terminal de texto

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

Sin embargo, xhost + localhost debe emitirse dentro de la xsession, de lo contrario, xwd no puede conectarse al servidor x.

Esto le permite hacerlo desde la sesión ssh.

PD: En teoría, con MTD , debería ser posible hacer capturas de pantalla desde la memoria de la tarjeta de video. Así, sin primero "despertar" la sesión X.

John Siu
fuente
Gracias por un buen post. Lo estoy investigando. Uno de mis principales problemas es que soy un viejo windows'er y tengo algunos problemas para comprender cómo se entrelaza todo. Servidor X, administrador de ventanas X, acceso y composición. Pero llegar allí.
Runium
@Sukminder ¿Tiene dificultades para configurar esto o necesita más instrucciones al respecto?
John Siu