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 (X Window client connection) 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 (Common resources and 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 (Destination) 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).

Copyright © 2018 X-Software GmbH
info@x-software.com