It is not actually possible change it easily, maybe you can help with this bug report.
(for the curious, check the source code. Currently, relevant line is 134)
Update: The bug was fixed upstream on 2015-01-28, replacing colons with dashes, which helps. But they didn't take the space out unfortunately.
Ok, found this for X windows:
FVWM Forums • View topic - Thumbnailing a Window on another Viewport
As to why you can't access a window (that is, take a picture of it when it is not on the same desk/page as the current viewport) is because windows that are not on the current page are unmapped. This is true when one changes pages/desks -- the windows are unmapped, and the windows on the current viewport are remapped.
So, I guess that means what I want is impossible? Although there are two workarounds:
- use
xrandr
to increase the virtual size of (each of the four) viewports
This is what works for me - first query to see which output you want, then execute:
$ xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x600 60.0*+
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
$ xrandr --output LVDS1 --panning 1600x768
... see also X/Config/Resolution - Ubuntu Wiki
- Use
xvfb
for virtual render
Got this via x11 - Remote offscreen rendering - Server Fault, also see Xvfb - Wikipedia, the free encyclopedia for examples. This is what worked for me - each command goes in own terminal (as some of them are meant to be services)
# start xvfb as display 1 - note the "screen 0" there refers to "its own" screen 0; should set it to 24-bit color
Xvfb :1 -screen 0 1600x1200x24 -pixdepths 3 -fp /usr/share/fonts/X11/Type1
# start metacity on display 1 (would start gdm, but [Bug #598848: gdm no longer works with xvfb](https://bugs.launchpad.net/bugs/598848)
# needed to we have title bars, and possibility to move windows around
DISPLAY=:1 metacity
# start application (here web-browser arora) again on display 1
DISPLAY=:1 arora
# start vnc server, which will bridge display 1 to port 5900
# note - this command exists, however starts a server in background
x11vnc -display :1 -bg -nopw -listen localhost -xkb
# start vnc viewer on port 5900 - so we can see display 1:
# note also - when vncviewer exits, it also will kill the x11vnc server
vncviewer -FullColor=1 localhost:5900
The problem here is that not all parts of the OS are initialized - so there are no window decoration, and only basic X fonts; although, apps may find their own fonts, as seen below:
xvfb
looks almost ideal to me - since I could basically set up an "invisible" environment, as big as I want, and take screenshots directly from it (using xwd
). The problem is that I cannot have a window on "my" DISPLAY=:0, then switch it to the 'virtual' DISPLAY=:1 for screenshotting, then bring it back to DISPLAY=:0. Then one must set up an application specifically for xvfb
; and if so happens you need more size - then the whole chain above needs to be restarted.
On the other hand, I find working with 4 workspaces and large viewports (shwere the mouse moves you around within a viewport) a bit confusing - then again, can change the size there on the fly and nothing needs to be restarted; and plus I can use any of the usual screenshot tools (but I'd still have to switch viewports).
Needless to say, I'd still love to hear about a possible command line solution that could do this kind of screenshotting in one go :)
Best Answer
The answer is quite similar for each distro. It requires you to use the "delay" feature present in these tools. The delay feature allows you to issue the command to take a screenshot after an interval that you specify. You can set this interval such that, after you have issued the command, you have enough time to bring up the screen you want to capture.
The exact way to set up a delay depends on each distro's default screenshot application. And, as often, you maybe able to do what you want via a GUI or a terminal or keyboard shortcuts.
GNOME/Unity in 12.10
The default tool is Screenshot (aka
gnome-screenshot
if you want to run it from a terminal). So, you would start typingscreenshot
in Unity's Dash to see it appear for you to click on. You'll then see a small window with several options:Some options will be exposed depending on what you choose. If you choose to grab the whole screen, the "Include the window border" and "Apply effect" won't be available.
Set things up as you want. A five second delay is a nice starting point to let you bring up the actual screen you wish to capture. To get things going, click "Take Screenshot". Quickly set up what you want and wait.
You'll hear the sound of an (old-fashioned) camera shutter and a new screen will appear.
In it, you will see:
The default image format is
.png
, which is, in the opinion of some, a more suitable format than.jpg
.Note that the time delay feature of gnome-screenshot is not available if you choose "Select area to grab".
Lubuntu 12.10
The default screenshot capture tool in Lubuntu is called scrot. There is a way to use
scrot
with a time delay that doesn't require using the terminal. But it involves a one time edit of a file calledlubuntu-rc.xml
after backing it up for safety. This file is found in~/.config/openbox
. Go to this subfolder using your file manager, right-click on the file and open it with your favorite text editor. Then search for something like:Where
....
is whatever is currently there between<command>
and</command>
. Replace....
withSave the file and close it.
Go into a terminal and run
openbox --reconfigure
. (You won't see anything happen and you'll get back your prompt if you haven't messed up anything. If you have messed up something, you'll get an error. That's when the back-up comes handy.) Running the command is a necessary step to ensure that your edits tolubuntu-rc.xml
are now active.What you've done by editing
lubuntu-rc.xml
is to askscrot
to-b
).png
format andWhat is described above basically enables you to just hit Prnt Scrn, then do what you want such as open a menu within 5 sec after which
scrot
takes a full window screenshot. It does this silently. Don't expect to hear or see anything.Running
man scrot
from a terminal provides you with more information onscrot
.One can modify the code to take a snap of the active window only by the addition of
-u
and assigning the keybind of Alt+Prnt Scrn to this code.With both Prnt Scrn and Alt+Prnt Scrn, it is possible to add
-q N
to the code where-q
tellsscrot
to save the image with a quality other than the default value ofN
which is 75. A high value will create a higher quality but larger file. According toman scrot
the effect of-q
is dependent on the image format chosen.Xubuntu 12.10
The default screenshot tool in Xubuntu 12.10 is
Xfce4-screenshooter
. It has a GUI that doesn't look too different from that of the GNOME one:As with the GNOME screenshot tool, there are a few options but the delay function is not available with "Select a region".
On clicking
OK
, another window appears with choices about saving the image to a file, copying it to the clipboard, opening it with programs that can manipulate images (as the dropdown shows), and even uploading it to a specific image-hosting service.If one opts to save the image to disk, a regular "Save as" screen appears allowing you to specify the name, file type, and location of the saved format.
man xfce4-screenshooter
has details of the switches available and those could help if a user is interested in modifying the functions of Prnt Scrn and Alt + Prnt Scrn to always use the delay option.xfce4-screenshooter -d 5 -f
. Then, any time Prnt Scrn is pressed, xfce4-screenshooter will take a snap of the full screen because of-f
after a delay of 5 sec and then prompt you for a filename and location.xfce4-screenshooter -d 5 -w
to grab the active window because of-w
.