This site is moved to other domain!

You should be automatically redirected in 9 seconds. If not, visit
and update your bookmarks.

Friday, January 9, 2009

Stumble Upon Toolbar
written by: Ukion in
[] [] []

Linux tip: How to take a screenshot without X (GUI), just from console

Don't want to miss a single bit? Subscribe to our RSS Feed!

There are lot of screen-capture tools, but a lot of them are based on X(GUI). Sometimes, when running an X application may interfere with the application you wanted to grab - perhaps a game or even a Linux installer. If you use the venerable ImageMagick import command though, you can grab from an X session via the console(terminal). Simply go to a virtual terminal (Ctrl+Alt+F1 for example) and enter the following:

chvt 7; sleep 2; import -display :0.0 -window root sshot1.png; chvt 1;
The chvt command changes the virtual terminal, and the sleep command gives it a while to redraw the screen. The import command then captures the whole display and saves it to a file before the final chvt command sticks you back in the virtual terminal again. Make sure you type the whole command on one line.

This can even work on Linux installers, many of which leave a console running in the background - just load up a floppy/CD with import and the few libraries it requires for a first-rate run-anywhere screen grabber.

Subscribe to DetectorProDid you enjoy this post? Why not leave a comment below and continue the conversation, or Subscribe to Feed and get articles like this delivered automatically to your Email or feed reader.

Related articles by tags


Anonymous said...

i guess you cold as well use this strategy in a script to make screencasts of CLI sessions!

Anonymous said...

No, this captures X sessions only. The "chvt 7" changes to virtual console number 7, which traditionally has X running on it on most Linux distributions.

If you want to capture command line sessions, try "script".

As an aside, since import takes the display as an argument, do you even need to use chvt at all?

Robert said...

Hi anonymous, I think that the idea of this tip is to capture X on most of Linux distributions from another virtual console. This tip will work also with another virtual console (not just 7).


Anonymous said...

The title, "How to take a screenshot without X . . .", is very misleading. You need to be running X because the the utility called by the script, import, requires X.

Frrom the man page:

import - saves any visible window on an X server and outputs it as an image file.

Sure, you can start it from a VT, but without an X server running you will have nothing to capture. It will not capture a virtual terminal that has no X server.