Dies ist der Befehl FvwmScript, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
FvwmScript – Modul zum Erstellen einer grafischen Benutzeroberfläche
ZUSAMMENFASSUNG
FvwmScript muss von Fvwm erzeugt werden. Es funktioniert nicht über die Befehlszeile.
BESCHREIBUNG
FvwmScript ist ein Modul, mit dem Sie viele grafische Anwendungen erstellen können, z
Desktop-Zubehör, Schaltflächenfeld mit Popup-Menüs, modale Dialoge ... Beim Start
FvwmScript liest die Datei, die in der Befehlszeile angegeben ist. Diese Datei enthält die
Skript. Dieses Skript ist nicht in der Konfigurationsdatei von Fvwm enthalten.
Ein FvwmScript-Skript kann vollständig über die Tastatur gesteuert werden. (Shift)-Tab zirkuliert
Um die Widgets herum simuliert Return einen Mausklick, die Pfeile bewegen oder verändern den Cursor
die Werte des Widgets und Escape „löschen“ für Menu und PopupMenu.
AUFRUF
FvwmScript kann durch Einfügen der Zeile „Module FvwmScript name_of_script“ aufgerufen werden
.fvwm2rc-Datei. Die Datei „name_of_script“ kann mit einem Schrägstrich beginnen, in diesem Fall handelt es sich um einen
Der vollständig qualifizierte Pfad wird eingegeben und die Datei wird gelesen. Wenn „name_of_script“ nicht mit a beginnt
Schrägstrich, FvwmScript wird an verschiedenen Stellen suchen. Wenn die .fvwm2rc das enthielt
Befehlszeile „*FvwmScript: Pfad path_of_the_script_directory“, FvwmScript wird das versuchen
Verzeichnis. Wenn das nicht funktioniert, versucht FvwmScript das Systemkonfigurationsverzeichnis und
das Benutzerkonfigurationsverzeichnis, wie unter dem Befehl „Lesen“ im fvwm-Man beschrieben
Der Befehl zum Starten von FvwmScript kann in einer eigenen Zeile platziert werden, wenn FvwmScript ausgeführt werden soll
wird während der Initialisierung von fvwm erzeugt oder kann an ein Menü oder eine Maustaste gebunden sein oder
Tastendruck, um es später aufzurufen.
CONFIGURATION OPTIONAL
Die folgenden Befehle können in der Konfigurationsdatei verwendet werden (siehe fvm(1), Abschnitt MODULE
BEFEHLE für Details). Sie werden nur verwendet, wenn die entsprechenden Skriptbefehle dies nicht tun
im Skript verwendet.
*FvwmScript: DefaultFont Schriftart
Gibt die zu verwendende Standardschriftart an. Wenn nicht mit diesem Befehl oder im angegeben
Skript mit dem Befehl „Font“ verwenden, wird eine feste Schriftart angenommen.
*FvwmScript: DefaultFore Farbe
Gibt die zu verwendende Standard-Vordergrundfarbe an. Falls hier nicht angegeben
Befehl oder im Skript mit dem Befehl ForeColor wird Schwarz verwendet.
*FvwmScript: DefaultBack Farbe
Gibt die zu verwendende Standardhintergrundfarbe an. Falls hier nicht angegeben
Befehl oder im Skript mit dem BackColor-Befehl wird grey85 verwendet.
*FvwmScript: DefaultHilight Farbe
Gibt die zu verwendende Standard-Highlight-Farbe an. Wenn nicht mit diesem Befehl angegeben
oder im Skript mit dem Befehl HilightColor wird grey100 verwendet.
*FvwmScript: DefaultShadow Farbe
Gibt die zu verwendende Standardschattenfarbe an. Wenn nicht mit diesem Befehl angegeben
oder im Skript mit dem Befehl ShadowColor wird grey55 verwendet.
*FvwmScript: DefaultColorset Farbset
Weist das Modul an, Farbset zu verwenden Farbset als Standardfarbsatz. Siehe die
Weitere Informationen zu Farbsätzen finden Sie auf der FvwmTheme-Manpage.
ANATOMIE OF A SCRIPT
FvwmScript verwendet eine bestimmte Programmiersprache. Ein Drehbuch besteht aus fünf Teilen.
Die Überschrift enthält allgemeine Eigenschaften des Fensters und Standardeigenschaften für alle
Widgets. Der zweite Teil enthält Anweisungen, die beim Start des ausgeführt werden
Skript. Der dritte Teil enthält periodische Aufgaben, die jede Sekunde ausgeführt werden. Der
Der vierte Teil enthält Anweisungen, die beim Beenden ausgeführt werden. Und der letzte Teil enthält
die Beschreibung von Widgets. Ein Widget besteht aus elf Arten von Elementen: Textbeschriftungen,
einzeilige Texteingaben, Optionsfelder, Kontrollkästchen, Drucktasten, horizontal und vertikal
Bildlaufleisten, Rechtecke, Popup-Menüs, Swallowexecs und Mini-Bildlaufleisten.
TARIF OF A SCRIPT
Die Syntax lautet wie folgt:
Fenstertitel Schnur
Diese Option legt den Fenstertitel fest.
Fenstergröße Breite Höhe
Diese Option legt die Fenstergröße fest. Breite und Höhe sind Zahlenwerte.
Fensterposition x y
Diese Option legt die Fensterposition fest. x und y sind Zahlenwerte.
Vordergrundfarbe {Farbe}
Diese Option legt die Standard-Vordergrundfarbe für alle Widgets fest.
Hintergrundfarbe {Farbe}
Diese Option legt die Standardhintergrundfarbe für alle Widgets fest.
HilightColor {Farbe}
Diese Option legt die Standard-Highlight-Farbe für alle Widgets fest.
ShadowColor {Farbe}
Diese Option legt die Standardschattenfarbe für alle Widgets fest.
Farbset {n}
Diese Option legt den Standardfarbsatz für alle Widgets fest.
Schriftart {Schriftart}
Diese Option legt die Standardschriftart für alle Widgets fest.
UseGettext [locale_path]
Aktivieren Sie die Verwendung des Gettext-Mechanismus, der vom WindowLocaleTitle verwendet wird.
LocaleTitle-, ChangeLocaleTitle-Anweisungen und die Gettext-Funktion. Wenn nein
Wenn das Argument angegeben wird, wird der standardmäßige FvwmScript-Gebietsschemakatalog verwendet. Dieser Katalog ist
unter dem Gebietsschema fvwm-Installationsverzeichnis und die Textdomäne ist FvwmScript
(install_prefix/share/locale/*/LC_MESSAGES/FvwmScript.mo). Sie können dies zurücksetzen
Katalog oder fügen Sie einige Kataloge genauso hinzu wie mit LocalePath fvm
Befehl (siehe die fvwm-Handbuchseite). Diese Anweisung sollte vor dem platziert werden
WindowLocaleTitle-Anweisung.
WindowLocaleTitle Schnur
Diese Option legt den Fenstertitel fest, verwendet jedoch die mit definierten Gebietsschema-Kataloge
Verwenden Sie Gettext.
INITIALISIERUNG
Dieser Teil enthält Anweisungen, die beim Start ausgeführt werden. Zum Beispiel:
Drin
Beginnen
Führen Sie „Exec cat tada.voc > /dev/dsp“ aus.
WarpPointer 1
Setzen Sie $ToDo=Restart
Ende
Diese Anweisungen werden verwendet, um einen Ton abzuspielen, den Zeiger auf Widget 1 und auf zu bewegen
Initialisieren Sie $ToDo bei jedem Start mit „Neustart“.
Regelmäßig AUFTRÄGE
Dieser Teil des Skripts enthält Anweisungen, die jede Sekunde ausgeführt werden. Für
Beispiel:
Periodische Aufgaben
Beginnen
Wenn (RemainderOfDiv (GetTime) 10)==0 Dann
Führen Sie {Exec xcalc} aus
Ende
Dieses Beispiel zeigt, wie xcalc alle 10 Sekunden gestartet wird.
QUIT AUFGABE
Dieser Teil des Skripts enthält Anweisungen, die ausgeführt werden, wenn das Skript beendet wird
(nach der Beenden-Anweisung oder wenn Sie das Fenster mit Schließen, Löschen oder Zerstören schließen
fvwm-Befehl). Zum Beispiel
QuitFunc
Beginnen
Mach {Echo tschüss, tschüss}
Ende
Beachten Sie, dass bei Verwendung des Befehls KillModule fvwm zum Schließen des Skripts einige
Anweisungen oder Funktionen, die auf der Existenz einer Kommunikationsverbindung zwischen den basieren
script und fvwm werden nicht ausgeführt (zum Beispiel der Do-Befehl). Um a reibungslos zu töten
Skript mit einem fvwm-Befehl finden Sie im BEFEHLE .
MAIN OF A SCRIPT
Der zweite Teil des Skripts enthält die Beschreibung für jedes Widget im Skript.
Jede Widget-Beschreibung besteht aus zwei Teilen. Der erste Teil beschreibt anfängliche Eigenschaften, die
Der zweite Teil enthält Anweisungen, die ausgeführt werden, wenn das Widget Nachrichten empfängt.
Alle Widgets können Nachrichten senden und empfangen. Alle Nachrichten sind durch eine Nummer gekennzeichnet. Der
Die Nachricht „UserAction“ wird an ein Widget gesendet, wenn der Benutzer das Widget bedient. Die Syntax
für den ersten Teil ist:
Widget-ID # Eine Zahl zwischen 1 und 999 (einschließlich).
Immobilien
Geben Sie Zeichenfolge ein
Größe Breite Höhe
Position xy
Titel { string }
Wert int
MaxValue int
MinValue int
Schriftartzeichenfolge
ForeColor { Farbe }
BackColor { Farbe }
HilightColor { Farbe }
ShadowColor { Farbe }
Farbset int
Flags flagsOpt
Die FlagsOpt-Option für Flags ist eine durch Leerzeichen getrennte Liste, die eines oder mehrere davon enthält
Schlüsselwörter versteckt, NoReliefString, NoFocus, Links / Center / Rechts. versteckt wird verwendet,
Geben Sie an, ob das Widget beim Start ausgeblendet ist. NoReliefString Gibt an, ob Zeichenfolgen gezeichnet werden
mit Erleichterung oder nicht. NoFocus Gibt an, ob das Widget den Tastaturfokus erhalten kann oder nicht.
Standardmäßig erhalten alle Widgets den Fokus, mit Ausnahme von Rechteck, HDipstick und VDipstick, bei denen dies nicht möglich ist.
Darüber hinaus werden die NoFocus-Widgets übersprungen, wenn Sie mit dem um die Widgets herumlaufen
(Umschalt-)Tab-Tastenkürzel. Links / Center / Rechts Gibt die Textposition an. Diese gelten
nur für ItemDraw, List, Menu, PopupMenu und PushButton. Die Standardeinstellung ist Center für ItemDraw
und PushButton und Links für die anderen Widgets.
LocaleTitle kann anstelle von Title verwendet werden, um die mit definierten Locale-Kataloge zu verwenden
Verwenden Sie Gettext.
Die Position jedes Widgets muss angegeben werden.
Die Syntax für den zweiten Teil lautet:
Main
Fallmeldung von
SingleClic:
Beginnen
# Liste der Anweisungen, die sein werden
# wird ausgeführt, wenn das Widget empfängt
# Nachricht „SingleClic“. Diese Nachricht ist
# vom Benutzer generiert.
Ende
1:
Beginnen
# Liste der Anweisungen, die sein werden
# wird ausgeführt, wenn das Widget empfängt
# Nachricht 1
Ende
Ende
LISTE OF WIDGETS
Es gibt fünfzehn Arten von Widgets.
CheckBox: Kontrollkästchen mit einer Zeichenfolge anzeigen.
Titel : Titel des Kontrollkästchens.
Wert: Wenn der Wert gleich 1 ist, ist das Kontrollkästchen aktiviert, andernfalls nicht.
Die Größe Eigenschaft wird ignoriert.
HD-Pipstick: Zeigt einen horizontalen Ölmessstab an.
Mit diesem Widget kann die Festplattennutzung angezeigt werden.
Wert: Geben Sie den aktuellen Wert des Ölmessstabs an.
MinWert: Geben Sie den Mindestwert des Ölmessstabs an.
MaxWert: Geben Sie den Maximalwert des Ölmessstabs an.
Es gilt eine Mindestgröße von 30x11.
HScrollBar: Zeigt eine horizontale Bildlaufleiste an.
Wert: Position des Daumens.
MaxWert: Obergrenze des Werts.
MinWert: untere Wertgrenze.
Die Höheneigenschaft wird ignoriert und eine Mindestbreite wird vorgegeben. Die Breite sollte sein
mindestens der Bereich plus 37, wenn alle Werte wählbar sein sollen, z. B. ein Minimum von 0 und
max. 10 hat einen Bereich von 11 und sollte daher eine Mindestbreite von 48 haben.
ItemDraw: Zeigt ein Symbol und/oder eine Zeichenfolge an.
Titel : anzuzeigende Zeichenfolge.
Symbol: Symbol zur Anzeige.
MaxWert: x-Koordinate des Cursors.
MinWert: Y-Koordinate des Cursors.
Die Größe ist groß genug, um den Titel und/oder das Symbol aufzunehmen.
Liste: Liste anzeigen.
Mit der Liste kann der Benutzer zwischen verschiedenen Optionen wählen.
Wert: Geben Sie an, welche Option ausgewählt ist.
MinWert: Erste sichtbare Option.
Titel : Titel enthält die in der Liste angezeigten Optionen. Die Syntax ist die folgende:
{Option 1|Option 2|...|Option N}. Alle Menüs werden oben im Fenster angezeigt.
Es wird eine Mindesthöhe von drei Elementen und eine Breite von mindestens drei Elementen vorgeschrieben
108
Kategorien: Zeigt ein Menü an, in dem der Benutzer eine Option auswählen kann.
Elemente vom Typ „Menü“ werden von links nach rechts am oberen Rand des Fensters angeordnet.
Die Größen- und Positionseigenschaften werden ignoriert.
Wert: Geben Sie an, welche Option ausgewählt ist.
Titel : Titel enthält Optionen, die im Menü angezeigt werden. Die Syntax ist die folgende:
{Option 1|Option 2|...|Option N}.
MiniScroll: Zeigt eine sehr kleine vertikale Bildlaufleiste an.
Wert: Position des Daumens.
MaxWert: Obergrenze des Werts.
MinWert: untere Wertgrenze.
Die Größe ist auf 19x34 eingestellt.
Popupmenü: Ein Popup-Menü anzeigen.
Wert: Geben Sie an, welche Option ausgewählt ist.
Titel : Der Titel hat die folgende Syntax: {Option 1|Option 2|...|Option N}."Option
1|Option 2|...|Option N“ ist das Popup-Menü, das beim Drücken der Maus angezeigt wird
.
Die Größeneigenschaft wird ignoriert.
Druckknopf: Schaltfläche mit einem Symbol und/oder einer Zeichenfolge anzeigen.
Titel : Diese Zeichenfolge hat die folgende Syntax: {Titel der Schaltfläche|Option 1|Option
2|Option3|...|Option N}. „Option 1|Option 2|...|Option N“ ist das Popup-Menü, das
wird angezeigt, wenn Sie die rechte Taste drücken.
Symbol: Symbol zur Anzeige.
Die Schaltfläche ist so groß, dass sie in das Symbol und/oder die Beschriftung passt.
RadioButton: Optionsfeld mit einer Zeichenfolge anzeigen.
Titel : Titel des Optionsfelds.
Wert: Wenn der Wert gleich 1 ist, ist das Kontrollkästchen aktiviert, andernfalls nicht.
Die Größeneigenschaft wird ignoriert
Rechteck: Ein Rechteck anzeigen.
Diese Art von Widget kann zum Dekorieren von Fenstern verwendet werden.
SwallowExec
Diese Art von Widget bewirkt, dass FvwmScript einen Prozess erzeugt und den ersten erfasst
Öffnen Sie ein Fenster, dessen Name oder Ressource dem Titel entspricht, und zeigen Sie es im Skript an
Fenster.
Titel : Geben Sie den Fensternamen an, der erfasst und im Skript angezeigt werden soll
Fenster.
SwallowExec: Geben Sie die Befehlszeile an, die ausgeführt werden soll, um den Prozess zu starten. Module können
auch verschluckt werden.
Wert: Geben Sie das Aussehen des Rahmens an. Möglicher Wert: -1, 0, 1.
Die Größe beträgt mindestens 30x30
Textfeld: Ein Texteingabefeld anzeigen.
Über das Texteingabefeld kann eine einzeilige Zeichenfolge bearbeitet werden.
Titel : Inhalt des Textfeldes.
Wert: Position des Einfügepunkts.
MinWert: Position des Endes der Auswahl.
MaxWert: erstes sichtbares Zeichen des Titels
Die Eigenschaft height wird ignoriert, die Breite wird um mindestens 40 Pixel breiter gemacht
als der ursprüngliche Inhalt.
VMessstab: Zeigt einen vertikalen Ölmessstab an.
Wert: Geben Sie den aktuellen Wert des Ölmessstabs an.
MinWert: Geben Sie den Mindestwert des Ölmessstabs an.
MaxWert: Geben Sie den Maximalwert des Ölmessstabs an.
Die Größe beträgt mindestens 11x30.
VScrollBar: Zeigt eine vertikale Bildlaufleiste an.
Wert: Position des Daumens.
MaxWert: Obergrenze des Werts.
MinWert: untere Wertgrenze.
Die Eigenschaft width wird ignoriert und eine Mindesthöhe wird vorgegeben. Die Höhe sollte
mindestens der Bereich plus 37 sein, wenn alle Werte auswählbar sein sollen, z. B. ein Mindestwert von 0
und max. 10 hat einen Bereich von 11 und sollte daher eine Mindesthöhe von 48 haben.
EMPFEHLUNGEN
Hier finden Sie die Beschreibung aller Anweisungen.
HideWidget id : Das nummerierte Widget ausblenden id.
ShowWidget id: Zeigt das Widget nummeriert an id.
Wert ändern id1 id2
Legen Sie den Wert des Widgets nummeriert fest id1 zu id2.
ChangeMaxValue id1 id2
Legen Sie den Maximalwert des Widgets nummeriert fest id1 zu id2.
ChangeMinValue id1 id2
Legen Sie den Mindestwert des Widgets nummeriert fest id1 zu id2.
Ändere den Titel id1 id2
Legen Sie den Titel des Widgets nummeriert fest id1 zu id2.
ChangeWindowTitle Schnur
Legen Sie den Titel des Fensters auf fest Schnur.
ChangeWindowTitleFromArg numarg
Setzen Sie den Titel des Fensters auf den Wert von numarg-tes Skriptargument.
ChangeLocaleTitle id1 id2
Wie ChangeTitle, aber verwenden Sie die mit UseGettext definierten Gebietsschema-Kataloge.
Icon ändern id1 id2
Stellen Sie das Symbol des Widgets nummeriert ein id1 zu id2.
ChangeForeColor id1 {Farbe}
Legen Sie die Vordergrundfarbe des nummerierten Widgets fest id1 zu {Farbe}.
ChangeBackColor id1 {Farbe}
Legen Sie die Hintergrundfarbe des nummerierten Widgets fest id1 zu {Farbe}.
ChangeColorSet id1 id2
Legen Sie den Farbsatz des Widgets nummeriert fest id1 zu id2. Durch Angabe von Widget 0 wird das festgelegt
Farbsatz des Hauptfensters.
Position ändern id1 x y
Verschieben Sie das Widget nummeriert id1 positionieren (x,y).
Größe ändern id1 Breite Höhe
Legen Sie die Größe des nummerierten Widgets fest id1 zu (Breite,Höhe).
Schriftart ändern id1 neue Schriftart
Legen Sie die Schriftart des nummerierten Widgets fest id1 zu neue Schriftart.
WarpPointer id
Bewegen Sie den Mauszeiger in das nummerierte Widget id.
WriteToFile Dateinamen {str1} {str2} usw
In die Datei schreiben Dateinamen die Zeichenfolge, die die Verkettung aller Argumente darstellt
str1, str2, usw.
Tun {Befehl args}
Führen Sie den Befehl fvwm im Do-Block aus. Jeder fvwm-Befehl, wie im beschrieben
Die fvwm2-Manpage kann verwendet werden. Von diesem Modul werden Befehle an den fvwm main gesendet
Programm zur Bearbeitung. Die Länge des Befehls und der Argumente darf 988 nicht überschreiten
Zeichen.
$ festlegenjung={str1} {str2} usw
Verketten Sie alle Argumente zu einem String und legen Sie die Variable $ festjung zu dieser Zeichenfolge.
Beenden: Beenden Sie das Programm.
Signal senden id1 id2
Senden Sie eine nummerierte Nachricht id2 zum Widget id1.
SendToScript id_script {str11} {str2} usw
Senden Sie eine Nachricht an das durch id_script identifizierte Skript. Die Botschaft ist die
Verkettung von str1, str2...
Wesentliche Schlüsselname Veränderung id sig str1 str2 etc
Bindet eine Tastaturtaste an die Anweisung
Signal senden id sig
und setzt die „letzte Zeichenfolge“ auf die Verkettung von str1, str2... (siehe
LastString-Funktion). Der Schlüsselname und Modifikatoren Felder sind wie im fvwm definiert
Schlüsselbefehl.
ARGUMENTE
Die meisten Befehle verwenden Argumente. Es gibt zwei Arten von Argumenten: Zahlen und Zeichenfolgen. A
Das numerische Argument ist ein Wert zwischen -32000 und +32000. Eine Zeichenfolge ist immer
mit Klammern umgeben. Variablen beginnen immer mit dem Zeichen „$“ und können beides enthalten
Zahlen und Zeichenfolgen.
FUNKTIONEN
Alle Funktionen verwenden Argumente. Funktionen können sowohl eine Zeichenfolge als auch eine Zahl zurückgeben. Die Syntax
ist:
(Funktion Argument1 Argument2 usw.)
Hier ist die vollständige Liste der Argumente:
(GetTitle id)
Gibt den Titel des Widgets nummeriert zurück id.
(Wert erhalten id)
Gibt den aktuellen Wert des Widgets nummeriert zurück id.
(GetMinValue id)
Gibt den aktuellen Min-Wert des nummerierten Widgets zurück id.
(GetMaxValue id)
Gibt den aktuellen Max-Wert des nummerierten Widgets zurück id.
(GetFore id)
Gibt den aktuellen RGB-Vordergrundwert des nummerierten Widgets zurück id im Hex-Format
RRGGBB.
(Komm zurück id)
Gibt den aktuellen RGB-Hintergrundwert des nummerierten Widgets zurück id im Hex-Format
RRGGBB.
(GetHilight id)
Gibt den aktuellen RGB-Hilight-Wert des nummerierten Widgets zurück id im Hex-Format
RRGGBB.
(GetShadow id)
Gibt den aktuellen RGB-Schattenwert des nummerierten Widgets zurück id im Hex-Format
RRGGBB.
(GetOutput {str} int1 int2)
Führt den Befehl aus str, ruft die Standardausgabe ab und gibt das darin enthaltene Wort zurück
die Linie int1 und in der Lage int2. Wenn int2 gleich -1 ist, gibt GetOutput zurück
die komplette Linie.
(NumToHex int)
Gibt den Hexadezimalwert von zurück int.
(HexToNum {str})
Gibt den Dezimalwert von zurück str, str muss ein hexadezimaler Wert sein.
(Hinzufügen int1 int2)
Gibt das Ergebnis von ( zurückint1+int2).
(Mult int1 int2)
Gibt das Ergebnis von ( zurückint1*int2).
(Abt int1 int2)
Gibt das Ergebnis von ( zurückint1/int2).
(StrCopy {str} int1 int2)
Gibt die Zeichenfolge zurück, die sich zwischen Position int1 und int2 befindet. Beispiel: (StrCopy
{Hallo} 1 2) gibt {He} zurück
(LaunchScript {str})
Diese Funktion startet das Skript namens str und gibt eine Identifikationsnummer zurück.
Diese Nummer ist notwendig, um die Funktionen SendToScript und ReceiveFromScript nutzen zu können.
Die Zeichenfolge str enthält den Skriptnamen und einige Argumente.
(GetScriptArgument {int})
Diese Funktion gibt das Argumentskript zurück, das in der Funktion LaunchScript verwendet wird. Wenn
int ist gleich Null, GetScriptArgument gibt den Namen des Skripts zurück.
(GetScriptFather)
Diese Funktion gibt die Identifikationsnummer des Skriptvaters zurück.
(ReceivFromScript {int})
Diese Funktion gibt die vom Skript gesendete Nachricht mit der Nummer int zurück.
(RemainderOfDiv {int1 int2}): T
Diese Funktion gibt den Rest der Division zurück (int1/int2).
(Zeit bekommen)
Diese Funktion gibt die Zeit in Sekunden zurück.
(GetPid)
Diese Funktion gibt die Prozess-ID des Skripts zurück.
(Gettext {str})
Diese Funktion gibt die Übersetzung von zurück str unter Verwendung der definierten Gebietsschema-Kataloge
mit UseGettext.
(SendMsgAndGet {comId} {cmd} bool)
Sendet den Befehl cmd mit Kennung comId an ein externes Programm weiterleiten
Kommunizieren Sie mit dem Skript über ein für FvwmScript spezifisches Protokoll. Wenn bool ist 0
FvwmScript wartet nicht auf eine Antwort vom externen Programm. In diesem Fall die
Der zurückgegebene Wert ist 1, wenn die Nachricht an das externe Programm gesendet werden kann, und 0, wenn
das ist nicht der Fall. Wenn bool ist 1, dann wartet FvwmScript auf eine Antwort von
externes Programm und der Rückgabewert ist diese Antwort (eine Zeile von nicht mehr als 32000).
Figuren). Wenn die Kommunikation fehlschlägt, ist der zurückgegebene Wert 0. Siehe den Abschnitt
A KOMMUNIKATION PROTOKOLL für eine Beschreibung des verwendeten Kommunikationsprotokolls.
(Parsen {str} int)
woher str muss eine Zeichenfolge der Form sein:
X1S1X2S2X3S3...SnXn
wobei Xn Zahlen mit vier Dezimalstellen sind und Sn Zeichenfolgen sind
Länge genau Xn. Der zurückgegebene Wert ist die Zeichenfolge Sint. Wenn int ist außer Reichweite
(z. B. >n) Der zurückgegebene Wert ist die leere Zeichenfolge. Wenn str ist nicht von der angegebenen
In dieser Form ist der Rückgabewert unvorhersehbar (aber im Durchschnitt leer). Diese Funktion
ist nützlich, um von der SendMsgAndGet-Funktion zurückgegebene Zeichenfolgen zu verarbeiten.
(LastString)
Diese Funktion gibt die „aktuelle Arbeitszeichenfolge“ für die Key-Anweisung und die zurück
SendString-Befehl (siehe BEFEHLE Abschnitt). Beim Start ist diese Zeichenfolge leer, aber
wenn eine Schlüsselbindung erkannt wird (bzw. ein SendString-Befehl empfangen wird),
dann wird dieser String auf den String gesetzt, der der Anweisung zugeordnet ist (bzw.
zum Befehl).
BEDINGT SCHLEIFEN
Es gibt drei Arten von Bedingungsschleifen. Die Anweisung „If-Then-Else“ hat die
folgende Syntax:
Wenn $ToDo=={Open xcalc} Dann
Do {Exec xcalc &} # Liste der Anweisungen
sonst
Beginnen
Do {Exec killall xcalc &} # Liste der Anweisungen
Führen Sie Folgendes aus: {Exec echo xcalc killed > /dev/console}
Ende
Der zweite Teil „Else-Begin-End“ ist optional. Wenn die Schleife nur eine Anweisung enthält,
Begin und End können weggelassen werden. Die Anweisung „While-Do“ hat folgende Syntax:
Während $i<5 Do
Beginnen
Set $i=(Add i 1) # Liste der Anweisungen
Ende
Zwei Zeichenfolgen können mit „==“ und zwei Zahlen mit „<“, „<=“ verglichen werden.
„==", „>=", „>“. Die Schleife „For-Do-Begin-End“ hat die folgende Syntax:
Für $i=1 bis 20 Do
Beginnen
Do {Exec xcalc &} # Liste der Anweisungen
Ende
BEFEHLE
Der folgende fvwm-Befehl kann jederzeit ausgeführt werden
SendToModule Skriptname SendString id sig str
Es sendet an jedes Modul mit einem passenden Alias oder Namen Skriptname die Saite
SendString id sig str
Wenn ein FvwmScript eine solche Nachricht empfängt, sendet es diese an das Widget id das Signal nummeriert
sig und die schnur str kann mit der LastString-Funktion abgerufen werden. Geben wir eine
Beispiel. Angenommen, Sie haben ein MyScript-Skript mit dem Widget:
Widget 50
Immobilien
Geben Sie PushButton ein
Titel {Beenden}
...
Main
Fallmeldung von
SingleClic:
Beginnen
Verlassen
Ende
1:
Beginnen
Setze $str = (LastString)
Wenn $str == {Quit} Dann
Verlassen
sonst
ChangeTitle 33 $str
Ende
Ende
Dann der Befehl
SendToModule MyScript SendString 50 1 str
zwingt MyScript zum Beenden, wenn str gleich „Quit“ ist, und wenn nicht, ändert es den Titel von
Widget 33 zu str.
Mit diesem Befehl kann der Fenstertitel geändert werden
SendToModule Skriptname ChangeWindowTitle neuerTitel [alterTitel]
Dadurch wird jedes Modul mit einem passenden Alias oder Namen angezeigt Skriptname ändert seine
zugehöriger Fenstertitel zu neuerTitel. Das optionale Argument alterTitel macht Sinn, wenn man da ist
sind mehrere Instanzen desselben Skripts. Dadurch kann man vermeiden, den Namen zu ändern
alle diese Instanzen durch Angabe des Namens des Fensters, das dem Zielskript zugeordnet ist
(siehe Beispiel unten).
+ I Modul FvwmScript FvwmStorageSend „/dev/hda6“
+ Ich warte auf FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ I Modul FvwmScript FvwmStorageSend „/dev/hda1“
+ Ich warte auf FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA1 FvwmStorageSend
Ohne das FvwmStorageSend-Argument hätte im letzten Fall der SendToModule-Befehl dies getan
Der Name beider Instanzen von FvwmStorageSend wurde in HDA1 geändert.
Beispiele:
Beispiele für Skripte finden Sie im fvwm-Konfigurationsverzeichnis.
FvwmScript-BellSetup, FvwmScript-KeyboardSetup, FvwmScript-PointerSetup und FvwmScript-
ScreenSetup ist eine Reihe von Skripten, die X-Einstellungen ändern. Diese Skripte speichern Einstellungen
in eine Datei mit dem Namen ~/.xinit-fvwmrc (Wenn Sie einen anderen Dateinamen verwenden möchten, geben Sie ihn als ein
erstes Argument des Skripts). Wenn Sie diese Einstellungen bei jedem Start laden möchten,
Sie müssen zuvor die Zeile „.xinit-fvwmrc“ in Ihre .xinitrc- (oder .xsession-)Datei einfügen
fvwm starten.
FvwmScript-BaseConfig ändert die Fvwm-Fokus- und Paging-Mausrichtlinie, die Fensterplatzierung,
Deckkraft und andere Funktionen der Befehle zum Verschieben und Ändern der Größe, Fanganziehung und Schattierung
Animation. Dieses Skript speichert Einstellungen in einer Datei mit dem Namen .FvwmBaseConfig im Benutzerverzeichnis
Datenverzeichnis (z. B. $HOME/.fvwm oder $FVWM_USERDIR, falls festgelegt). Wenn Sie diese laden möchten
Um die Einstellungen bei jedem Start zu ändern, müssen Sie die Zeile „Read .FvwmBaseConfig“ in Ihrem fvwm hinzufügen
Konfigurationsdatei. Wenn Sie einen anderen Dateinamen verwenden möchten, geben Sie diesen als erstes Argument an
des Drehbuchs. Wenn Sie auf „OK“ oder „Anwenden“ klicken, können Sie eine FVWM-Funktion mit einem Namen definieren
BaseConfigOkFunc oder BaseConfigApplyFunc wird aufgerufen. Dies ermöglicht ein gezieltes Nachladen
Anwendungsstile, die das Skript zerstört hat (z. B. AddToFunc BaseConfigOkFunc I Read
MyAppStyle).
FvwmScript-Buttons ist ein Schaltflächenfeld, das FvwmButtons ersetzen kann (dieses Skript unterstützt).
Popup-Menüs und erfordert xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset ermöglicht
Sie können Ihr Farbset bearbeiten (siehe FvwmTheme). Mit FvwmScript-Date können Sie Datum und Datum festlegen
Zeit. FvwmScript-FileBrowser ist ein Dateibrowser, der von den anderen Skripten verwendet wird. FvwmScript-
Find ist ein elementares Frontend zum Suchen. Mit FvwmScript-Quit kann man fvwm beenden und neu starten
fvwm oder einen anderen Fenstermanager oder fahren Sie den Computer herunter und starten Sie ihn neu. FvwmScript-
ScreenDump ist ein Screen-Dumper. FvwmScript-WidgetDemo ist ein reines Beispielskript. Siehe die
Nächster Abschnitt für FvwmScript-ComExample.
A KOMMUNIKATION PROTOKOLL
FvwmScript ist eine schwache (aber einfache) Programmiersprache. Wenn Sie viel zu bewältigen haben
Daten benötigen und/oder komplexe Algorithmen verwenden müssen, sollten Sie ein externes Programm (in Perl) verwenden
zum Beispiel) und „senden“ Sie die gewünschten Informationen an Ihr FvwmScript-Skript. Der erste
Der Ansatz besteht darin, die GetOutput-Funktion zu verwenden. Das ist einfach, aber Sie sollten es erneut ausführen
externes Programm jedes Mal, wenn Sie Informationen von ihm benötigen (und dies kann zu Performances führen).
Probleme). Der zweite Ansatz besteht darin, die SendMsgAndGet-Funktion zu verwenden, die erweitert
FvwmScript unter Verwendung einer beliebigen Programmiersprache, die mit Named Pipes (Fifos) umgehen kann. Wir
Beschreiben Sie diese Lösung in diesem Abschnitt. (Ein dritter Ansatz besteht darin, fvwm-themes-com von zu verwenden
das fvwm-themes-Paket, aber tatsächlich ist die SendMsgAndGet-Methode eine Implementierung von
fvwm-themes-com innerhalb von FvwmScript und dies führt zu einer besseren Leistung).
Grundsätzlich starten Sie ein „externes“ Programm (kurz: Programm) aus Ihrem FvwmScript
Skript (kurz das Skript). Dieses Programm läuft im Hintergrund und Sie verwenden das
SendMsgAndGet-Funktion in Ihrem Skript, um Fragen zu stellen oder Anweisungen an den zu erteilen
Programm. Das Programm muss ein bestimmtes Kommunikationsprotokoll strikt einhalten. Erstens
Alles, was es gibt, ist eine Kennung comId Für die Kommunikation sollte es die Prozess-ID enthalten
des Skripts für eine gute Implementierung des Protokolls (verwenden Sie die GetPid-Funktion und übergeben Sie
comId über eine Option zum Programm). Das Protokoll verwendet zwei Fifos im fvwm-Benutzer
Verzeichnis mit dem Namen: .tmp-com-in-comId und .tmp-com-out-comId. Das Programm sollte erstellen und
Hören Sie auf der .tmp-com-in-comId fifo. Wenn FvwmScript dann eine Funktion von ausführt
bilden:
Setze $answer = (SendMsgAndGet {comId} {cmd} bool)
FvwmScript schreibt das cmd auf diesem FIFO. Auf diese Weise kann das Programm die lesen cmd und kann
Führen Sie die entsprechende Aktion aus (es sollte das Info-Fifo entfernen, um mehrere zu unterstützen).
Kommunikation). Wenn bool ist 0, FvwmScript wartet nicht auf eine Antwort vom Programm und
Geben Sie 1 zurück, wenn die vorherigen Aktionen erfolgreich waren, und 0, wenn sie fehlgeschlagen sind (dann sollte das Programm „gehen
zurück" ins FIFO). Wenn bool ist 1, dann wartet FvwmScript (20 Sek.) auf eine Antwort von
das Programm und gibt wiederum die Antwort an das Skript zurück (beachten Sie, dass bool wird nicht weitergegeben
das Programm, da es wissen muss, welche Befehle eine Antwort benötigen). Um zu antworten, erstellt das Programm
die .tmp-com-out-comId fifo und schreibt die Antwort darauf. Das Programm sollte warten bis
FvwmScript liest die Antwort und sollte dann das Ausgangs-Fifo entfernen und zum Eingang zurückkehren
fifo. Die Antwort sollte aus einer Zeile mit nicht mehr als 32000 Zeichen bestehen (schauen Sie sich das an
bei der Parse-Funktion, um mehrere Zeilen als eine Zeile zu behandeln).
Eine einfache Möglichkeit, dieses Protokoll zu verstehen und Skripte und Programme zu schreiben, die es verwenden, ist
um einen Blick auf die (nicht nützlichen) Beispiele FvwmScript-ComExample und fvwm-script- zu werfen.
ComExample.pl (im fvwm-Datenverzeichnis zu finden). Darüber hinaus ist diese Implementierung
des Protokolls löst Fragen wie: Was ist zu tun, wenn das Skript aus einem schlechten Grund beendet wird?
Was tun, wenn das Programm aus einem schlechten Grund beendet wird? ...usw.
Verwenden Sie FvwmScript online über die Dienste von onworks.net