EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

FvwmPerl – Online in der Cloud

Führen Sie FvwmPerl im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl FvwmPerl, 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


FvwmPerl – der FVWM-Perl-Manipulator und Präprozessor

ZUSAMMENFASSUNG


FvwmPerl sollte von erzeugt werden fvm(1) für normale Funktionalität.

Um dieses Modul auszuführen, platzieren Sie diesen Befehl irgendwo in der Konfiguration:

Modul FvwmPerl [params]

oder:

ModuleSynchronize FvwmPerl [params]

wenn Sie sofort mit dem Senden von Befehlen an FvwmPerl beginnen möchten.

BESCHREIBUNG


Dieses Modul soll FVWM-Befehle mit der Perl-Skriptleistung erweitern. Es ermöglicht
um Perl-Ausdrücke in die FVWM-Konfigurationsdateien einzubetten und FVWM-Befehle zu erstellen.

AUFRUF


Wenn Sie die einzigartige und dauerhafte Instanz von FvwmPerl aufrufen möchten, wird dies empfohlen
Tun Sie dies von der StartFunktion. Ein Aufruf von oben ist ebenfalls möglich, aber mit Aufwand verbunden
Einige Themen werden hier nicht besprochen.

AddToFunc StartFunction I Modul FvwmPerl

Es gibt mehrere Befehlszeilenschalter:

FvwmPerl [ --eval Linie ] [ --Belastung Datei ] [ --vorverarbeiten [ --zitieren char ] [ --winid wid ] [
--cmd ] [ --kein Senden ] [ --noremove ] [Zeile | Datei ] ] [ --Export [Namen] ] [ --bleiben ] [
--kein Schloss ] [ alias ]

Lange Schalter können als kurze Ein-Buchstaben-Schalter abgekürzt werden.

-e|--eval Zeile – Werten Sie den angegebenen Perl-Code aus

-l|--Belastung Datei – Perl-Code in der angegebenen Datei auswerten

-p|--vorverarbeiten [Datei] – Vorverarbeiten der angegebenen fvwm-Konfigurationsdatei

Die folgenden 5 Optionen gelten nur zusammen mit --vorverarbeiten .

-c|--cmd line – ein fvwm-Befehl, der anstelle einer Datei vorverarbeitet werden soll

-q|--zitieren char – Ändern Sie das Standard-Anführungszeichen „%“.

-w|--winid wid – expliziten Fensterkontext festlegen (sollte mit einer Ziffer beginnen, kann im Oktal sein oder
Hexform; Diese Fenster-ID überschreibt ggf. den impliziten Fensterkontext.)

--kein Senden - Senden Sie die vorverarbeitete Datei nicht an fvm für Lesen Sie mehrDie Standardeinstellung ist „Senden“.
Nützlich für die Vorverarbeitung von Nicht-FVWM-Konfigurationsdateien.

--noremove - Entfernen Sie die vorverarbeitete Datei nicht, nachdem Sie sie an gesendet haben fvm für Lesen Sie mehring, die
Die Standardeinstellung ist „Entfernen“. Nützlich zum Debuggen.

-x|--Export [Namen] – Definieren Sie fvwm-Verknüpfungsfunktionen (standardmäßig zwei benannte Funktionen).
„Eval“ und „.“). Diese Option impliziert --bleiben.

-s|--bleiben - setzt eine Ausführung danach fort --eval, --Belastung or --vorverarbeiten verarbeitet werden. Von
Standardmäßig ist das Modul in diesem Fall nicht persistent, d. h --nostay wird angenommen.

--kein Schloss - Wenn eine der 3 Aktionsoptionen gegeben ist, bewirkt diese Option das Entsperren fvm
sofort. Standardmäßig wird die angeforderte Aktion synchron ausgeführt; das macht nur
Unterschied, wenn es wie folgt aufgerufen wird:

ModuleSynchronous FvwmPerl – someconfig.ppp vorverarbeiten

If --kein Schloss wird hier hinzugefügt, ModulSynchron kehrt sofort zurück. Beachten Sie, dass Modul Rückgabe
sofort unabhängig von dieser Option.

VERWENDUNG ALIAS


Aliase ermöglichen mehrere Modulaufrufe und funktionieren separat mit allen Aufrufen.
Hier ist ein Beispiel:

ModuleSynchronous FvwmPerl FvwmPerl-JustTest
SendToModule FvwmPerl-JustTest eval $a = 2 + 2; $b = $a
SendToModule FvwmPerl-JustTest eval cmd("Echo 2 + 2 = $b")
KillModule FvwmPerl FvwmPerl-JustTest

VORVERARBEITUNG BEISPIEL


Eine der effektivsten Verarbeitungslösungen besteht darin, die gesamte FVWM-Konfiguration mit zu übergeben
Perl-Code in „FvwmPerl --preprocess“ einbetten. Ein alternativer Ansatz besteht darin, ein Perl zu schreiben
Skript, das FVWM-Befehle erstellt und zur Ausführung sendet. Dieses Skript kann geladen werden
mit „FvwmPerl --load“. Es gibt jedoch Zwischenlösungen, die nur eine Vorverarbeitung durchführen
separate Konfigurationszeilen (oder führen Sie alternativ separate Perl-Befehle aus, die
FVWM-Befehle erzeugen).

Der folgende Codeausschnitt fügt bestimmten Funktionen Arithmetik und String-Scripting hinzu
Linien, die dies benötigen. Um dies zu nutzen, möchten Sie FvwmPerl als Ihren ersten Befehl starten
dass andere Befehle möglicherweise um eine Vorverarbeitung gebeten werden.

ModuleSynchronize FvwmPerl

AddToFunc .
+ I SendToModule FvwmPerl preprocess -c -- $*

. Exec exec xterm -name xterm-%{++$i}% # eindeutigen Namen verwenden

. GotoDesk 0 %{ $[desk.n] + 1 }% # gehe zum nächsten Schreibtisch

. Exec exec %{ -x "/usr/bin/X11/aterm" ? "aterm" : "xterm" }% -sb

# ein Fenster zentrieren
Weiter (MyWindow) . Umzug \
%{($WIDTH - $[w.height]) / 2}%p %{($HEIGHT - $[w.height]) / 2}%p

. Exec exec xmessage %{2 + 2}% # einfacher Rechner

. %{main::show_message(2 + 2, „Noch ein Rechner“); ""}%

MASSNAHMEN


Es gibt mehrere Aktionen, die FvwmPerl ausführen kann:

eval Perl-Code
Werten Sie eine Zeile Perl-Code aus.

Eine besondere Funktion cmd("Befehl") kann im Perl-Code verwendet werden, um Befehle zurückzusenden
fvm.

Wenn Perl-Code einen Fehler enthält, wird er mit dem in den Standardfehlerstrom ausgegeben
[FvwmPerl][eval]: Kopfzeile vorangestellt.

Belastung Dateiname
Laden Sie eine Datei mit Perl-Code. Wenn die Datei nicht vollständig qualifiziert ist, wird sie im durchsucht
Benutzerverzeichnis $FVWM_USERDIR (normalerweise ~/.fvwm) und das systemweite Datenverzeichnis
$FVWM_DATADIR.

Eine besondere Funktion cmd("Befehl") kann im Perl-Code verwendet werden, um Befehle zurückzusenden
fvm.

Wenn Perl-Code einen Fehler enthält, wird er mit dem in den Standardfehlerstrom ausgegeben
[FvwmPerl][laden]: Kopfzeile vorangestellt.

Vorverarbeitung [-q|--quote char] [-c|--cmd] [Linie | Datei]
FVWM-Konfiguration vorverarbeiten Datei oder (wenn --cmd angegeben ist) Linie. Diese Datei enthält Zeilen, die
werden nicht berührt (normalerweise FVWM-Befehle) und speziell vorformatierter Perl-Code
bearbeitet und ersetzt. Text eingeschlossen %{ ... }% Trennzeichen, die überall beginnen können
in der Zeile und irgendwo in derselben oder einer anderen Zeile enden, ist Perl-Code.

Das Angebot! Parameter ändert Perl-Code-Trennzeichen. Wenn ein einzelnes Zeichen angegeben wird, z
'@', die Trennzeichen sind @{ ... }@. Wenn das angegebene Zitat 2 Zeichen lang ist, z <>, Die Zitate
sind <{ ... }>

Der Perl-Code wird durch das Ergebnis seiner Auswertung ersetzt. Dh %{$a = "c"; ++$a}%
wird durch „d“ ersetzt.

Die Bewertung fällt anders aus eval und Belastung erfolgt unter dem Paket PreprocessNamespace
und ohne - streng, so dass Sie beliebige Variablennamen verwenden können, ohne Angst davor zu haben
Konflikte. Verwenden Sie nicht initialisierte Variablen nur nicht im Sinne einer Undef- oder leeren Liste (sie
kann tatsächlich durch die vorherige Vorverarbeitungsaktion initialisiert werden) und führen Sie eine Bereinigung durch, wenn
erforderlich. Die Variablen und Funktionen in der Haupt- Paket sind noch verfügbar, z
::cmd() oder ::überspringen(), aber es ist einfach keine gute Idee, währenddessen darauf zuzugreifen
Vorverarbeitung.

Es gibt eine Sonderfunktion das(Datei), der eine Datei lädt, sie vorverarbeitet und
gibt das vorverarbeitete Ergebnis zurück. Vermeiden Sie Rekursion.

Wenn ein eingebetteter Perl-Code einen Fehler enthält, wird er als Standardfehler ausgegeben
stream und mit dem vorangestellten [FvwmPerl][Vorprozess]: Header. Das Ergebnis von
Die Substitution ist in diesem Fall leer.

Die folgenden Variablen können im Perl-Code verwendet werden:

$USER, $DISPLAY, $WIDTH, $HEIGHT, $FVWM_VERSION, $FVWM_MODULEDIR, $FVWM_DATADIR,
$FVWM_USERDIR

Die folgenden zeilenbasierten Anweisungen werden bei der Vorverarbeitung erkannt. Sie sind
verarbeitet, nachdem der Perl-Code (falls vorhanden) ersetzt wurde.

%Wiederholen zählen
Bewirkt, dass die folgenden Zeilen wiederholt werden zählen Zeiten.

%Modulkonfiguration Modulname [ zerstören ]
Bewirkt, dass die folgenden Zeilen als die angegebene Modulkonfiguration interpretiert werden. Wenn
Bei Angabe von „destroy“ wird zunächst die bisherige Modulkonfiguration zerstört.

%Vorsilbe Präfix
Stellt den folgenden Zeilen das Anführungszeichen voran Präfix.

%Ende Jeder optionale Kommentar
Beendet jede der oben beschriebenen Anweisungen, kann verschachtelt sein.

Beispiele:

%Präfix „AddToFunc SwitchToWindow I“
Ikonifizieren aus
FensterBeschattung aus
Erhöhen
WarpToWindow 50 50
%Ende

%ModuleConfig FvwmPager zerstören
Farbsatz 0
Schriftart lucidasans-10
DeskTopScale 28
MiniIcons
%End ModuleConfig FvwmPager

%Prefix „All (MyWindowToAnimate) ResizeMove“
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%Wiederholen %{$count}%
br w+2c w+2c w-1c w-1c
%Ende
%Wiederholen %{$count}%
br w-2c w-2c w+1c w+1c
%Ende
%End-Präfix

Es können auch zusätzliche Vorverarbeitungsparameter --nosend und --noremove angegeben werden. Sehen Sie sich ihre an
Beschreibung oben.

exportieren [Funktionsnamen]
Schicken fvm die Definition von Shortcut-Funktionen, die dabei helfen, verschiedene zu aktivieren
Aktionen des Moduls (d. h eval, Belastung und Vorverarbeitung).

Funktionsnamen (Funktionsnamen) können durch Kommas und/oder Leerzeichen getrennt werden. Standardmäßig,
zwei Funktionen „Eval“ und „.“ sind angenommen.

Die tatsächliche Aktion, die in einer Funktion definiert ist, wird nach Möglichkeit anhand des Funktionsnamens erraten.
wo Funktionsname „.“ ist reserviert für Vorverarbeitung Maßnahmen.

Zum Beispiel einer dieser beiden fvwm-Befehle

SendToModule MyPerl export PerlEval,PP
FvwmPerl --export PerlEval,PP MyPerl

Definieren Sie die folgenden zwei Verknüpfungsfunktionen:

DestroyFunc PerlEval
AddToFunc I SendToModule MyPerl eval $*
DestroyFunc PP
AddToFunc I SendToModule MyPerl preprocess -c -- $*

Diese 4 Aktionen können auf drei Arten angefordert werden: 3) in der Befehlszeile, wenn FvwmPerl ist
aufgerufen (in diesem Fall ist FvwmPerl nur von kurzer Dauer, es sei denn --bleiben or --Export ist auch gegeben), 2)
durch Senden der entsprechenden Nachricht in der FVWM-Konfiguration mit SendToModule, 3) durch Aufrufen von
entsprechende Perl-Funktion im Perl-Code.

FUNKTIONEN


Es gibt mehrere Funktionen, die Perl-Code aufrufen kann:

cmd($fvwm_command)
Im Falle von eval or Belastung - Einen String an fvwm zurücksenden $fvwm_command. Im Falle von
Vorverarbeitung - Eine Zeichenfolge anhängen $fvwm_command zur Ausgabe des eingebetteten Perl-Codes.

do_eval($perl_code)
Diese Funktion entspricht der eval Funktionalität auf der Saite $perl_code,
oben beschrieben.

Belastung($Dateiname)
Diese Funktion entspricht der Belastung Funktionalität für die Datei $filename, beschrieben
zu teilen.

Vorprozess(@params, ["-C $command"] [$Dateiname])
Diese Funktion entspricht der Vorverarbeitung Funktionalität mit den angegebenen Parametern
und die oben beschriebene Datei $filename.

Export($func_names, [$do_unexport])
Diese Funktion entspricht der exportieren Funktionalität mit den angegebenen $func_names,
oben beschrieben. Könnte auch nicht exportieren die Funktionsnamen, wenn der zweite Parameter wahr ist.

Funktionsnamen sollten durch Kommas und/oder Leerzeichen getrennt werden. Wenn $func_names is
leer, dann Funktionen „Eval“ und „.“ sind angenommen.

halt()
Beendet das Modul.

überspringen()
Überspringt den Rest des Ereignisrückrufcodes, d. h. das Modul kehrt zurück, um auf Neues zu hören
Modulveranstaltungen.

Freischalten()
Hebt die Synchronisierung des Ereignisrückrufs von fvwm auf. Dies kann nützlich sein, um Deadlocks zu verhindern.
Das heißt, fvwm beendet normalerweise das nicht antwortende Modul, wenn der Ereignisrückruf nicht erfolgt
fertig in ModuleTimeout Sekunden. Dies verhindert es.

Dieses Beispiel führt dazu, dass FvwmPerl seine Ausführung für eine Minute anhält:

SendModule FvwmPerl eval unlock(); schlafen(60);

Stellen Sie jedoch sicher, dass fvwm auf keinen Fall eine neue Nachricht sendet, während das Modul aktiv ist
beschäftigt, und fvwm bleibt zu lange auf diese neue Nachricht fixiert. Siehe auch die DETACH
Lösung, wenn Sie langfristige Operationen benötigen.

ablösen()
Verzweigt den Rest des Ereignisrückrufcodes und trennt ihn vom Hauptprozess. Das vielleicht
Dies kann nützlich sein, um zu verhindern, dass das Modul beendet wird, wenn sein Ereignisrückruf lange dauern sollte
zu vervollständigen und es kann bei dem freistehenden Kind durchgeführt werden. Das losgelöste Kind darf noch
Senden Sie Befehle an fvwm (verlassen Sie sich nicht darauf), aber empfangen Sie die Ereignisse natürlich nicht
wird sofort beendet, nachdem die Rückrufausführung abgeschlossen ist.

Wenn Du ablösen(), besser nur Befehle an fvwm in einem Prozess senden (dem Hauptprozess oder
der abgetrennte), sonst kann es oft zu Konflikten kommen.

zeige Nachricht($msg, $title[, $use_stderr_too=1])
Zeigt ein Dialogfenster mit der angegebenen Meldung an, wobei das im gefundene X-Tool verwendet wird
System funktionieren.

See FVWM::Module::Toolkit::zeige Nachricht um mehr zu erfahren.

VARIABLEN


Es gibt mehrere globale Variablen im Haupt- Namespace, der im Perl verwendet werden kann
Code:

$a, $b, ... $h
@a, @b, ... @h
%a, %b, ... %h

Sie werden alle auf den leeren Wert initialisiert und können zum Speichern eines Status dazwischen verwendet werden
verschiedene Aufrufe von FvwmPerl-Aktionen (eval und Belastung).

Wenn Sie lesbarere Variablennamen benötigen, schreiben Sie entweder „no strict ‚vars‘;“ am Anfang von
jeden Perl-Code oder verwenden Sie dafür einen Hash, wie zum Beispiel:

$h{id} = $h{first_name} . " " . $h{second_name}

oder verwenden Sie einen Paketnamen, wie zum Beispiel:

@MyMenu::terminals = qw( xterm rxvt );
$MyMenu::item_num = @MyMenu::terminals;

Möglicherweise gibt es eine Konfigurationsoption zum Ein- und Ausschalten der Strenge.

MITTEILUNGEN


FvwmPerl kann Nachrichten mit dem Fvwm-Befehl SendToModule empfangen. Die Namen, Bedeutungen und
Die Parameter der Nachrichten sind dieselben wie die entsprechenden oben beschriebenen Aktionen.

Zusätzlich eine Nachricht halt bewirkt, dass ein Modul beendet wird.

Eine Nachricht nicht exportieren [Funktionsnamen] macht den Effekt von rückgängig exportieren, beschrieben in den AKTIONEN
.

Eine Nachricht abladen Gibt den Inhalt der geänderten Variablen aus (noch nicht).

Beispiele:


Ein einfacher Test:

SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load($h{dir} . "/test.fpl")
SendToModule FvwmPerl lädt $[HOME]/test.fpl
SendToModule FvwmPerl verarbeitet config.ppp vor
SendToModule FvwmPerl export Eval,PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl deexportiert PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl stoppt

Das folgende Beispiel behandelt Root-Hintergründe in fvwmrc. Alle diese Befehle können hinzugefügt werden
zu StartFunction.

Modul FvwmPerl --export PerlEval

# alle Hintergrund-Pixmaps für eine spätere Verwendung finden
PerlEval $a = $ENV{HOME} . "/bg"; \
opendir DIR, $a; @b = grep { /xpm$/ } readdir(DIR); geschlossenir DIR

# Erstellen Sie ein Menü mit Hintergrund-Pixmaps
AddToMenu MyBackgrounds Titel „Meine Hintergründe“.
PerlEval foreach $b (@b) \
{ cmd("AddToMenu MyBackgrounds '$b' Exec fvwm-root $a/$b") }

# Wählen Sie einen zufälligen Hintergrund, der beim Start geladen werden soll
PerlEval cmd("AddToFunc \
InitFunction + I Exec exec fvwm-root $a/" . $b[int(random(@b))])

FLUCHT


SendToModule Genau wie alle anderen FVWM-Befehle werden mehrere Variablen mit Dollar-Präfix erweitert.
Dies kann mit den von Perl verwendeten Dollars kollidieren. Sie können dies vermeiden, indem Sie SendToModule voranstellen
mit einem führenden Bindestrich. Die folgenden 2 Zeilen in jedem Paar sind äquivalent:

SendToModule FvwmPerl eval $$d = "$[DISPLAY]"
-SendToModule FvwmPerl eval $d = "$ENV{DISPLAY}"

SendToModule FvwmPerl eval \
cmd("Echo Desk=$d, Display=$$d")
SendToModule FvwmPerl preprocess -c \
Echo Desk=%("$d")%, Display=%{$$d}%

Eine andere Lösung, um das Entkommen spezieller Symbole wie Dollars und Backslashes zu vermeiden, besteht darin, Folgendes zu tun:
Erstellen Sie eine Perl-Datei in ~/.fvwm und dann laden:

SendToModule FvwmPerl lädt build-menus.fpl

Wenn Sie einen Befehl, der mit einem Bindestrich beginnt, vorverarbeiten müssen, sollten Sie ihn mit voranstellen
„--“.

# Dies gibt den aktuellen Schreibtisch aus, also „0“
SendToModule FvwmPerl preprocess -c Echo "$%{$a = "c"; ++$a}%"
# Dies gibt „$d“ aus
SendToModule FvwmPerl preprocess -c -- -Echo "$%{"d"}%"
# Dies gibt „$d“ aus (SendToModule erweitert $$ zu $)
SendToModule FvwmPerl preprocess -c -- -Echo "$$%{"d"}%"
# Dies gibt „$$d“ aus
-SendToModule FvwmPerl preprocess -c -- -Echo "$$%{"d"}%"

Auch hier wird empfohlen, Ihre Befehle in eine Datei zu schreiben und stattdessen die Datei vorzuverarbeiten.

VORSICHTEN


Da FvwmPerl in Perl geschrieben ist und sich mit Perl befasst, folgt es dem berühmten Perl-Motto:
„Es gibt mehr als einen Weg“, also liegt die Wahl bei Ihnen.

Hier sind weitere Paare äquivalenter Linien:

Modul FvwmPerl --load "my.fpl" --stay
Modul FvwmPerl -e 'load("my.fpl")' -s

SendToModule FvwmPerl-Vorprozess --quote '@' my.ppp
SendToModule FvwmPerl eval preprocess({quote => '@'}, "my.ppp");

Achtung: Sie können die Funktionsweise von FvwmPerl beeinflussen, indem Sie den entsprechenden Perl-Code auswerten
wird als Funktion und nicht als Fehler betrachtet. Aber bitte tun Sie das nicht, schreiben Sie Ihr eigenes FVWM-Modul
stattdessen in Perl.

Verwenden Sie FvwmPerl online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    SCHLUCK
    SCHLUCK
    SWIG ist ein Softwareentwicklungstool
    das verbindet in C geschriebene Programme und
    C++ mit einer Vielzahl von High-Level
    Programmiersprachen. SWIG wird mit verwendet
    anders...
    SWIG herunterladen
  • 2
    WooCommerce Nextjs Reaktionsthema
    WooCommerce Nextjs Reaktionsthema
    Reagieren Sie mit dem WooCommerce-Theme, das mit erstellt wurde
    Als nächstes JS, Webpack, Babel, Node und
    Express mit GraphQL und Apollo
    Klient. WooCommerce-Shop in React(
    enthält: Produkte...
    Laden Sie WooCommerce Nextjs React Theme herunter
  • 3
    archlabs_repo
    archlabs_repo
    Paket-Repo für ArchLabs Dies ist eine
    Anwendung, die auch abgerufen werden kann
    für
    https://sourceforge.net/projects/archlabs-repo/.
    Es wurde in OnWorks gehostet in...
    Laden Sie archlabs_repo herunter
  • 4
    Zephyr-Projekt
    Zephyr-Projekt
    Das Zephyr Project ist eine neue Generation
    Echtzeitbetriebssystem (RTOS), das
    unterstützt mehrere Hardware
    Architekturen. Es basiert auf einer
    Kernel mit kleinem Fußabdruck ...
    Laden Sie das Zephyr-Projekt herunter
  • 5
    SCons
    SCons
    SCons ist ein Software-Konstruktionstool
    das ist eine überlegene Alternative zum
    klassisches "Make"-Build-Tool, das
    wir alle kennen und lieben. SCons ist
    implementiert ein...
    Laden Sie SCons herunter
  • 6
    PSInt
    PSInt
    PSeInt ist ein Pseudocode-Interpreter für
    spanischsprachige Programmierstudenten.
    Sein Hauptzweck ist es, ein Werkzeug für
    Grundlegendes lernen und verstehen
    Konzept...
    PSeInt herunterladen
  • Mehr »

Linux-Befehle

Ad