5   Navigation and Configuration without dialog box


5.1 Command syntax
5.2 Comments
5.3 Variables
5.4 Configuration file
5.5 Dialog box
5.6 Hot keys
5.7 Telepointer
5.8 Server
      5.8.1 Input control
      5.8.2 Telepointer control
      5.8.3 Miscellaneous server statements
5.9 Screen
      5.9.1 Screen arrangement
      5.9.2 Miscellaneous screen statements
5.10 Miscellaneous statements


The whole functionality of X-CONTROL-X is implemented in the program xcontrolx. It is started like any X Window client and needs a - first - display connection. This is specified like usual with the X Window system by the option

-display display_name 

or through the environment variable $DISPLAY (usually :0.0). The specified X Window server is the master. Its input devices (usually keyboard and mouse) are used to control - besides the master - other X Window servers, the slaves, i.e. either to type input or to display an additional mouse pointer (telepointer) only.

There are multiple ways to achive control of a server:

  • If the mouse pointer is moved across a screen boder, the adjacent screen according to the spatial arrangment (5.9.1 Screen arrangement) can be reached.
  • If specified, pressing a configured hot key (5.9.2.1 Hot key) positions the mouse pointer on an other screen.
  • You may chose an other screen in the nafigation mode of the dialog box (5.5 Dialog box).

The transfer of control from one server zu another as well as the concurrent access of multiple xcontrolx processes to one server can be configured seperately for input (5.8.1 Input control) and telepointer (5.8.2 Telepointer control).

Some of the configuration options do not make sense for the master. Though, when reading a configuration file, the corresponding configuration statements are accepted and ignored without a warning. This allows to use one common configuration file for multiple configurations with different masters.

The configuration is done interactively using a graphical user interface or in advance through the command line or configuration files.

Throughout the whole manual the variables $XCONTROLX_HOME and $XCONTROLX_ETC refer to the appropriate installation directories (2.2 Installation directories).

5.1   Command syntax

When starting, the xcontrolx program reads configuration statements from the command line or from configuration files (5.4 Configuration file). The statement syntax is identical for both sources. Thus, the command

$XCONTROLX_HOME/bin/xcontrolx \
    server :0 screen .0 \
    server remote:0 screen .0 rightOf :0.0 

equals any of the following commands

$XCONTROLX_HOME/bin/xcontrolx $XCONTROLX_ETC/xcontrolx.conf
$XCONTROLX_HOME/bin/xcontrolx - < $XCONTROLX_ETC/xcontrolx.conf 

if the file $XCONTROLX_ETC/xcontrolx.conf contains the following lines:

# $XCONTROLX_ETC/xcontrolx.conf
    server :0
        screen .0
    server remote:0
        screen .0
            rightOf :0.0 

The default configuration, which is effective if xcontrolx is called without any arguments, contains all screens of the master only:

$XCONTROLX_HOME/bin/xcontrolx 

The same configuration is described by the following lines, which show almost all configuration statements and their default values (provided that the display connection of the master is :0, that the only slave is named remote:0, and that each has one screen only):

gui on
hotkey
    gui none
    exit none
telepointer
    height 16
    label user@server
    foregroundColor "#000033336666"
    backgroundColor "#ffffcccc0000"
server :0
    connectTimeout 20
    control
        input
            mode onEnter
            priority 1
            reserve on
        telepointer
            mode never
            priority 0
            reserve off
            multi on
    motionCompression off
    motionSync off
    commonKeyboardFocus off
    commonSelection off
    screen 0
        aboveOf none
        belowOf none
        leftOf none
        rightOf none
        rotation 0
        hotkey none to 0 0
server remote:0
    connectTimeout 20
    control
        input
            mode onTelepointerClicked
            priority 1
            reserve on
        telepointer
            mode onEnterOrInputLost
            priority 0
            reserve off
            multi on
    motionCompression off
    motionSync off
    commonKeyboardFocus off
    commonSelection off
    screen 0
        aboveOf none
        belowOf none
        leftOf none
        rightOf none
        rotation 0
        hotkey none to 0 0
feedback off
logDestination stderr 

The following sections describe each configuration statement in detail. First, some general notes:

  • Words are separated by arbitrary white space characters. The line structure is irrelevant.
  • If a word contains white space characters, it has to be surrounded by double quote characters ". This special meaning of the double quote character is overridden by preceding it with a backslash character \.
  • Keywords are case-insensitive: the meanings of connectTimeout and ConnecttimeOut are identical.
  • Keywords are not reserved.
  • Most configuration statements consist of the name of a parameter and its new value. The name may be written with or without a directly following colon :.
  • Many statements are valid in the context of a server or screen definition only. They are called sub-statements and must be introduced by the appropriate server (5.8 Server) or screen statement (5.9 Screen).
  • In the case of multiple parameter definitions with the same name, only the last one is valid.

The following sections describe the configuration statements by a formal syntax using the following elements:

  • keywords have special meanings.
  • variable_input depends on the configuration.
  • alternative_1|alternative_2: Alternatives are separated by a vertical bar.
  • [optional]: Optional parameters are surrounded by brackets.
  • parameter...: Repetition (one or more times) is denoted by the ellipsis.
  • {element}: Braces are used for grouping:

5.2   Comments

Comments start with a number symbol # and extend to the end of the line.

5.3   Variables

The environment variables are accessed like in a shell, for example:

screen .0 leftOf $remote.0 

Variable assignments, however, follow a different syntax:

set variable_name value 

like in:

set remote xsoft17:0 

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.
screen ${server1}0 

5.4   Configuration file

The statement

source file_name|- 

or, even shorter

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.

The statement

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 configuration tool.

5.5   Dialog box

The statement

gui on|off 

determines, whether X-CONTROL-X should display the dialog box (6 Navigation and configuration using the dialog box) at start-up, which is the default, or not.

The dialog box can be popped up later by pressing a configured hot key (5.6 Hot keys).

5.6   Hot keys

The statement

hotKey gui 
    {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}... 
    [key|none] 

specifies a key combination, which causes the display of the dialog box (6 Navigation and configuration using the dialog box). There is no default hot key.

The statement

hotKey |exit
    {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}... 
    [key|none] 

defines a key combination which terminates the xcontrolx process. There is no default hot key.

5.7   Telepointer

In addition to remote input X-CONTROL-X allows to simultaneously display a telepointer on a slave. The appearance of the telepointer can be configured for each screen (5.9.2.2 Telepointer) as well as globally:

telepointer
    height height_in_pixels
    label text|server|user|user@server
    foregroundColor color_specification
    backgroundColor color_specification 

The telepointer image is composed of an arrow and a text.

The value height_in_pixels determines the height of the arrow without text, 16 pixels by default. The height of the text is proportional to the size of the arrow.

The text can be arbitrary text, or the name of the user executing the xcontrolx program (user), the name of the master (server), or the concatenation of both names (user@server, default).

The color_specification for determining the foreground color or the background color of the telepointer image stands for the color name or for the color value in the format "#RGB", with R meaning red, G meaning green, and B meaning blue (all values are coded in 0ne to four hexadecimal digits). The default colors are "#ffffcccc0000" as foreground color and "#000033336666" for the background color.

The telepointer configuration has no meaning for the master.

5.8   Server

The server statement specifies the display name of an X Window server - master or slave -, which should be controlled by X-CONTROL-X:

server display_name 

The display_name of a slave has to contain a hostname (hostname:display_number), the master can also be specified by the display number only (:display_number). The xcontrolx program always treats the X Window server to which it connects first as master.

The server statement introduces sub-statements, which specify additional parameters of the server.

The sub-statement

    connectTimeout timeout_in_seconds 

determines the period of time, within which the xcontrolx program tries to connect to the corresponding X Window server (master or slave), 20 seconds by default.

5.8.1   Input control

The sub-statement

    control input 

configures remote input of X-CONTROL-X on an X Window server and introduces sub-sub-statements.

The sub-sub-statement

        mode never|onEnter|onTelePointerClicked 

configures the type of input control:

  • never: this server cannot be controlled by X-CONTROL-X.
  • onEnter (fixed for the master): each screen of this server can be accessed using the mouse pointer, with immediate remote input.
  • onTelepointerClicked (default for slaves): if X-CONTROL-X shows a telepointer on this server (5.8.2 Telepointer control), remote input is enabled by a mouse click.

The concurrent access by multiple xcontrolx processes to a server is regulated by priorities. If one xcontrolx process controls a server it can be driven out by another xcontrolx process with an equal or higher input priority value only. The sub-sub-statement

        priority priority_value 

specifies the input priority value of a server (1 by default).

The sub-sub-statement

        reserve on|off 

determines whether the priority should have effect even when X-CONTROL-X does not control the server any longer (fixed for the master) or not (default for slaves). This can be used to reserve a server.

You cannot access a slave, if one of its mouse or keyboard keys is pressed.

5.8.2   Telepointer control

The sub-statement

    control telepointer 

configures the telepointer display of X-CONTROL-X on an X Window server and introduces sub-sub-statements.

The sub-sub-statement

        mode never|onEnter|onInputLost|onEnterOrInputLost 

configures the type of telepointer control:

  • never (fixed for the master): X-CONTROL-X cannot display a telepointer on this server.
  • onEnter: each screen of this server can be accessed using the mouse pointer displaying the telepointer.
  • onInputLost: if X-CONTROL-X loses input control because it gets driven out by another xcontrolx process (5.8.1 Input control) the telepointer is displayed.
  • onEnterOrInputLost (default for slaves): combines the conditions onEnter and onInputLost.

The concurrent access by multiple xcontrolx processes to a server is regulated by priorities. If one xcontrolx process displays a telepointer on a server it can be driven out by another xcontrolx process with an equal or higher telepointer priority value only. The sub-sub-statement

        priority priority_value 

specifies the telepointer priority value of a server (0 by default).

The sub-sub-statement

        reserve on|off 

determines whether the priority should have effect even when X-CONTROL-X does not display the telepointer any longer or not (default for slaves). This can be used to reserve a server.

The sub-sub-statement

        multi on|off 

allows (by default) or disallows the display of multiple telepointer in the case of concurrent access to a server.

5.8.3   Miscellaneous server statements

5.8.3.1   Transmission of pointer movements

If you encounter network performance problems, you may optimize the transmission of pointer movements from the master to a slave.

In case of low bandwidth the sub-statement:

    motionCompression on|off 

minimizes the number of transferred motion events (off by default).

In case of network latency the sub-statement

    motionSync on|off 

should help (off by default).

5.8.3.2   Keyboard focus

The sub-statement

    commonKeyboardFocus on|off 

specifies whether - regarding all controlled or reserved slaves and the master - only one keyboard focus should be in affect or whether the keyboard focus should change when changing to an other server (default).

5.8.3.3   Synchronization of selections

The sub-statement

    commonSelection on|off 

specifies whether the selections of all controlled or reserved slaves and master should be synchronized (set by default). In this case, for instance, cut&paste data is transferred between the screens.

5.9   Screen

The screen sub-statement specifies the display name of a screen to be controlled by X-CONTROL-X:

    screen screen_number 

The screen_number may be specified by a display name, too.

The master as well as the slaves may have up to 256 screens. X-CONTROL-X controls always all screens of the master.

The screen statement introduces sub-sub-statements, which specify additional parameters of the screen.

5.9.1   Screen arrangement

The sub-sub-statements

        aboveOf screen_specification...|none
        belowOf screen_specification...|none
        leftOf screen_specification...|none
        rightOf screen_specification...|none 

denotes the arrangements of the screens to each other. If one screen is rightOf an other screen and if configured, the mouse pointer may be moved across the left border of the first screen and appears on the right border of the second screen, which then gets all input events. The corresponding opposite direction is defined implicitly.

More than one screen can be adjacent to a screen border. There is no default screen arrangement.

A screen which appears only in such a sub-sub-statement but in no screen sub-statement, is automatically defined. This is true for servers accordingly.

The sub-sub-statements

        rotate|rotation 0|none
        rotate|rotation 90|quarter|oneQuarter
        rotate|rotation 180|half|twoQuarter|twoQuarters
        rotate|rotation 270|threeQuarter|threeQuarters 

let the xcontrolx program modify the pointer movements for a slave screen rotated by 0 degrees (default), 90 degrees, 180 degrees, or 270 degrees counter-clockwise.

5.9.2   Miscellaneous screen statements

5.9.2.1   Hot key

The sub-sub-statement

        hotKey
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}... 
            [key|none]
            [to horizontal_position_in_pixels
                vertical_position_in_pixels] 

assigns a key combination to a screen. Whenever this hot key is pressed, the mouse pointer jumps to the specified position on the corresponding screen. There is no default hot key.

5.9.2.2   Telepointer

The appearance of the telepointer is specified for each screen in the same manner as globally (5.7 Telepointer). The global configuration serves as default for the individual screens.

5.10   Miscellaneous statements

The xcontrolx process is able to inform other X Window clients about its internal state regarding input (keyboard and pointer device). Therefore X Window properties are stored on the root window of the first screen of the master and of the current slave.

The property named XCONTROLX_POINTER_SLAVE contains the display name of the server showing the mouse pointer, whereas the property XCONTROLX_KEYBOARD_SLAVE specifies the server, which gets keyboard input. Because of the keyboard focus (5.8.3.2 Keyboard focus) these servers need not to be equal. The properties names XCONTROLX_KEYBOARD_MASTER and XCONTROLX_POINTER_MASTER both contain the display name of the master. If a server is neither master nor slave, the corresponding properties are empty.

The statement

feedback on|off 

enables (or disables default) this communication.

The destination of error messages and warnings may be specified by the 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.


-> Contents
-> Previous-> Home-> Next
-> Index
-> Deutsch
X-CONTROL-X
Manual
-> Contents
-> Previous-> Home-> Next
-> Index
-> Deutsch
X-CONTROL-X
Manual
-> Contents
-> Previous-> Home-> Next
-> Index
-> Deutsch
X-CONTROL-X
Manual
-> Contents
-> Previous-> Home-> Next
-> Index
-> Deutsch
X-CONTROL-X
Manual
-> Contents
-> Previous-> Home-> Next
-> Index
-> Deutsch
X-CONTROL-X
Manual
-> Contents
-> Previous-> Home-> Next
-> Index
-> Deutsch

Copyright © 2006 X-Software GmbH
info@x-software.com
2006-06-19 17:50:29+1:00
-> Sitemap
-> X-Software