Recording
For recording 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 stores it into one or more recorded files.
The statement
start record [noGui] [onSignal] [ownColormap] [traceState]
begins the recording immediately without displaying the graphical user interface.
With noGui the dialog box does never appear, in the event of a termination condition (Termination) the program terminates. Otherwise the graphical user interface is displayed (Recording). 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).
The statement
recordSettings
introduces sub-statements, which specify recording 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 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.
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).
The sub-sub-statement
timestampResolution number_per_second
specifies the resolution of recorded timestamps (100 timestamps per second by default, corresponding to a resolution of 10ms).
The sub-sub-statement
showSnapshotPointerImage {on|off}
specifies whether a busy pointer image should be shown during writing a snapshot (Snapshots) (default) or not.
Destination
Recorded files
The sub-statement
toFile|toFiles file_name|-
specifies the destination of the recorded data, - stands for the standard output stream, ~ for the home directory. The file_name may contain pattern elements (Pattern elements) like the default destination ~/%Y-%m-%d_%H:%M:%S.pose, which specifies an ISO like time stamp.
Each recorded file starts with a few human readable lines of meta data which can be extracted by one of the commands
sed '/^$/q' file_name
head -20 file_name
By default only one recorded file is created. However, various forms of the newFiles statement instruct the xposextool program to write multiple files, which may be replayed individually or in sequence.
The sub-statement
newFiles {{exactlyAfter|earliestAfter|latestAfter} period_of_time}...
specifies that the recording should switch to a new file exactly when, earliest when, or latest when the specified period of time (Points of time and periods of time) expires. The earliestAfter and latestAfter specifiers, which can be combined to define a time interval, allow the xposextool program to postpone the file switch to a less busy time. The default value of "0 ms" for all parameters disables switching to a new file.
The sub-statement
newFiles {onTheQuarterHour|onTheHour|onTheDay}
lets the xposextool program switch to a new file exactly at the specified absolute time, for example at 00:00, 00:15, 00:30, 00:45, 01:00, ... for onTheQuarterHour or every day at 00:00 for onTheDay.
The sub-statement
newFiles {{exactlyAfter|earliestAfter|latestAfter} file_size}...
specifies that the recording should switch to a new file exactly when, earliest when, or latest when the size of the recorded file has reached the specified value (File sizes). The earliestAfter and latestAfter specifiers, which can be combined to define a size interval, allow the xposextool program to postpone the file switch to a less busy time. The default value of "0 bytes" for all parameters disables switching to a new file.
The sub-statement
newFiles afterEvery number_of_snaphots snapshots
lets the xposextool program switch to a new file after writing the specified number of snapshots (Snapshots). However, the snapshot which causes switching to a new file is not written to the end of the old file but gets the starting snapshot of the new file. Because each individual recorded file starts with a snapshot the reasonable minimum number_of_snapshots is 2 while the default value of 0 disables switching to a new file.
The sub-statement
overwriteProtection {on|off}
determines, whether an existing recorded file may be overwritten or not (default).
The sub-statement
keepNumberOfFiles number_of_files
determines that at any time only the specified number of recorded files should be hold. The superfluous older files are removed automatically. The default value of 0 disables this feature.
Snapshots
So that a single recorded file can be replayed without the preceding file, each file starts with a snapshot containing all relevant resources and data of the recorded X Window server(s). For fast positioning during playback (Hotkeys) additional snapshots may be inserted during recording.
The sub-statement
insertSnapshots {{exactlyAfter|earliestAfter|latestAfter} period_of_time}...
specifies that a snapshot is to be written exactly when, earliest when, or latest when the specified period of time (Points of time and periods of time) expires. The earliestAfter and latestAfter specifiers, which can be combined to define a time interval, allow the xposextool program to postpone writing the snapshot to a less busy time. By default, snapshots are written earliestAfter "60 min".
The sub-statement
insertSnapshots {{exactlyAfter|earliestAfter|latestAfter} file_size}...
specifies that a snapshot is to be written exactly when, earliest when, or latest when the size of the recorded file has reached the specified value (File sizes). The earliestAfter and latestAfter specifiers, which can be combined to define a size interval, allow the xposextool program to postpone writing the snapshot to a less busy time. The default value of "0 bytes" for all parameters disables writing additional snapshots due to file size.
Compression
The sub-statement
encoding {uncompressed|fastCompression|mediumCompression|strongCompression}
configures the kind of compression used for writing recorded files. The various arguments allow to find a trade-off between compression quality and resource usage (by default recorded files are not compressed).
Meta data
The sub-statements
title text_with_pattern_elements
subTitle text_with_pattern_elements
description text_with_pattern_elements
keywords text_with_pattern_elements
author text
copyright text_with_pattern_elements
specify meta informations which may be displayed during playback in the onscreen display (Displaying) or in the statistic output (Messages). Most of the meta informations may contain pattern elements (Pattern elements).
Termination
The sub-statement
terminate [exactlyAfter] period_of_time
specifies that the whole recording should terminate exactly when the specified period of time (Points of time and periods of time) expires. The default value of "0 ms" means no termination by time.
The sub-statement
terminate [exactlyAfter] file_size
specifies that the whole recording should terminate exactly when the total size of all recorded files has reached the specified value (File sizes). The default value of "0 bytes" means no termination due to file size.