¿Cómo puedo tomar una captura de pantalla de la pantalla de inicio de sesión?

31

¿Cómo puedo tomar una captura de pantalla de la pantalla de inicio de sesión?

No quiero recrear mi instalación de Ubuntu en una máquina virtual.

ændrük
fuente
1
Lo primero que buscaría es algo que capture la salida de X. Una búsqueda de "captura de pantalla xserver" me lleva a esta respuesta en Linuxquestions.org .
Lekensteyn
Esta discusión relacionada podría ser relevante: superuser.com/q/290432/120246
Waldir Leoncio
He compartido un script para hacer esto, en este askubuntu.com/questions/177067/…
Nafis Ahmad

Respuestas:

17

Este blog puede ser útil: http://ptspts.blogspot.com/2010/02/how-to-create-screen-shot-of-gdm-login.html

Instale ImageMagick para la conversión de formato de archivo de imagen a continuación:

sudo apt-get install imagemagick

Crea un script de ayuda:

echo 'DISPLAY=:0 XAUTHORITY=/var/lib/gdm/:0.Xauth xwd -root' >/tmp/shot.sh

Asegúrese de que su pantalla de inicio de sesión esté activa (cierre sesión o reinicie la máquina y espere hasta que vea la pantalla de inicio de sesión). Inicie sesión en modo texto (presionando Ctrl-Alt-F1), o usando SSH. Crea la captura de pantalla ejecutando

sudo bash /tmp/shot.sh >/tmp/shot.xwd

Puede iniciar sesión ahora (presionando Ctrl-AltF7 primero para volver a la pantalla de inicio de sesión de GDM). Convierta la captura de pantalla a JPEG y / o PNG:

convert -quality 50 /tmp/shot.xwd /tmp/shot.jpg
convert /tmp/shot.xwd /tmp/shot.png

Vea la captura de pantalla en su visor de imágenes favorito.

Niroshan
fuente
44
Terminé usando sudo sh -c 'sleep 5s; xwd -display :0 -root | convert - screenshot.png'desde una consola virtual y cambiando a la pantalla de inicio de sesión durante el sueño de 5 segundos.
ændrük
3
Ajusté esto para lightdm. $ echo 'DISPLAY =: 0 XAUTHORITY = / var / run / lightdm / root /: 0 xwd -root'> /tmp/shot.sh
popey
11

Para 11.10 y Lightdm y posterior

Puedes intentar correr unity-greeter --test-modeen una terminal. Muestra la pantalla de inicio de sesión dentro de la sesión. Luego puede tomar una captura de pantalla de la pantalla de inicio de sesión como lo hace normalmente con cualquier otra aplicación.

ingrese la descripción de la imagen aquí

jokerdino
fuente
pero eso es demasiado genérico, no se pueden ver modificaciones. ¿Hay alguna forma de probar las modificaciones actuales?
Ubuntuser
@Ubuntuser No que yo sepa. ¿Qué modificación estás probando?
jokerdino
Estoy probando el lector de huellas digitales. en la pantalla de inicio de sesión y la pantalla de bloqueo se muestra muy bien. Quiero tomar una captura de pantalla de ambos.
Ubuntuser
@Ubuntuser ¿Supongo que las modificaciones que hiciste afectan directamente a lightdm y no a Unity-greeter? No estoy seguro. Solo estoy especulando. Es posible que desee hacer una nueva pregunta ..
jokerdino
8

Puedes probar esto:

gnome-screenshot -d 10

no necesita instalar nada, solo ingrese el comando y bloquee la pantalla, la pantalla se disparará dentro de los 10 segundos posteriores a la ejecución del comando.

Aún más ... el comando bloqueará la pantalla, copiará la captura de pantalla al portapapeles y desbloqueará la pantalla nuevamente. Todo por sí mismo.

gnome-screensaver-command -l && sleep 2 && gnome-screenshot -c && loginctl unlock-session

 ingrese la descripción de la imagen aquí

Mahmoud S. Marwad
fuente
3
Esta es, con mucho, la solución más fácil que encontré.
Cáustico
7

Para Ubuntu 14.04

Las respuestas anteriores no me funcionaron en Ubuntu 14.04: busqué y encontré esto que funciona.

  1. Instalar ImageMagick

    sudo apt-get install imagemagick
    
  2. Cree un archivo en su directorio de inicio llamado shot.shpreferiblemente en su carpeta de inicio y pegue el siguiente código dentro de él:

    chvt 7;
    sleep 5s;
    DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 xwd -root -out ~/screenshot.xwd;
    convert ~/screenshot.xwd ~/screenshot.png;
    rm ~/screenshot.xwd
    
  3. Hazlo ejecutable

    sudo chmod +x shot.sh
    
  4. Cierre de sesión del sistema. Presione Ctrl+ Alt+ F1para ir a la consola (tty1) e iniciar sesión. Ejecute el script con este comando:

    sudo ./shot.sh
    

Le llevará de vuelta a la interfaz gráfica de la pantalla de inicio de sesión (chvt 7) y después de cinco segundos tomará y guardará la captura de pantalla en su directorio de inicio con un nombre de archivo screenshot.png.


Aquí está el mío:

ingrese la descripción de la imagen aquí

Fuente: http://itsfoss.com/screenshot-login-screen-ubuntu-linux/

Parto
fuente
Puedo confirmar que este script de shell todavía funciona en Ubuntu 18.10 Cosmic Cuttlefish con Unity 7.5.0. Puedo tomar una captura de pantalla con éxito en un intento. Gracias @Parto.
Ade Malsasa Akbar
6

Escriba esto en una terminal:

dm-tool add-nested-seat --fullscreen

¡Eso es! tomar una captura de pantalla como de costumbre

Presione Alt + F4 para cerrar la ventana de pantalla completa de su pantalla de inicio de sesión

un amigo
fuente
Eso es una belleza! ¡Genio!
Anwar
También puedo confirmar que este truco funciona perfectamente en Ubuntu 18.10. Creo que este truco es más fácil y rápido que el script de shell. Gracias @afriend.
Ade Malsasa Akbar
2

Solo quería señalar que tuve un montón de problemas al hacer esto en Ubuntu 10.04 LTS con esto: esta es mi solución:

Estoy en la máquina A e inicio sesión en la máquina B a través de ssh:

myusername@pcA:~$ ssh pcB
myusername@pcB's password: 
Linux pcB 2.6.32-44-generic #98-Ubuntu SMP Mon Sep 24 17:32:45 UTC 2012 i686 GNU/Linux
Ubuntu 10.04.4 LTS

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

myusername@pcB:~$ 

Luego, procedo con varios intentos de capturar la captura de pantalla, y todos fallaron. El problema se puede reducir a xwininfono poder investigar el estado de la ventana:

myusername@pcB:~$  xwininfo
xwininfo:  unable to open display ''

myusername@pcB:~$ sudo xwininfo
[sudo] password for myusername: 
xwininfo:  unable to open display ''

myusername@pcB:~$ DISPLAY=:0.0 xwininfo
No protocol specified
xwininfo:  unable to open display ':0.0'

myusername@pcB:~$ DISPLAY=:0 xwininfo
No protocol specified
xwininfo:  unable to open display ':0'

Bueno, resulta que por alguna razón, la invocación correcta para apuntar a X-windows a través de ssh es DISPLAY=:0.0 sudo xwininfo ..., es decir, la DISPLAY=:0.0variable de entorno va primero; el sudova segundo, y luego el comando X correspondiente:

myusername@pcB:~$ DISPLAY=:0 sudo xwininfo

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

myusername@pcB:~$ DISPLAY=:0.0 sudo xwininfo -root

xwininfo: Window id: 0x109 (the root window) (has no name)

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1366
  Height: 768
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1366x768+0+0

Ahora que sabemos que xwininfopuede sondear el estado, tampoco hay ningún problema con la captura de la captura de pantalla a través de xwd:

myusername@pcB:~$ DISPLAY=:0.0 sudo xwd -root > /tmp/shot.xwd
sdaau
fuente
0

Edité "/ etc / mdm / Init / Default" y agregué:

scrot -d 5 -e 'mv $f /root' &

antes de la línea con "salida 0".

La próxima vez que inicio sesión, cuento hasta cinco, pito, y obtuve mi captura de pantalla en "/ root".

Ikem Krueger
fuente