How can I take a screenshot of the login screen?
I do not want to recreate my Ubuntu installation in a virtual machine.
This blog might be helpful: http://ptspts.blogspot.com/2010/02/how-to-create-screen-shot-of-gdm-login.html
Install ImageMagick for the image file format conversion below:
sudo apt-get install imagemagick
Create a helper script:
echo 'DISPLAY=:0 XAUTHORITY=/var/lib/gdm/:0.Xauth xwd -root' >/tmp/shot.sh
Make sure your login screen is active (log out or reboot the machine, and wait until you see the login screen). Log in in text mode (by pressing Ctrl-Alt-F1), or using SSH. Create the screen shot by running
sudo bash /tmp/shot.sh >/tmp/shot.xwd
You can log in now (by pressing Ctrl-AltF7 first to get back to the GDM login screen). Convert the screen shot to JPEG and/or PNG:
convert -quality 50 /tmp/shot.xwd /tmp/shot.jpg convert /tmp/shot.xwd /tmp/shot.png
View the screen shot in your favourite image viewer.
The answers above did not work for me in Ubuntu 14.04 - I searched around and found this that works.
sudo apt-get install imagemagick
Create a file in your home directory named
shot.sh preferably in your home folder and paste the following code inside it:
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
Make it executable
sudo chmod +x shot.sh
Logout of the system. Press Ctrl+Alt+F1 to go to the console (tty1) and login. Run the script using this command:
It will take you back to login screen graphical interface (chvt 7) and after five seconds it will take and save the screenshot in your home directory with a file name
Just wanted to note that I had a bunch of problems doing this on Ubuntu 10.04 LTS with this - here's my solution:
I'm on machine A, and I log on to 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:~$
Then, I proceed with several attempts to grab screenshot, which all failed. The problem can be reduced down to
xwininfo being unable to probe for the window state:
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'
Well, it turns out that for some reason, the correct invocation for targeting X-windows via ssh is
DISPLAY=:0.0 sudo xwininfo ... - that is, the
DISPLAY=:0.0 environment variable goes first; the
sudo goes second - and then the corresponding X command:
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
Now that we know
xwininfo can probe the state, there is also no problem with capturing the screenshot via
myusername@pcB:~$ DISPLAY=:0.0 sudo xwd -root > /tmp/shot.xwd