Bagaimana saya bisa mengambil screenshot layar login?

31

Bagaimana saya bisa mengambil screenshot layar login?

Saya tidak ingin membuat ulang instalasi Ubuntu saya di mesin virtual.

ændrük
sumber
1
Hal pertama yang akan saya cari adalah sesuatu yang menangkap output X. Pencarian untuk "screenshot xserver" mengarahkan saya ke jawaban ini di Linuxquestions.org .
Lekensteyn
Diskusi terkait ini mungkin relevan: superuser.com/q/290432/120246
Waldir Leoncio
Saya telah berbagi skrip untuk melakukan ini, dalam askubuntu.com/questions/177067/…
Nafis Ahmad

Jawaban:

17

Blog ini mungkin bermanfaat: http://ptspts.blogspot.com/2010/02/how-to-create-screen-shot-of-gdm-login.html

Instal ImageMagick untuk konversi format file gambar di bawah:

sudo apt-get install imagemagick

Buat skrip pembantu:

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

Pastikan layar login Anda aktif (logout atau reboot mesin, dan tunggu sampai Anda melihat layar login). Masuk ke mode teks (dengan menekan Ctrl-Alt-F1), atau menggunakan SSH. Buat tangkapan layar dengan menjalankan

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

Anda dapat masuk sekarang (dengan menekan Ctrl-AltF7 terlebih dahulu untuk kembali ke layar login GDM). Ubah tangkapan layar menjadi JPEG dan / atau PNG:

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

Lihat tangkapan layar di penampil gambar favorit Anda.

Niroshan
sumber
4
Saya akhirnya menggunakan sudo sh -c 'sleep 5s; xwd -display :0 -root | convert - screenshot.png'dari konsol virtual dan beralih ke layar login selama 5 detik tidur.
ændrük
3
Saya mengubah ini untuk lightdm. $ echo 'DISPLAY =: 0 XAUTHORITY = / var / run / lightdm / root /: 0 xwd -root'> /tmp/shot.sh
popey
11

Untuk 11.10 dan Lightdm dan yang lebih baru

Anda dapat mencoba menjalankannya unity-greeter --test-modedi terminal. Ini menampilkan layar login dalam sesi. Anda kemudian dapat mengambil screenshot layar login seperti yang biasa Anda lakukan dengan aplikasi lain.

masukkan deskripsi gambar di sini

jokerdino
sumber
tapi itu terlalu umum, modifikasi apa pun tidak dapat dilihat. apakah ada cara untuk menguji modifikasi saat ini?
Ubuntuser
@Ubuntuser Bukan yang saya tahu. Modifikasi apa yang Anda uji?
jokerdino
saya sedang menguji pembaca sidik jari. pada layar login dan layar kunci yang ditampilkan dengan baik. saya ingin mengambil screenshot keduanya.
Ubuntuser
@ Unbuntuser Saya menduga modifikasi yang Anda buat memengaruhi lightdm secara langsung dan bukan pada Unity-greeter? Saya tidak yakin. Saya hanya berspekulasi. Anda mungkin ingin mengajukan pertanyaan baru ..
jokerdino
8

Anda dapat mencoba ini:

gnome-screenshot -d 10

Anda tidak perlu menginstal apa pun cukup masukkan perintah dan kunci layar, layar akan ditembak dalam 10 detik setelah perintah dijalankan.

Terlebih lagi .. perintah akan mengunci layar, menyalin tangkapan layar ke clipboard dan membuka kunci layar lagi. Semuanya dengan sendirinya.

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

 masukkan deskripsi gambar di sini

Mahmoud S. Marwad
sumber
3
Sejauh ini, ini adalah solusi termudah yang saya temukan.
Caustic
7

Untuk Ubuntu 14.04

Jawaban di atas tidak bekerja untuk saya di Ubuntu 14.04 - Saya mencari-cari dan menemukan ini berfungsi.

  1. Instal ImageMagick

    sudo apt-get install imagemagick
    
  2. Buat file di direktori home Anda yang shot.shdiutamakan di folder home Anda dan rekatkan kode berikut di dalamnya:

    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. Jadikan itu dapat dieksekusi

    sudo chmod +x shot.sh
    
  4. Logout dari sistem. Tekan Ctrl+ Alt+ F1untuk pergi ke konsol (tty1) dan masuk. Jalankan skrip menggunakan perintah ini:

    sudo ./shot.sh
    

Ini akan membawa Anda kembali ke antarmuka grafis layar login (chvt 7) dan setelah lima detik ia akan mengambil dan menyimpan tangkapan layar di direktori home Anda dengan nama file screenshot.png.


Ini milik saya:

masukkan deskripsi gambar di sini

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

Parto
sumber
Saya dapat mengonfirmasi skrip shell ini masih berfungsi di Ubuntu 18.10 Cosmic Cuttlefish dengan Unity 7.5.0. Saya dapat mengambil screenshot dengan sukses dalam satu percobaan. @Parto terima kasih.
Ade Malsasa Akbar
6

Ketikkan ini di terminal:

dm-tool add-nested-seat --fullscreen

Itu dia! ambil tangkapan layar seperti biasa

Tekan Alt + F4 untuk menutup jendela layar penuh layar login Anda

seorang teman
sumber
Itu cantik sekali! Jenius!
Anwar
Saya juga dapat mengkonfirmasi trik ini berfungsi dengan baik di Ubuntu 18.10. Saya pikir trik ini lebih mudah dan lebih cepat daripada skrip shell. Terima kasih @ teman.
Ade Malsasa Akbar
2

Hanya ingin mencatat bahwa saya memiliki banyak masalah melakukan ini di Ubuntu 10,04 LTS dengan ini - inilah solusi saya:

Saya menggunakan mesin A, dan saya masuk ke mesin B melalui 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:~$ 

Kemudian, saya melanjutkan dengan beberapa upaya untuk mengambil tangkapan layar, yang semuanya gagal. Masalahnya dapat dikurangi xwininfomenjadi tidak dapat menyelidiki kondisi jendela:

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'

Nah, ternyata untuk beberapa alasan, permohonan yang benar untuk penargetan X-windows melalui ssh adalah DISPLAY=:0.0 sudo xwininfo ...- yaitu, DISPLAY=:0.0variabel lingkungan menjadi yang pertama; yang sudopergi kedua - dan kemudian perintah X yang sesuai:

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

Sekarang kita tahu xwininfobisa menyelidiki keadaan, juga tidak ada masalah dengan menangkap tangkapan layar melalui xwd:

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

Saya mengedit "/ etc / mdm / Init / Default" dan menambahkan:

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

sebelum baris dengan "keluar 0".

Lain kali saya masuk, saya menghitung sampai lima, berbunyi bip, dan saya mendapat tangkapan layar di "/ root".

Ikem Krueger
sumber