EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

FvwmPerl - Online în cloud

Rulați FvwmPerl în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda FvwmPerl care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


FvwmPerl - manipulatorul și preprocesorul fvwm perl

REZUMAT


FvwmPerl ar trebui să fie generat de fvwm(1) pentru funcționalitate normală.

Pentru a rula acest modul, plasați această comandă undeva în configurație:

Modulul FvwmPerl [params]

sau:

ModuleSynchronize FvwmPerl [parametri]

dacă doriți să începeți imediat să trimiteți comenzi către FvwmPerl.

DESCRIERE


Acest modul este destinat să extindă comenzile fvwm cu puterea de scriptare perl. Permite
pentru a încorpora expresii perl în fișierele de configurare fvwm și pentru a construi comenzi fvwm.

INVOCARE


Dacă doriți să invocați instanța unică și persistentă a FvwmPerl, vă recomandăm
face asta de la StartFunction. A o chema de sus este și posibil, dar implică
unele probleme care nu sunt discutate aici.

AddToFunc StartFunction I Modulul FvwmPerl

Există mai multe comutatoare în linia de comandă:

FvwmPerl [ --eval linie ] [ --sarcină fisier ] [ --preproces [ --citat char ] [ --winid lat ] [
--cmd ] [ --nasul ] [ --noremove ] [ linie | fisier ] ] [ --export [nume] ] [ --stau ] [
--nolock ] [ alias ]

Comutatoarele lungi pot fi abreviate la comutatoare scurte cu o literă.

-e|--eval line - evaluează codul perl dat

-l|--sarcină fișier - evaluează codul perl din fișierul dat

-p|--preproces [fișier] - preprocesează fișierul de configurare fvwm dat

Următoarele 5 opțiuni sunt valabile numai împreună cu --preproces opțiune.

-c|--cmd line - o comandă fvwm care trebuie preprocesată în loc de fișier

-q|--citat char - schimbă cota „%” implicită

-w|--winid wid - setează contextul ferestrei explicite (ar trebui să înceapă cu cifra, poate fi în oct sau
formă hexagonală; acest ID de fereastră suprascrie contextul implicit al ferestrei, dacă există)

--nasul - nu trimiteți fișierul preprocesat către fvwm pentru Citesteing, implicit este trimitere.
Util pentru preprocesarea fișierelor de configurare non fvwm.

--noremove - nu eliminați fișierul preprocesat după ce l-ați trimis către fvwm pentru Citesteing
implicit este eliminare. Util pentru depanare.

-x|--export [nume] - definiți funcțiile de comandă rapidă fvwm (în mod implicit, două funcții numite
„Eval” și „.”). Această opțiune implică --stau.

-s|--stau - continuă o execuție după --eval, --sarcină or --preproces sunt procesate. De
implicit, modulul nu este persistent în acest caz, adică --nostay este asumat.

--nolock - când este dată una dintre cele 3 opțiuni de acțiune, această opțiune provoacă deblocarea fvwm
imediat. În mod implicit, acțiunea solicitată este executată sincron; asta face doar
diferență atunci când este invocată ca:

ModuleSynchronous FvwmPerl --preprocess someconfig.ppp

If --nolock se adauga aici, Modul Sincron revine imediat. Rețineți că Module Returnează
imediat indiferent de această opțiune.

UTILIZAREA ALIAS


Aliasurile permit să existe mai multe invocări de module și să lucreze separat cu toate invocările,
iata un exemplu:

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

PREPROCESAREA EXEMPLU


Una dintre soluțiile eficiente de procesare este să treceți întreaga configurație fvwm cu
codul perl încorporat în „FvwmPerl --preprocess”. O abordare alternativă este să scrieți un perl
script care produce comenzi fvwm și le trimite spre execuție, acest script poate fi încărcat
folosind „FvwmPerl --load”. Există totuși soluții intermediare care preprocesează numai
linii de configurare separate (sau, alternativ, executați comenzi perl separate care
produce comenzi fvwm).

Următorul fragment de cod adaugă capacitatea de aritmetică și scripting de șiruri la anumite
linii care au nevoie de asta. Pentru a utiliza acest lucru, doriți să porniți FvwmPerl ca prima comandă, așa că
ca alte comenzi să fie solicitate să fie preprocesate.

ModuleSynchronize FvwmPerl

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

. Exec exec xterm -name xterm-%{++$i}% # folosește un nume unic

. GotoDesk 0 %{ $[desk.n] + 1 }% # mergi la biroul următor

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

# centrați o fereastră
Următorul (MyWindow) . Mutare \
%{($WIDTH - $[w.width]) / 2}%p %{($HEIGHT - $[w.height]) / 2}%p

. Exec exec xmessage %{2 + 2}% # calculator simplu

. %{main::show_message(2 + 2, „Încă un calculator”); ""}%

ACȚIUNI


Există mai multe acțiuni pe care FvwmPerl le poate efectua:

eval cod perl
Evaluați o linie de cod perl.

O funcție specială cmd("comanda") poate fi folosit în codul perl pentru a trimite comenzi înapoi către
fvwm.

Dacă codul perl conține o eroare, aceasta este tipărită în fluxul de erori standard cu
[FvwmPerl][eval]: antet înainte.

încărca nume de fișier
Încărcați un fișier cu cod perl. Dacă fișierul nu este complet calificat, acesta este căutat în
directorul de utilizatori $FVWM_USERDIR (de obicei ~/.fvwm) și directorul de date la nivel de sistem
$FVWM_DATADIR.

O funcție specială cmd("comanda") poate fi folosit în codul perl pentru a trimite comenzi înapoi către
fvwm.

Dacă codul perl conține o eroare, aceasta este tipărită în fluxul de erori standard cu
[FvwmPerl][încărcare]: antet înainte.

preproces [-q|--quote char] [-c|--cmd] [linie | fişier]
Preprocesează fvwm config fişier sau (dacă este dat --cmd) linie. Acest fișier conține linii care
nu sunt atinse (de obicei comenzi fvwm) și codul perl special preformatat, adică
prelucrate si inlocuite. Text inclus în %{ ... }% delimitatoare, care pot începe oriunde
pe linie și se termină oriunde pe aceeași linie sau pe altă linie, este codul perl.

cita parametrul modifică delimitatorii codului perl. Dacă este dat un singur caracter, cum ar fi
„@”, delimitatorii sunt @{ ... }@. Dacă citatul dat este de 2 caractere, cum ar fi <>, ghilimele
sunt <{ ... }>

Codul perl este înlocuit cu rezultatul evaluării sale. Ie %{$a = "c"; ++$a}%
se înlocuiește cu „d”.

Evaluarea este diferită eval și încărca se face sub pachetul PreprocessNamespace
si fara utilizare strict, așa că sunteți liber să utilizați orice nume de variabilă fără teamă
conflicte. Doar nu folosiți variabile neinițializate pentru a însemna undef sau listă goală (ele
poate fi de fapt inițializat de acțiunea anterioară de preproces) și faceți o curățare dacă
Necesar. Variabilele și funcția din principal pachetele sunt încă disponibile, cum ar fi
::cmd() sau ::ocolire(), dar nu este o idee bună să le accesați în timp ce
preprocesare.

Există o funcție specială include(fişier) care încarcă un fișier, îl preprocesează și
returnează rezultatul preprocesat. Evita recursiunea.

Dacă orice cod perl încorporat conține o eroare, aceasta este tipărită la eroarea standard
stream și precedat cu [FvwmPerl][preproces]: antet. Rezultatul
înlocuirea este goală în acest caz.

Următoarele variabile pot fi utilizate în codul perl:

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

Următoarele directive bazate pe linii sunt recunoscute la preprocesare. Sunt
procesate după ce codul perl (dacă există) este înlocuit.

%Repeta conta
Determină repetarea următoarelor rânduri conta ori.

%ModuleConfig nume-modul [distruge]
Face ca următoarele linii să fie interpretate ca configurația dată a modulului. Dacă
„distruge” este specificat, configurația anterioară a modulului este distrusă mai întâi.

%Prefix prefix
Prefixează rândurile următoare cu citatele prefix.

%Sfârşit orice comentariu opțional
Se termină cu oricare dintre directivele descrise mai sus, poate fi imbricată.

Exemple:

%Prefix „AddToFunc SwitchToWindow I”
Iconify dezactivat
WindowShade off
A ridica
WarpToWindow 50 50
%Sfârșit

%ModuleConfig FvwmPager distruge
Set de culori 0
Font lucidasans-10
DeskTopScale 28
Miniicoane
% End ModuleConfig FvwmPager

%Prefixul „Toate (Ferea meaLaAnimă) RedimensionareMutare”
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%Repetă %{$count}%
br w+2c w+2c w-1c w-1c
%Sfârșit
%Repetă %{$count}%
br w-2c w-2c w+1c w+1c
%Sfârșit
% End Prefix

Pot fi dați și parametri suplimentari de preprocesare --nosend și --noremove. Vezi lor
descrierea în partea de sus.

exporturile [func-nume]
Trimite catre fvwm definirea funcțiilor de comenzi rapide care ajută la activarea diferitelor
acțiunile modulului (de ex eval, încărca și preproces).

Nume de funcții (func-nume) pot fi separate prin virgule sau/și spații albe. În mod implicit,
două funcții "Eval" și "." sunt presupuse.

Acțiunea reală definită într-o funcție este ghicită din numele funcției, dacă este posibil,
unde numele funcției "." este rezervat pentru preproces acţiune.

De exemplu, oricare dintre aceste două comenzi fvwm

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

definiți următoarele două funcții de scurtătură:

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

Aceste 4 acțiuni pot fi solicitate într-unul din 3 moduri: 1) în linia de comandă când FvwmPerl este
invocat (în acest caz FvwmPerl este de scurtă durată, cu excepția cazului în care --stau or --export este de asemenea dat), 2)
prin trimiterea mesajului corespunzător în fvwm config folosind SendToModule, 3) apelând la
funcția perl corespunzătoare în codul perl.

FUNCȚII


Există mai multe funcții pe care codul perl le poate apela:

cmd($fvwm_command)
In caz de eval or încărca - trimite înapoi la fvwm un șir $fvwm_command. In caz de
preproces - adăugați un șir $fvwm_command la ieșirea codului perl încorporat.

face_eval($perl_code)
Această funcție este echivalentă cu eval funcționalitate pe șir $perl_code,
descris mai sus.

sarcină($nume fișier)
Această funcție este echivalentă cu încărca funcționalitatea fișierului $filename, descrisă
de mai sus.

preprocesare(@params, ["-c $comanda"] [$filename])
Această funcție este echivalentă cu preproces funcționalitate cu parametrii dați
și fișierul $filename descris mai sus.

export($func_names, [$do_unexport])
Această funcție este echivalentă cu exporturile funcționalitate cu $func_names date,
descris mai sus. Poate, de asemenea dezexport funcția numește dacă al doilea parametru este adevărat.

Numele funcțiilor trebuie separate prin virgule sau/și spații albe. Dacă $func_names is
gol, apoi funcţionează „Eval” şi „.” sunt presupuse.

Stop()
Termină modulul.

ocolire()
Omite restul codului de apel invers al evenimentului, adică modulul revine pentru a asculta nou
evenimentele modulului.

debloca()
Desincronizează apelarea evenimentului de la fvwm. Acest lucru poate fi util pentru a preveni blocajele,
adică, de obicei, fvwm oprește modulul care nu răspunde dacă apelul înapoi la eveniment nu este
terminat în ModuleTimeout secunde. Acest lucru îl împiedică.

Acest exemplu determină FvwmPerl să-și suspende execuția timp de un minut:

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

Cu toate acestea, verificați că nu există nicio modalitate de a trimite un mesaj nou de către fvwm în timp ce modulul este
ocupat, iar fvwm rămâne blocat pentru acest nou mesaj prea mult timp. Vezi și DETAȘEAZĂ
soluție dacă aveți nevoie de operațiuni de lungă durată.

desprinde()
Bifurcă și detașează restul codului de apel invers al evenimentului din procesul principal. Acest lucru poate
să fie utilă pentru a preveni uciderea modulului în cazul în care revenirea la eveniment ar trebui să dureze mult timp
să completeze și se poate face la copilul detașat. Copilul detașat poate încă
trimiteți comenzi către fvwm (nu vă bazați pe asta), dar nu primiți, desigur, evenimentele
iese imediat după terminarea execuției callback.

Dacă utilizați desprinde(), mai bine trimiteți comenzi doar către fvwm într-un singur proces (cel principal sau
cel detașat), a face altfel poate provoca adesea conflicte.

arata_mesajul($msg, $title[, $use_stderr_too=1])
Afișează o fereastră de dialog cu mesajul dat, folosind instrumentul X găsit în
sistemului.

Vedea FVWM::Modul::Set de instrumente::arata_mesaj pentru mai multe informatii.

VARIABILE


Există mai multe variabile globale în principal namespace care poate fi folosit în perl
cod:

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

Toate sunt inițializate la valoarea goală și pot fi folosite pentru a stoca o stare între
diferite apeluri la acțiuni FvwmPerl (eval și încărca).

Dacă aveți nevoie de nume de variabile mai lizibile, fie scrieți „fără „vars” strict;” la inceputul lui
fiecare cod perl sau folosiți un hash pentru asta, cum ar fi:

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

sau utilizați un nume de pachet, cum ar fi:

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

Poate exista o opțiune de configurare pentru a activa și dezactiva strictitatea.

MESAJE


FvwmPerl poate primi mesaje folosind comanda fvwm SendToModule. Numele, semnificațiile și
parametrii mesajelor sunt aceiași cu acțiunile corespunzătoare, descrise mai sus.

În plus, un mesaj opri determină închiderea unui modul.

Un mesaj dezexport [func-nume] anulează efectul de exporturile, descrise în ACȚIUNI
secţiune.

Un mesaj descărca aruncă conținutul variabilelor modificate (nu încă).

EXEMPLE


Un test simplu:

SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load($h{dir} . "/test.fpl")
SendToModule FvwmPerl încărcă $[HOME]/test.fpl
SendToModule FvwmPerl preprocesare config.ppp
SendToModule FvwmPerl export Eval, PerlEval, PerlLoad, PerlPP
SendToModule FvwmPerl unexport PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl oprire

Următorul exemplu tratează fundalurile rădăcină în fvwmrc. Toate aceste comenzi pot fi adăugate
la StartFunction.

Modulul FvwmPerl --export PerlEval

# găsiți toate hărțile de fundal pentru o utilizare ulterioară
PerlEval $a = $ENV{HOME} . „/bg”; \
opendir DIR, $a; @b = grep { /xpm$/ } readdir(DIR); closedir DIR

# construiți un meniu de hărți pixeli de fundal
AddToMenu MyBackgrounds Titlul „My Backgrounds”.
PerlEval foreach $b (@b) \
{ cmd("AddToMenu MyBackgrounds '$b' Exec fvwm-root $a/$b") }

# alegeți un fundal aleatoriu pentru a încărca la pornire
PerlEval cmd("AddToFunc\
InitFunction + I Exec exec fvwm-root $a/" . $b[int(aleatoriu(@b))])

SCAPÂND


SendToModule la fel ca orice alte comenzi fvwm extinde mai multe variabile prefixate în dolari.
Acest lucru poate intra în conflict cu dolarii folosiți de Perl. Puteți evita acest lucru prefixând SendToModule
cu o liniuță de conducere. Următoarele 2 linii din fiecare pereche sunt echivalente:

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

SendToModule FvwmPerl eval \
cmd("Echo desk=$d, display=$$d")
SendToModule FvwmPerl preprocesare -c \
Echo desk=%("$d")%, afișare=%{$$d}%

O altă soluție pentru a evita scăparea de simboluri speciale precum dolari și bare oblice inverse este să
creați un fișier perl în ~/.fvwm si apoi incarca-l:

SendToModule FvwmPerl încărcă build-menus.fpl

Dacă trebuie să preprocesați o comandă care începe cu o liniuță, ar trebui să o precedeți folosind
„--”.

# aceasta tipărește biroul curent, adică „0”
SendToModule FvwmPerl preprocess -c Echo "$%{$a = "c"; ++$a}%"
# acesta afișează „$d”
SendToModule FvwmPerl preproces -c -- -Echo "$%{"d"}%"
# aceasta afișează „$d” (SendToModule extinde $$ la $)
SendToModule FvwmPerl preprocess -c -- -Echo "$$%{"d"}%"
# acesta afișează „$$d”
-SendToModule FvwmPerl preproces -c -- -Echo "$$%{"d"}%"

Din nou, se recomandă să introduceți comenzile în fișier și să preprocesați fișierul.

Avertismente


FvwmPerl fiind scris în perl și se ocupă de perl, urmează celebrul motto perl:
„Există mai multe moduri de a face acest lucru”, așa că alegerea este a ta.

Iată mai multe perechi de linii echivalente:

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

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

Atenție, puteți afecta modul în care funcționează FvwmPerl evaluând codul perl adecvat, acesta
este considerată o caracteristică, nu o eroare. Dar te rog nu face asta, scrie-ți propriul modul fvwm
în perl în schimb.

Utilizați FvwmPerl online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad