Konfigurationssprache

Wenn der XbigX-Proxy startet, liest er 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 Meta-Screen- oder Screen-Definition und werden hier Sub-Anweisungen genannt. Sie sind durch eine entsprechende metaScreen- (Meta-Screen) oder screen-Anweisung (Screen) einzuleiten.

Werden gleichnamige Parameter mehrfach angegeben, gilt die letzte Anweisung, mit Ausnahme der serverCommand-Anweisung, die alle Parameter zusammenfügt.

Die Auswertung der Parameter erfolgt erst nachdem alle Konfigurationsanweisungen gelesen wurden. Dies ist insbesondere bei relativen Positionsangaben von Bedeutung.

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 xbigx-Programm ohne Argumente aufgerufen, gilt die voreingestellte Konfiguration. Die folgenden Zeilen zeigen fast alle Konfigurationsanweisungen mit ihren Voreinstellungen:

connection :0.0
connectTimeout 20
serverNice 0
authorization none
accessControl on
serverAuthorization none
xdmcpMode off
workarounds none
vendorString none
vendorReleaseNumber none
glxVendorString none
nice 0
numberOfThreads 4
logDestination /var/opt/XSOXbigX/logs/xbigx-Benutzername-0.html
logTypes none

metaScreen .0
width 0
height 0
keepWindowsVisible 0

screen :1.0
display :1.0
ofMetaScreen .0
absoluteX 0
absoluteY 0
displayX 0
displayY 0
displayWidth 0
displayHeight 0
borderWidth -1
followPointerX 0
followPointerY 0
followPointerMode continuous
followPointerRestrict none
pointer
wrapX off
wrapY off
zoom 1
emulateVisual none
tags color glx

screen :1.1
display :1.1
ofMetaScreen .0
eastOf :1.0 offsetX 0 offsetY 0
displayX 0
displayY 0
displayWidth 0
displayHeight 0
borderWidth -1
followPointerX 0
followPointerY 0
followPointerMode continuous
followPointerRestrict none
pointer
wrapX off
wrapY off
zoom 1
emulateVisual none
tags none

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 Screen (Screen) oder Meta-Screen (Meta-Screen) zugeordnet. Beim Schreiben einer Konfigurationsdatei gibt das Konfigurationsprogramm diese Kommentarzeilen zwischen der entsprechenden screen--Anweisung oder metaScreen-Anweisung und den folgenden Sub-Anweisungen aus.

Die einleitenden Kommentarzeilen zu Beginn einer Konfigurationsdatei vor der ersten Definition eines Screens oder eines Meta-Screens 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:

serverCommand $OPENWINHOME/bin/X :1

Die Syntax für Zuweisungen unterscheidet sich jedoch:

set Variablenname Wert

etwa:

set XAUTHORITY $HOME/xmetax.xauthority

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

Die in der Konfiguration gesetzten Variablen werden in das Environment übernommen und können zum Beispiel vom X Window Server gelesen werden.

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 nice -5
set serverNice ($nice - 2)

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