Copying
Copy is allowed with the product XposeXplay only.
The statement
start copy [noGui] [onSignal] [ownColormap] [traceState]
begins the recording and the simultaneous playback on another X Window server immediately without displaying the graphical user interface.
With noGui the dialog box does never appear, in the event of a termination condition the program terminates. Otherwise the graphical user interface is displayed (Copying). The parameter onSignal configures control by signals (Control by signals). The parameter ownColormap lets xposextool use its own colormap for its user interface.The parameter traceState lets the program xposextool print state changes on the standard output stream (Printing state changes).
For copying the xposextool program connects to one or more XmetaX or XposeXrecord proxies, instructs each proxy what kind of data and which clients of which screens are to be recorded, receives the recorded data from the proxies, and simultaneously displays it on one or more X Window servers.
The statement
copySettings
introduces sub-statements, which specify copying parameters.
Source
Screens
The sub-statement
fromDisplay|fromDisplays display_name...
specifies the client connections of the XmetaX or XposeXrecord proxies which displaythe clients to be recorded. If display_name contains a screen number, only the specified screen is recorded, otherwise all screens of the X Window proxy are recorded. The value of the environment variable $DISPLAY is taken by default.
The sub-statement introduces sub-sub-statements, which specify recording and playback parameters for an individual display or screen.
Connection
The sub-sub-statement
connectTimeout timeout
determines the period of time (Points of time and periods of time), within which the xposextool program tries to connect to the XmetaX or XposeXrecord proxy. If the connection cannot be established within the timeout (20 seconds by default), the corresponding screens are not recorded.
The sub-sub-statement
offlineTimeout timeout
determines the period of time (Points of time and periods of time), within which the XmetaX or XposeXrecord proxy has to honor X11 requests, before it is regarded as broken. The default value is 20 seconds.
The sub-sub-statement
continueWhenOffline on|off
specifies whether the recording should continue when one of the XmetaX or XposeXrecord proxies terminates or not (default).
Compression
The sub-sub-statement
transmission {uncompressed|fastCompression|mediumCompression|strongCompression}
configures the kind of compression used for the communication between the XmetaX or XposeXrecord proxy and the xposextool program. The various arguments allow to find a trade-off between compression quality and resource usage (by default the transmission is not compressed).
Multimedia
The sub-sub-statement
multimedia
introduces sub-sub-sub-statements, which specify individual multimedia operations.
The sub-sub-sub-statement
record "multimedia_specification"
defines the multimedia operation for capturing audio, video, or binary data streams during recording. The default value of "" denotes no capturing.
The sub-sub-sub-statement
feedback "multimedia_specification"
defines the multimedia operation for capturing on the playback side during copying. This may be used to transmit voice from the displaying to the recording computer. The default value of "" denotes no transmission.
Scope and properties of the recording
The sub-sub-statement
type|types {all|none|{[+|-]output}|{[+|-]visible}|{[+|-]pointerImages}|{[+|-]bell}
|{[+|-]input}|{[+|-]buttonHits}|{[+|-]pointerMovements}|{[+|-]keyHits}}...
denotes a list (Lists) of (group of) types of data to be recorded (by default, output and input are recorded):
output stands for all X11 requests with visible or audible effects:
visible comprises all drawing and window manipulating requests,
pointerImages stands for requests changing the image of the pointer,
bell denotes the audible bell signal.
input stands for all input events:
buttonHits denotes pointer clicks,
pointerMovements stands for the movements of the pointer device,
keyHits denotes keyboard input.
all stands for the complete X11 protocol traffic, including requests without any visible effects.
The sub-sub-statement
client|clients {all|none
|{[+|-]id resource_id}
|{[+|-]name window_name}
|{[+|-]button number}}...
specifies a list (Lists) of X Window clients which are recorded. Individual clients may be denoted in several ways:
With id the id of one of the clients resources is specified.
With name the name of one of its windows is specified.
button means that the client(s) are denoted by succeeding mouse clicks using the specified button.
By default, all current and future clients are recorded.
The sub-sub-statement
pointerMotionResolution samples_per_second
specifies the sampling rate of pointer movements (15 times per second by default).
Destination
The sub-sub-statement
toDisplay display_name
defines the screen of an X Window server to be used for playback. The value of the environment variable $DISPLAY is taken by default.
The X Window server may differ from the server used during recording with regard to vendor and capabilities. However, it may happen, that the playback is impossible, for instance due to lack of color models (visuals). In order to make playback on different servers possible, the XmetaX and XposeXrecord proxies allow to restrict such capabilities.
The option VisEmu emulates PseudoColor visuals of depths 4 and 8 on a 24 bits deep TrueColor visual. Thus it is possible to playback a recording made on older graphics systems of lower depths on modern hardware often supporting 24 bits depth only.
This sub-sub-statement may be configured multiple times and includes sub-sub-sub-statements, which further specify the playback on an individual screen.
Connection
The sub-sub-sub-statement
connectTimeout timeout
determines the period of time (Points of time and periods of time), within which the xposextool program tries to connect to the X Window server used for playback. If the connection cannot be established within the timeout (20 seconds by default), the playback is not started.
The sub-sub-sub-statement
offlineTimeout timeout
determines the period of time (Points of time and periods of time), within which the X Window server has to honor X11 requests, before it is regarded as broken. The default value of 0 seconds disables this check.
Displaying
The sub-sub-sub-statement
displayMode fullscreen|window|iconic
further determines the playback destination:
With fullscreen (default) the playback is displayed filling the whole screen(s). Unoccupied areas up to the screen border are black.
With window the playback is displayed in an X11 window, which may be positioned and minimized using the window manager.
icon is like window, but the window is showed as icon initially.
The sub-sub-sub-statement
onTop on|off
determines whether the playback window should be displayed unobscured on top of other windows (by default) or not.
The sub-sub-sub-statement
title text
specifies a title for the playback window. The default title is a dynamic string reflecting the current state of the copying process.
Every recording file contains the fonts used during the recording in form of bitmaps. For the potentially zoomed playback these bitmaps are scaled accordingly, which may yield an unattractive text display. The sub-sub-sub-statement
serverFonts on|off
determines whether the most fitting fonts of the displaying X Window server or the bitmaps of the recording file (default) are used for text display.
The sub-sub-sub-statement
pointerZoom factor
defines a factor for all pointer images of a screen. The smoothing algorithm works best with a power of two as factor. The default value is 1. Some X Window servers clip or even distort large cursor images.
The sub-sub-sub-statements
osd on|off
osdX [+|-]horizontal_position_in_pixels
osdY [+|-]vertical_position_in_pixels
configure whether the on screen display should be shown or not (default) as well as the position of the display (default: upper right corner).
Positions, dimensions and scaling
The sub-sub-sub-statements
clipX horizontal_position_in_pixels
clipY vertical_position_in_pixelns
clipWidth width_in_pixels
clipHeight height_in_pixels
clipGeometry widthxheight[+horizontal_position+vertical_position]
specify a rectangular clipped area of the screen to be replayed. The default value of 0 for all scalar parameters and 0x0+0+0 for clipGeometry, respectively, denote the whole screen.
The sub-sub-sub-statements
displayX horizontal_position_in_pixels
displayY vertical_position_in_pixels
displayWidth width_in_pixels
displayHeight height_in_pixels
displayGeometry widthxheight[+horizontal_position+vertical_position]
specify the rectangular area, in which the playback is displayed. Thus, width and height can be scaled independently. The default value of 0 for all scalar parameters and 0x0+0+0 for displayGeometry, respectively, denote unscaled display.
Scope of the playback
The sub-sub-sub-statement
type|types {all|none|{[+|-]output}|{[+|-]visible}|{[+|-]pointerImages}|{[+|-]bell}
|{[+|-]input}|{[+|-]buttonHits}|{[+|-]pointerMovements}|{[+|-]keyHits}
|{[+|-]buttonClicks}|{[+|-]buttonFeedback}|{[+|-]keyClicks}}...
denotes a list (Lists) of (group of) types of data to be replayed from the specified screen (by default output and pointerMovements are replayed):
output stands for all X11 requests with visible or audible effects:
visible comprises all drawing and window manipulating requests,
pointerImages stands for requests changing the image of the pointer,
bell denotes the audible bell signal.
input stands for all input events:
buttonHits denotes pointer clicks,
pointerMovements stands for the movements of the pointer device,
keyHits denotes keyboard input,
buttonClicks stands for the audible feedback of the mouse buttons,
with buttonFeedback for each click with one of the first three mouse buttons the mouse pointer briefly shows a symbol for the button pressed,
keyClicks stands for the audible feedback of the keyboard.
all stands for the complete X11 protocol traffic, including requests without any visible effects.
If only input events are specified, they are sent to the running session, as if they are actually input. Otherwise a window is opened (Copying) to display the output.
Input control
The option Control of XposeXplay allows to control the remote recorded X11 session using the local keyboard and pointer devices while copying.
The sub-sub-sub-statement
inputSwitch onClick|onStartup|off|none
allows or disallows (by default), that input events are received from the replaying X Window server, too. This second input source is switched on by simply clicking into the playback window and is switched off by leaving the window. With onStartup input from the replaying X Window server is switched on from the very beginning.
Selections are mainly used for communication between X Window clients through an X Window server, for instance to transfer cut&paste data.
The sub-sub-sub-statement
selectionSync on|off [refresh]
lets the XmetaX or XposeXrecord proxy synchronize the selections of the controlled X Window servers (off by default). In case of problems with certain X Window servers the argument refresh may help.
Screenshot
Using the graphical user interface (XposeXtool: control and configuration with graphical user interface) or a hot key combination (Hotkeys) you may generate a file in PPM format containing screenshots of all displayed screens. The sub-statement
screenshotTo file_name|-
specifies the destination, - stands for the standard output stream stdout, ~ for the home directory. The file_name may contain pattern elements (Pattern elements) like the default value ~/%Y-%m-%d_%H:%M:%S.ppm.
Hotkeys
The sub-statements
hotKey suspend
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey previousScreen
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey nextScreen
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey screenshot
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
define the hot key combinations to control the playback without graphical user interface:
suspend (Control Space by default) temporarily suspends the playback, an arbitrary key press resumes the playback.
previousScreen (Control Up by default) shows the next playback window (Destination).
nextScreen (Control Down by default) shows the previous playback window (Destination).
screenshot (Control S by default) triggers a screenshot (Screenshot).