Konfigurationssprache

Wenn das xcontrolx-Programm startet, liest es Konfigurationsanweisungen von der Kommandozeile oder aus  Konfigurationsdateien (Konfigurationsdatei).

Syntax der Anweisungen

Eine Konfiguration besteht aus einer Reihe von Anweisungen, die einigen allgemeinen Regeln folgen:

Worte werden durch beliebige Leerzeichen getrennt. Die Zeilenstruktur ist irrelevant.

Soll ein Wort Leerzeichen enthalten, muß es mit doppelten Anführungszeichen " umgeben werden. Die besondere Bedeutung des Anführungszeichens wird mit einem vorangestellten, rückwärtigen Schrägstrich \ aufgehoben.

Bei Schlüsselworten ist die Groß-/Kleinschreibung nicht signifikant: connectTimeout und ConnecttimeOut bedeuten dasselbe.

Schlüsselworte sind nicht reserviert.

Die meisten Konfigurationsanweisungen bestehen aus dem Namen des zu setzenden Parameters und seinem neuen Wert. Dabei kann der Name mit oder ohne direkt anschließendem Doppelpunkt : geschrieben werden.

Viele Anweisungen gelten nur im Kontext einer Server- oder Bildschirm-Definition und werden hier Sub-Anweisungen genannt. Sie sind durch eine entsprechende server- (Server) oder screen-Anweisung (Bildschirm) einzuleiten.

Werden gleichnamige Parameter mehrfach angegeben, gilt die letzte Anweisung.

Die einzelnen Konfigurationsanweisungen werden in den folgenden Abschnitten mit Hilfe einer formalen Syntax beschrieben, die die folgenden Elemente enthält:

Schlüsselworte haben besondere Bedeutungen.

variable_Eingaben hängen von der Konfiguration ab.

Alternative_1|Alternative_2: Alternativen werden durch einen vertikalen Strich getrennt.

[optional]: Optionale Parameter werden von eckigen Klammern umgeben.

Parameter...: Wiederholungen (ein- oder mehrmals) werden mit einer Ellipsis gekennzeichnet.

{Element}: Geschweifte Klammern dienen der Gruppierung.

Voreingestellte Konfiguration

Wird das xcontrolx-Programm ohne Argumente aufgerufen, gilt die voreingestellte Konfiguration. Die folgenden Zeilen zeigen fast alle Konfigurationsanweisungen mit ihren Voreinstellungen (hier wird vorausgesetzt, daß die Display-Bezeichnung des Masters :0 lautet, der einzige Slave remote:0 heißt und beide jeweils nur einen Bildschirm aufweisen):

gui on
hotkey
gui none
exit none
telepointer
label user@server
height 22
foregroundColor "#ffffcccc0000"
backgroundColor "#000033336666"
crossDelay "0 ms"
crossKnocking off
feedback off
logDestination /var/opt/XSOXcontrolx/logs/xcontrolx-Benutzername.html
server
:0
connectTimeout "20 sec"
control
input
mode onEnter
priority 1
reserve on
telepointer
mode never
priority 0
reserve off
multi on
motionCompression off
motionSync off
commonKeyboardFocus off
commonSelection on
screensaverSync off
screen 0
northOf none
southOf none
eastOf none
westOf none
rotation 0
hotkey none to 0 0
server remote:0
connectTimeout "20 sec"
control
input
mode onTelepointerClicked
priority 1
reserve off
telepointer
mode onEnterOrInputLost
priority 0
reserve off
multi on
motionCompression off
motionSync off
commonKeyboardFocus off
commonSelection on
screensaverSync off
screen 0
northOf none
southOf none
eastOf none
westOf none
rotation 0
hotkey none to 0 0

Kommentare

Kommentare beginnen mit einem Doppelkreuz # und reichen bis zum Zeilenende.

Beginnt ein Kommentar — nach Überlesen von Leerzeichen — am Zeilenanfang, wird er dem zuletzt definierten Server (Server) oder Bildschirm (Bildschirm) zugeordnet. Beim Schreiben einer Konfigurationsdatei gibt das Konfigurationsprogramm diese Kommentarzeilen zwischen der entsprechenden server- oder screen-Anweisung und den folgenden Sub-Anweisungen aus.

Die einleitenden Kommentarzeilen zu Beginn einer Konfigurationsdatei vor der ersten Definition eines Servers oder eines Bildschirms bleiben erhalten.

Alle anderen Kommentare werden überlesen und vom Konfigurationsprogramm nicht gespeichert.

Variablen

Auf die Environment-Variablen kann wie in einer Shell zugegriffen werden, zum Beispiel:

screen .0 westOf $remote.0

Die Syntax für Zuweisungen unterscheidet sich jedoch:

set Variablenname Wert

etwa:

set remote xsoft17:0

Ein Variablenname beginnt mit einem Buchstaben (dazu zählt auch der Unterstrich _) gefolgt von Buchstaben oder Ziffern. In besonderen Fällen werden zur Abgrenzung geschweifte Klammern verwendet:

set server1 xsoft17:
server ${server1}0

Listen

Einige Anweisungen erwarten als Argument eine Liste von einzelnen Elementen in der Form:

{[+|-]item}...

Das optionale Vorzeichen betimmt, ob ein Element eingeschlossen wird oder nicht: beginnt eine Spezifikationen mit dem Minuszeichen -, wird die entsprechende Komponente aus der konfigurierten Menge von Elementen entfernt, anderenfalls zur Menge hinzugefügt. Die Ausgangsmenge hängt ab von der ersten Spezifikation: beginnt sie mit einem Minuszeichen -, enthält die Ausgangemange alle möglichen Elemente, anderenfalls ist die Ausgangsmenge leer.

Arithmetische Ausdrücke

Arithmetische Ausdrücke können die Operatoren *, / und % (Modulus), + und - sowie Variablen enthalten. Sie werden mit normalen Klammern umgeben, zum Beispiel:

set inputPriority 2
set telepointerPriority ($inputPriority - 1)

Zeitpunkte und Zeiträume

Die Spezifikation eines Zeitpunktes folgt einer erweiterten ISO-Syntax:

[Jahr{-|/}Monat{-|/}Tag] Stunden:Minuten[:Sekunden[.Millisekunden]] [am|AM|pm|PM] [Z|{+|-Stunden:Minuten}]

Die folgenden Beispiele bezeichnen annähernd den gleichen Zeitpunkt am 20. August 2008 in Zentraleuropa:

2008-08-20 20:08:20.2008
20:08
18:08 Z
08:08 pm

Die Syntax zur Spezifikation eines Zeitraums ist ähnlich:

[[Stunden:]Minuten:]Sekunden[.Millisekunden]

Die folgenden Beispiele bezeichnen annähernd die gleiche Zeitspanne:

1:23:45.678
83:45
5025

Konfigurationsdatei

Die Anweisung

source Dateiname|-

oder auch nur

Dateiname|-

wird durch den Inhalt einer Konfigurationsdatei ersetzt. Wird als Dateiname - angegeben, erfolgt die Eingabe vom Standard-Eingabe-Strom. Die Dateien können beliebig tief, jedoch nicht zyklisch, verschachtelt werden.

Mit der Anweisung

stop

wird die Interpretation einer Konfigurationsdatei vor dem Dateiende abgebrochen. Der restliche Dateiinhalt wird nicht eingelesen und vom Konfigurationsprogramm auch nicht geschrieben.

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