7 Configuration xposextool7.1 Operation 7.1 OperationThe POSE technology is used for exactly and totally recording and later or simultaneous playback of X11 sessions or individual applications, optionally together with audio, video, or arbitrary binary data streams. The recording may be converted to video formats, too. The stand-alone product X-POSE-X-RECORD or the product X-META-X with the POSE option are used for recording. For playback and conversion the separate product X-POSE-X-PLAY is used. The program xposextool - included with all three products - is used for configuration and control of all functions. The X-META-X or X-POSE-X-RECORD proxy analyses the whole protocol traffic between the X Window clients and the server. A special X Window client, the program xposextool can request the protocol data, receive them and, for instance, store them into a file. 7.2 Configuration xposextoolThe program xposextool is used to configure and control all functions. Here we describe the whole functionality, although it is restricted depending on the individual product:
For additional recording, copying, storing or playback of audio, video or binary data streams you would need the appropriate MULTIMEDIA options for the X-META-X or X-POSE-X-RECORD proxy and for X-POSE-X-PLAY. In the following sections the term screen denotes the screen of the X-META-X or X-POSE-X-RECORD proxy, i.e. a meta screen in X-META-X nomenclature. 7.2.1 Start without graphical user interfaceThe command line mode of the xposextool program allows to control operations through a script, which can be associated, for instance, to a window manager action: $XPOSEXRECORD_HOME/bin/xposextool -noGui \ configuration_statement... The integration with browsers or file managers is much easier using the short form $XPOSEXRECORD_HOME/bin/xposextool file_name... which lets xposextool replay the specified recording file(s) using default parameters. 7.2.2 Start with graphical user interfaceThe command line specifies the X Window display on which the dialog boxes of the configuration tool should be displayed, unless the environment variable $DISPLAY is set appropriately: $XPOSEXRECORD_HOME/bin/xposeaxtool \ [-display display_name] \ [-geometry position_and_dimensions] \ [-ownColormap] \ [configuration_statement...] The argument -ownColormap lets xposextool use its own colormap for its user interface. If there are configuration statements on the command line, they are read and displayed by the xposextool program. 7.2.3 Control by signalsxposextool may be controlled by the calling program by means of signals. 7.2.3.1 Start phaseThe beginning communication has to be configured by one of the statements start record onSignal (7.2.13 Recording), start play onSignal (7.2.14 Playback), start directCopy onSignal (7.2.15 Direct copy), or start convert onSignal (9.2.3 Conversion). The following communication takes place:
7.2.3.2 While recordingWhile running the following signals are recognized:
7.2.3.3 TerminationThe SIGTERM signal stops xposextool gracefully. 7.2.4 Printing state changesPrinting state changes has to be configured by one of the statements start record traceState (7.2.13 Recording), start play traceState (7.2.14 Playback), start directCopy traceState (7.2.15 Direct copy), or start convert traceState (9.2.3 Conversion). For each state change the program xposextool prints on the standard output stream stdout one of the following lines: state=initializing process_id=process_id timestamp state=recording timestamp state=new_snapshot file=file_name snapshot_number=number timestamp state=playing speed=speed timestamp state=back timestamp state=forward timestamp state=paused timestamp state=speed_changed speed=speed timestamp state=screenshot to=file_name timestamp state=finished timestamp state=exited While recording the timestamp denotes the absolute recorded time in ISO format: time_absolute="2005-06-29 23:59:59" During playback the timestamp displays also the time elapsed since the last snapshot (7.2.13.3 Snapshots) in milliseconds: time_absolute="2005-06-29 23:59:59.999" time_relative=67690 The speed is printed as fractional factor (7.2.14.4 Start, termination and speed), like: speed="22/1" 7.2.5 Command syntaxWhen starting, the xposextool program reads configuration statements from the command line or from configuration files (7.2.10 Configuration file). The statement syntax is identical for both sources. Thus, the command $XPOSEXRECORD_HOME/bin/xposextool \ recordValues display $DISPLAY \ playValues to $DISPLAY \ convertValues display $DISPLAY equals any of the following commands $XPOSEXRECORD_HOME/bin/xposextool $XPOSEXRECORD_ETC/xposextool.conf $XPOSEXRECORD_HOME/bin/xposextool - < $XPOSEXRECORD_ETC/xposextool.conf if the file $XPOSEXRECORD_ETC/xposextool.conf contains the following lines: # $XPOSEXRECORD_ETC/xposextool.conf recordValues display $DISPLAY playValues to $DISPLAY convertValues display $DISPLAY This example demonstrates the default configuration, which is effective if xposextool is called without any arguments: $XPOSEXRECORD_HOME/bin/xposextool The same configuration is described by the following lines, which show almost all configuration statements and their default values: miscValues logDestination stderr logTypes none hotKey gui Shift Control recordValues display $DISPLAY to record.pose takeNextFile off neverOverwrite on compression off minSnapShotIntervalSize 0 maxSnapShotIntervalSize 0 minSnapShotIntervalTime 0 maxSnapShotIntervalTime 0 globalTypes input output bell clients all types all screens all pointerMotionResolution 15 timestampResolution 100 maxTime 0s maxFileSize 0b maxNumberOfFiles 0 encryptedTransmission off playValues from record.pose sortFiles off screens all to $DISPLAY displayMode fullscreen startHidden on onTop on clipX 0 clipY 0 clipWidth 0 clipHeight 0 displayX 0 displayY 0 displayWidth 0 displayHeight 0 serverFonts off pointerZoom 1 gammaCorrection red 1.0 green 1.0 blue 1.0 types none +bell +output +pointer osd on osdX 0 osdY -0 inputSwitch off startTime begin stopTime end playMode wait speed 1 1 asynchronous screenshotTo screenshot%n.ppm hotKey suspend Control Space hotKey back Control Left hotKey forward Control Right hotKey halfSpeed Control KP_Subtract hotKey doubleSpeed Control KP_Add hotKey maxSpeed Control KP_Multiply hotKey screenshot Control S convertValues from record.pose display $DISPLAY to record.mpg encoder FFMPEG format MPEG1 imageQuality 60 ringBellWhenFinished on screen 0 clipX 0 clipY 0 clipWidth 0 clipHeight 0 displayX 0 displayY 0 displayWidth 0 displayHeight 0 pointerZoom 1 gammaCorrection red 1.0 green 1.0 blue 1.0 types all startTime begin stopTime end This example also demonstrates that recording, playback, and conversion are very easy to configure - in spite of the great number of configuration options. This is the consequence of reasonable default values. The following sections describe each configuration statement in detail. First, some general notes:
The following sections describe the configuration statements by a formal syntax using the following elements
Some of the configuration statements are described in chapters about individual product options of X-POSE-X-PLAY:
7.2.6 CommentsComments start with a number symbol # and extend to the end of the line. When reading and storing a configuration file the program collects all comments at the beginning of the file. 7.2.7 VariablesThe environment variables are accessed like in a shell, for example: playValues display $DISPLAY Variable assignments, however, follow a different syntax: set variable_name value set POSEFILE $HOME/1.pose A variable name begins with a letter (including the underscore _) followed by letters or digits. Braces are used to separate the variable name in special situations:
set server1 remote:1.
playValues display ${server1}0
7.2.8 Arithmetic expressionsArithmetic expressions may contain the operators *, /, and % (modulus), + and - as well as variable references. They are surrounded by parentheses, for instance: set width 1024 set zoomedWidth ($width / 2) 7.2.9 Pattern elementsSome parameters may contain pattern elements which are substituted by current values at run-time.
The pattern elements are known from date(1) or strftime(3C) with the exception of the second (many substitutions depend on the selected locale):
7.2.10 Configuration filesource file_name|- file_name|- is substituted by the contents of a configuration file. The file name - stands for the standard input stream. The file inclusions may be nested arbitrarily, but not cyclically. stop terminates the interpretation of a configuration file before reaching the end of the input. The remaining contents are neither read in nor saved by the xposextool program. 7.2.11 Dialog boxWhen the program xposextool starts, it displays the dialog box, unless one of the statements start record (7.2.13 Recording), start play (7.2.14 Playback), start directCopy onSignal (7.2.15 Direct copy) or start convert (9.2.3 Conversion) forces an immediate action. During recording, playback or conversion the dialog box is not visible. However, it can be displayed at any time by pressing a hot key combination. The interrupted process may be resumed afterwards without any loss. The dialog box is structured in several pages corresponding to the recordValues (7.2.13 Recording), playValues (7.2.14 Playback), convertValues (9.2.3 Conversion), and miscValues statements. At any time one page is displayed. Less important related parameters are grouped into individually expandable regions:
The About page shows useful informations:
After clicking on a nonsensitive area, the dialog box may be moved by dragging the mouse. The buttons in the lower left corner correspond to the individual start statements. In addition you may resume or stop an interrupted process or trigger a screenshot (7.2.14.5 Screenshot). The button on the right side terminates the program. 7.2.12 Miscellaneous statementsmiscValues miscellaneousValues introduce sub-statements, which specify general parameters. 7.2.12.1 MessagesThe destination of error messages and warnings may be specified by the sub-statement logDestination -|stdout|stderr|syslog|file_name If file_name ends with .html or .htm, the messages are output in HTML format, else in plain text format. The default destination is the standard error output stream. Syntax error messages are printed there, too.
logTypes {[+|-]statistics|none}...
configures additional output of statistical information as well as meta information (7.2.13.6 Miscellaneous sub-statements). 7.2.12.2 Dialog box
hotKey gui
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
defines the hot key combination which causes the display of the dialog box. The default hot key combination is Shift Control. The dialog box allows to specify all miscellaneous parameters and to load or save configuration files:
7.2.13 Recordingstart record [noGui] [onSignal] [ownColormap] [traceState] begins the recording immediately without displaying the dialog box. With noGui the dialog box does never appear, in the event of a termination condition (7.2.13.5 Termination) the program terminates. The parameter onSignal configures control by signals (7.2.3 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 stdout (7.2.4 Printing state changes). recordValues introduces sub-statements, which specify recording parameters. 7.2.13.1 Sourcedisplay display_name specifies the client connection (6.6 X Window client connection) of the X-META-X or X-POSE-X-RECORD proxy which displays the clients to be recorded. The value of the environment variable $DISPLAY is taken by default. 7.2.13.2 Destinationto file_name|file_with_pattern_elements|- specifies the destination of the recorded data, - stands for the standard output stream stdout, ~ for the home directory (default: record.pose). If the statement contains only a file name without pattern elements (7.2.9 Pattern elements), the recording is terminated as soon as a termination condition (7.2.13.5 Termination) is reached, otherwise the file is closed and a new file, named according to the file name pattern, is started. The files may be replayed individually or in sequence.
takeNextFile {on|off}
determines, whether a new recording file should be opened after reaching a termination condition (7.2.13.5 Termination) or by signal control (7.2.3.2 While recording), or not (by default). If the destination specification does not contain any pattern elements, the recording file is overwritten.
neverOverwrite {on|off}
determines, whether an existing recording file may be overwritten or not (default).
compression {on|off}
determines, whether the recorded data should be compressed by the program gzip or not (the default). The compression program may be configured by the environment variable $XPOSEX_COMPRESS in the xposextool shell script (2.2 Installation directories). 7.2.13.3 SnapshotsSo 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. For fast positioning during playback (7.2.14.6 Miscellaneous sub-statements) additional snapshots may be inserted during recording. The sub-statements
minSnapshotIntervalSize data_length[b|B]|{k|K}|{m|M}|{g|G}
maxSnapshotIntervalSize data_length[b|B]|{k|K}|{m|M}|{g|G}
minSnapshotIntervalTime period_of_time[s|S]|{m|M}|{h|H}|{d|D}
maxSnapshotIntervalTime period_of_time[s|S]|{m|M}|{h|H}|{d|D}
specify the minimum and maximum distances of snapshots, as data_length in Bytes, Kilobytes, Megabytes or Gigabytes or/and as period_of_time in seconds, minutes, hours or days. Snapshots are generated only if there is no recording activity, however, at latest before one of the maximum conditions becomes true. The default value 0 for all parameters disables additional snapshots 7.2.13.4 Scope and sort of the recording
client|clients {all|none
|{[+|-]id resource_id}
|{[+|-]name window_name}
|{[+|-]button number}}...
specifies the set of X Window clients which are recorded. Individual clients may be denoted in several ways:
Individual clients are included (+) in or excluded (-) from the set of recorded clients. By default, all current and future clients are recorded. This sub-statement includes sub-sub-statements, which further restrict the recording.
screen|screens {all|none|{[+|-]screen_number}}...
denotes the set of (meta) screens, on which the specified clients are recorded. By default, the clients are recorded on all screens.
type|types {all|none|{[+|-]output}|{[+|-]bell}}...
denotes the types of data to be recorded for the specified client(s) (by default, all types of data are recorded):
globalType|globalTypes {all|none|{[+|-]output}|{[+|-]bell}
|{[+|-]input}}...
specifies the types of data to be recorded for all clients (by default, output, bell, and input are recorded):
pointerMotionResolution samples_per_second specifies the sampling rate of for pointer movements (15 times per second by default). timestampResolution number_per_second specifies the resolution of recorded timestamps (100 timestamps per second by default, corresponding to a resolution of 10ms). 7.2.13.5 Termination
maxTime period_of_time[s|S]|{m|M}|{h|H}|{d|D}
terminates the recording after period_of_time in seconds, minutes, hours or days, or switches to a new file, depending on the destination containing pattern elements (7.2.13.2 Destination).
maxFileSize file_length[b|B]|{k|K}|{m|M}|{g|G}
terminates the recording as soon as the file_length in Bytes, Kilobytes, Megabytes or Gigabytes is reached, or switches to a new file, depending on the destination containing pattern elements (7.2.13.2 Destination). maxNumberOfFiles number_of_files determines that at any time only the specified number of files should be hold. The superfluous older files are removed automatically. By default no termination conditions are defined. 7.2.13.6 Miscellaneous sub-statementstitle text_with_pattern_elements subTitle text_with_pattern_elements description text_with_pattern_elements author text copyright text_with_pattern_elements specify meta informations which may be displayed during playback or direct copy in the window title, in the onscreen display (7.2.14.3 Scope and sort of the playback), or in the statistic output (7.2.12.1 Messages). Most of the meta informations may contain pattern elements (7.2.9 Pattern elements). 7.2.13.7 Dialog boxThe dialog box allows to specify all recording parameters:
7.2.14 PlaybackPlayback is allowed with the product X-POSE-X-PLAY only. start play [noGui] [onSignal] [ownColormap] [traceState] begins the playback immediately without displaying the dialog box. With noGui the dialog box does never appear, in the event of a termination condition (7.2.14.4 Start, termination and speed) the program terminates. The parameter onSignal configures control by signals (7.2.3 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 stdout (7.2.4 Printing state changes). playValues introduces sub-statements, which specify playback parameters. 7.2.14.1 Source
from {file_name|-|file_name_pattern}...
specifies the recording file(s) to be replayed, - stands for the standard input stream stdin, ~ for the home directory (default: record.pose). The pattern elements of the file_name_pattern resemble the regular expressions of UNIX shells. These are not the patterns used for the recording parameters (7.2.9 Pattern elements). If there are multiple files, they are concatenated for playback. sortFiles on|off determines whether the recording files should be sorted according to the real time and checked for consistency or not (by default). You may also replay a file which is concurrently recorded. However, in most cases direct copy (7.2.15 Direct copy) is the preferred method.
screen|screens all|{[+]screen_number}
determines the set of (meta) screens to be replayed. By default all screens are displayed. This sub-statement includes sub-sub-statements, which further specify the playback on a a particular display. 7.2.14.2 Destinationto 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 X-META-X and X-POSE-X-RECORD proxies allow to restrict such capabilities (6.11 Common resources and capabilities). This sub-sub-statement may be configured multiple times and includes sub-sub-sub-statements, which further specify the playback of an individual screen. 7.2.14.3 Scope and sort of the playbackdisplayMode fullscreen|window|iconic further determines the playback destination:
startHidden on|off determines whether the playback window should be hidden while positioning to the start time (7.2.14.4 Start, termination and speed) or not (default). onTop on|off determines whether the playback window should be displayed unobscured on top of other windows (by default) or not. 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. 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. 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. pointerZoom zoom_factor defines a zoom 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. 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 modification at all.
type|types {all|none|{[+|-]output}
|{[+|-]bell}|{[+|-]pointer}
|{[+|-]buttonClick}|{[+|-]buttonFeedback}
|{[+|-]keyClick}|{[+|-]input}}...
determines the types of data to be replayed from the specified screen (by default output, bell, and pointer are replayed):
If only input events are specified, they are sent to the running session, as if they are actually input. Otherwise a window is opened (7.2.14.2 Destination) to display the output. title text specifies a title for the playback window. The title specified for recording (7.2.13.6 Miscellaneous sub-statements) is set by default. osd on|off osdX [+|-]horizontal_position_in_pixels osdY [+|-]vertical_position_in_pixels configure whether the on screen display should be shown (default in fullscreen mode only) as well as the position of the display (default: right upper corner). 7.2.14.4 Start, termination and speedstartTime begin [+period_of_time] startTime end [-period_of_time] startTime "date time" startTime time determine the start time of the playback (default: begin for the beginning of the first file). The date is specified in one of the formats DD.MM.JJJJ, MM/DD/JJJJ, and JJJJ-MM-DD, period_of_time and time are specified in the format hh:mm:ss. From the preceding snapshot (7.2.13.3 Snapshots) to the start time the recorded data is replayed asynchronously with maximum speed. stopTime begin [+period_of_time] stopTime start [+period_of_time] stopTime end [-period_of_time] stopTime "date time" stopTime time determine the end time of the playback (default: end for the end of the last file). The date is specified in one of the formats DD.MM.JJJJ, MM/DD/JJJJ, and JJJJ-MM-DD, period_of_time and time are specified in the format hh:mm:ss. playMode once|wait|loop determines the action at the end of the playback:
speed numerator/denominator [sync|synchronous|async|asynchronous] speed numerator denominator [sync|synchronous|async|asynchronous] specify the playback speed. Numerator and denominator determine the speed as fractional number in relation to the real time. The default values 1 and 1, respectively, mean playback in real time. The special value 0 for one of the parameters denotes playback at maximum speed. The speed may be changed by pressing a hot key combination (7.2.14.6 Miscellaneous sub-statements), too. If the synchronous playback is delayed, for example due to insufficient performance of the X Window server, an additional parameter determines, whether the speed should be increased temporarily to catch up with the real time (sync or synchronous, for instance to synchronize with an audio recording) or whether the speed should remain constant (async or asynchronous, default value). 7.2.14.5 ScreenshotUsing the dialog box (7.2.12.2 Dialog box) or a hot key combination (7.2.14.6 Miscellaneous sub-statements) you may generate a file in PPM format containing screenshots of all displayed screens. The sub-statement screenshotTo file_name|file_name_pattern|- specifies the destination, - stands for the standard output stream stdout, ~ for the home directory. You may use pattern elements (7.2.9 Pattern elements) like in the default value screenshot%n.ppm. 7.2.14.6 Miscellaneous sub-statements
hotKey suspend
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey back
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey forward
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey doubleSpeed
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey maxSpeed
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey halfSpeed
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey hundredthSpeed
{Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
[key|none]
hotKey thousandthSpeed
{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 dialog box:
7.2.14.7 Dialog boxThe dialog box allows to specify all playback parameters:
7.2.15 Direct copyDirect copy is allowed with the product X-POSE-X-PLAY only. start directCopy [noGui] [onSignal] [ownColormap] [traceState] begins the recording and the simultaneous playback on another X Window server immediately without displaying the dialog box. With noGui the dialog box does never appear, in the event of a termination condition the program terminates. The parameter onSignal configures control by signals (7.2.3 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 stdout (7.2.4 Printing state changes). recordValues playValues specify the parameters for recording (7.2.13 Recording) and playback (7.2.14 Playback). However, neither the recording parameters to, neverOverwrite, compression, minSnapshotIntervalSize, maxSnapshotIntervalSize, minSnapshotIntervalTime, maxSnapshotIntervalTime, timestampResolution, maxTime, maxFileSize, and maxNumberOfFiles nor the playback parameters from, startHidden, startTime, startOffset, length, playMode, and speed are used. The option CONTROL of X-POSE-X-PLAY (10 X-POSE-X-PLAY Option CONTROL) allows to control the remote recorded X11 session using the local keyboard and pointer devices while direct copying. One of the functionalities of the option MULTIMEDIA of X-POSE-X-PLAY (9 X-POSE-X-PLAY Option MULTIMEDIA) is the simultaneous and synchronous transfer of audio, video, or arbitrary binary data. The option SECURE of X-POSE-X-PLAY (11 X-POSE-X-PLAY Option SECURE) encrypts both directions of the data stream between the recording proxy and the playing xposextool program. |
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
Copyright © 2006 X-Software GmbH info@x-software.com 2006-06-12 18:17:21+1:00 | |||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||