Como posso tirar uma captura de tela da tela de login?


31

Como posso tirar uma captura de tela da tela de login?

Não quero recriar minha instalação do Ubuntu em uma máquina virtual.


1
A primeira coisa que eu procuraria é algo que captura a saída do X. Uma pesquisa por "screenshot xserver" me leva a essa resposta no Linuxquestions.org .
Lekensteyn

Esta discussão relacionada pode ser relevante: superuser.com/q/290432/120246
Waldir Leoncio

Eu compartilhei um script para fazer isso, neste askubuntu.com/questions/177067/...
Nafis Ahmad

Respostas:


17

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

Instale o ImageMagick para a conversão de formato de arquivo de imagem abaixo:

sudo apt-get install imagemagick

Crie um script auxiliar:

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

Verifique se a tela de login está ativa (efetue logout ou reinicialize a máquina e aguarde até ver a tela de login). Faça logon no modo de texto (pressionando Ctrl-Alt-F1) ou usando SSH. Crie a captura de tela executando

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

Você pode fazer login agora (pressionando Ctrl-AltF7 primeiro para voltar à tela de login do GDM). Converta a captura de tela em JPEG e / ou PNG:

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

Veja a captura de tela no seu visualizador de imagens favorito.


4
Acabei usando sudo sh -c 'sleep 5s; xwd -display :0 -root | convert - screenshot.png'de um console virtual e alternando para a tela de login durante os 5 segundos de suspensão.
ændrük

3
Eu ajustei isso no lightdm. $ Echo 'DISPLAY =: 0 XAUTHORITY = / var / run / LightDM / root /: 0 xwd -root'> /tmp/shot.sh
popey

11

Para 11.10 e Lightdm e posterior

Você pode tentar rodar unity-greeter --test-modeem um terminal. Ele exibe a tela de login dentro da sessão. Você pode tirar uma captura de tela da tela de login, como normalmente faz com qualquer outro aplicativo.

insira a descrição da imagem aqui


mas isso é genérico demais, nenhuma modificação pode ser vista. existe alguma maneira de testar as modificações atuais?
Ubuntuser

@ Ubuntuser Não que eu saiba. Para quais modificações você está testando?
jokerdino

Estou testando o leitor de impressões digitais. na tela de login e na tela de bloqueio, ele exibe bem. Eu quero tirar uma captura de tela de ambos.
Ubuntuser 12/12/12

@ Ubuntuser Eu estou supondo que as modificações que você fez afetam o lightdm diretamente e não o Unity-greeter? Não tenho certeza. Estou apenas especulando. Você pode fazer uma nova pergunta ..
jokerdino

8

Você pode tentar isso:

gnome-screenshot -d 10

você não precisa instalar nada, basta digitar o comando e bloquear a tela, a tela será filmada dentro de 10 segundos após a execução do comando.

Ainda mais .. o comando irá bloquear a tela, copiar a captura de tela para a área de transferência e desbloquear a tela novamente. Tudo por si mesmo.

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

 insira a descrição da imagem aqui


3
Essa é de longe a solução mais fácil que encontrei.
Caustic

7

Para o Ubuntu 14.04

As respostas acima não funcionaram para mim no Ubuntu 14.04 - procurei e encontrei isso que funciona.

  1. Instale o ImageMagick

    sudo apt-get install imagemagick
    
  2. Crie um arquivo em seu diretório pessoal chamado de shot.shpreferência em sua pasta pessoal e cole o seguinte código dentro dele:

    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. Torne executável

    sudo chmod +x shot.sh
    
  4. Logout do sistema. Pressione Ctrl+ Alt+ F1para acessar o console (tty1) e fazer login. Execute o script usando este comando:

    sudo ./shot.sh
    

Você retornará à interface gráfica da tela de login (chvt 7) e, após cinco segundos, a captura de tela em seu diretório pessoal será salva com um nome de arquivo screenshot.png.


Aqui está o meu:

insira a descrição da imagem aqui

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


Posso confirmar que esse script de shell ainda funciona no Ubuntu 18.10 Cosmic Cuttlefish with Unity 7.5.0. Posso tirar uma captura de tela com êxito em uma tentativa. Obrigado @Parto.
Ade Malsasa Akbar 29/09

6

Digite isso em um terminal:

dm-tool add-nested-seat --fullscreen

É isso aí! tire uma captura de tela como de costume

Pressione Alt + F4 para fechar a janela em tela cheia da sua tela de login


Isso é uma beleza! Gênio!
Anwar

Também posso confirmar que esse truque funciona perfeitamente no Ubuntu 18.10. Eu acho que esse truque é mais fácil e rápido do que o shell script. Obrigado @friend.
Ade Malsasa Akbar

2

Só queria observar que tive um monte de problemas ao fazer isso no Ubuntu 10.04 LTS com isso - aqui está minha solução:

Estou na máquina A e faço logon na máquina 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:~$ 

Em seguida, prossigo com várias tentativas de captura de tela, que falharam. O problema pode ser reduzido a xwininfoser incapaz de investigar o estado da janela:

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'

Bem, acontece que, por algum motivo, a chamada correta para direcionar X-windows via ssh é DISPLAY=:0.0 sudo xwininfo ...- ou seja, a DISPLAY=:0.0variável de ambiente vai primeiro; o sudosegundo vai - e então o comando X correspondente:

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

Agora que sabemos que xwininfopodemos analisar o estado, também não há problema em capturar a captura de tela via xwd:

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

0

Editei "/ etc / mdm / Init / Default" e adicionei:

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

antes da linha com "exit 0".

Na próxima vez que eu fizer login, conto até cinco, emite um bipe e recebo a captura de tela em "/ root".

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.