Copying | Conversion Playback

# Copying

Copy is allowed with the product XposeXplay only.

The statement

    start directCopy 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

        display display_name
        fromDisplay|fromDisplays display_name...

specifies the client connection connections (X Window client connection) of the XmetaX or XposeXrecord proxy proxies which displays the 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

            globalType|globalTypes 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 for the specified client(s) (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. This sub-statement includes sub-sub-statements, which further restrict the recording.

The sub-sub-statement

            screen|screens {all|none|{[+|-]screen_number}}...

denotes a list (Lists) of (meta) screens, on which the specified clients are recorded. By default, the clients are recorded on all screens.

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

            to 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-statement

                gammaCorrection [red factor] [green factor] [blue factor]

changes the base colors of the playback according to the gamma function. The default value 1.0 for all parameters means no correction at all.

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}
                    |{[+|-]buttonClick buttonClicks}|{[+|-]buttonFeedback}|{[+|-]keyClick keyClicks}}...

denotes a list (Lists) of (group of) types of data to be replayed from the specified screen (by default output, bell, and pointer 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).

top
Conversion
Playback

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