Comment puis-je faire une capture d'écran de l'écran de connexion?

31

Comment puis-je faire une capture d'écran de l'écran de connexion?

Je ne veux pas recréer mon installation Ubuntu dans une machine virtuelle.

ændrük
la source
1
La première chose que je rechercherais est quelque chose qui capture la sortie de X. Une recherche de "capture d'écran xserver" m'amène à cette réponse sur Linuxquestions.org .
Lekensteyn
Cette discussion connexe pourrait être pertinente: superuser.com/q/290432/120246
Waldir Leoncio
J'ai partagé un script pour ce faire, dans ce askubuntu.com/questions/177067/…
Nafis Ahmad

Réponses:

17

Ce blog peut être utile: http://ptspts.blogspot.com/2010/02/how-to-create-screen-shot-of-gdm-login.html

Installez ImageMagick pour la conversion du format de fichier image ci-dessous:

sudo apt-get install imagemagick

Créez un script d'aide:

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

Assurez-vous que votre écran de connexion est actif (déconnectez-vous ou redémarrez la machine et attendez de voir l'écran de connexion). Connectez-vous en mode texte (en appuyant sur Ctrl-Alt-F1) ou en utilisant SSH. Créez la capture d'écran en exécutant

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

Vous pouvez vous connecter maintenant (en appuyant d'abord sur Ctrl-AltF7 pour revenir à l'écran de connexion GDM). Convertissez la capture d'écran en JPEG et / ou PNG:

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

Affichez la capture d'écran dans votre visionneuse d'images préférée.

Niroshan
la source
4
J'ai fini par utiliser à sudo sh -c 'sleep 5s; xwd -display :0 -root | convert - screenshot.png'partir d'une console virtuelle et passer à l'écran de connexion pendant le sommeil de 5 secondes.
ændrük
3
J'ai modifié cela pour lightdm. $ echo 'DISPLAY =: 0 XAUTHORITY = / var / run / lightdm / root /: 0 xwd -root'> /tmp/shot.sh
popey
11

Pour 11.10 et Lightdm et versions ultérieures

Vous pouvez essayer de courir unity-greeter --test-modedans un terminal. Il affiche l'écran de connexion dans la session. Vous pouvez ensuite prendre une capture d'écran de l'écran de connexion comme vous le faites normalement avec toute autre application.

entrez la description de l'image ici

jokerdino
la source
mais c'est trop générique, aucune modification n'est visible. existe-t-il un moyen de tester les modifications actuelles?
Ubuntuser
@Ubuntuser Pas que je sache. Pour quelle modification testez-vous?
jokerdino
je teste le lecteur d'empreintes digitales. sur l'écran de connexion et l'écran de verrouillage, il s'affiche bien. je veux prendre une capture d'écran des deux.
Ubuntuser
@Ubuntuser Je suppose que les modifications que vous avez apportées affectent directement le lightdm et pas l'Unity-greeter? Je ne suis pas sûr. Je ne fais que spéculer. Vous voudrez peut-être poser une nouvelle question ..
jokerdino
8

Vous pouvez essayer ceci:

gnome-screenshot -d 10

vous n'avez pas besoin d'installer quoi que ce soit, entrez simplement la commande et verrouillez l'écran, l'écran sera tourné dans les 10 secondes après l'exécution de la commande.

Encore plus .. la commande verrouillera l'écran, copiera la capture d'écran dans le presse-papiers et déverrouillera à nouveau l'écran. Tout seul.

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

 entrez la description de l'image ici

Mahmoud S. Marwad
la source
3
C'est de loin la solution la plus simple que j'ai trouvée.
Caustic
7

Pour Ubuntu 14.04

Les réponses ci-dessus n'ont pas fonctionné pour moi dans Ubuntu 14.04 - J'ai cherché et trouvé cela qui fonctionnait.

  1. Installer ImageMagick

    sudo apt-get install imagemagick
    
  2. Créez un fichier dans votre répertoire personnel nommé de shot.shpréférence dans votre dossier personnel et collez-y le code suivant:

    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. Rendez-le exécutable

    sudo chmod +x shot.sh
    
  4. Déconnexion du système. Appuyez sur Ctrl+ Alt+ F1pour accéder à la console (tty1) et connectez-vous. Exécutez le script à l'aide de cette commande:

    sudo ./shot.sh
    

Il vous ramènera à l'interface graphique de l'écran de connexion (chvt 7) et après cinq secondes, il faudra et enregistrer la capture d'écran dans votre répertoire personnel avec un nom de fichier screenshot.png.


Voilà le mien:

entrez la description de l'image ici

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

Parto
la source
Je peux confirmer que ce script shell fonctionne toujours sur Ubuntu 18.10 Cosmic Cuttlefish avec Unity 7.5.0. Je peux prendre une capture d'écran avec succès en une seule fois. Merci @Parto.
Ade Malsasa Akbar
6

Tapez ceci dans un terminal:

dm-tool add-nested-seat --fullscreen

C'est ça! prendre une capture d'écran comme d'habitude

Appuyez sur Alt + F4 pour fermer la fenêtre plein écran de votre écran de connexion

un ami
la source
Voilà une beauté! Génie!
Anwar
Je peux également confirmer que cette astuce fonctionne parfaitement sur Ubuntu 18.10. Je pense que cette astuce est plus facile et plus rapide que le script shell. Merci @afriend.
Ade Malsasa Akbar
2

Je voulais juste noter que j'ai eu beaucoup de problèmes en faisant cela sur Ubuntu 10.04 LTS avec ceci - voici ma solution:

Je suis sur la machine A et je me connecte à la machine B via 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:~$ 

Ensuite, je procède à plusieurs tentatives de capture d'écran, qui ont toutes échoué. Le problème peut être réduit à l' xwininfoimpossibilité de sonder l'état de la fenêtre:

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'

Eh bien, il s'avère que pour une raison quelconque, l'invocation correcte pour cibler les fenêtres X via ssh est DISPLAY=:0.0 sudo xwininfo ...- c'est-à-dire que la DISPLAY=:0.0variable d'environnement passe en premier; le sudova secondes - et ensuite la commande X correspondant:

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

Maintenant que nous savons qu'il xwininfopeut sonder l'état, il n'y a également aucun problème avec la capture d'écran via xwd:

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

J'ai édité "/ etc / mdm / Init / Default" et ajouté:

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

avant la ligne avec "sortie 0".

La prochaine fois que je me connecte, je compte jusqu'à cinq, bip, et j'ai ma capture d'écran dans "/ root".

Ikem Krueger
la source