EngelsFransSpaans

Ad


OnWorks-favicon

FvwmPerl - Online in de cloud

Voer FvwmPerl uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht FvwmPerl die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


FvwmPerl - de fvwm perl-manipulator en preprocessor

KORTE INHOUD


FvwmPerl zou moeten worden voortgebracht door fvwm(1) voor normale functionaliteit.

Om deze module uit te voeren, plaatst u deze opdracht ergens in de configuratie:

Module FvwmPerl [parameters]

of:

ModuleSynchroniseer FvwmPerl [params]

als u onmiddellijk opdrachten naar FvwmPerl wilt verzenden.

PRODUCTBESCHRIJVING


Deze module is bedoeld om fvwm-opdrachten uit te breiden met de perl-scriptkracht. Het maakt mogelijk
om perl-expressies in de fvwm-configuratiebestanden in te sluiten en fvwm-opdrachten te construeren.

AANROEPING


Als u de unieke en persistente instantie van FvwmPerl wilt aanroepen, wordt u aangeraden dit te doen
doe dit vanuit de Startfunctie. Van bovenaf aanroepen kan ook, maar brengt met zich mee
enkele kwesties die hier niet worden besproken.

AddToFunc StartFunctie I Module FvwmPerl

Er zijn verschillende opdrachtregelopties:

FvwmPerl [ --evaluatie lijn ] [ --laden bestand ] [ --voorverwerken [ --citaat teken ] [ --winid breed ] [
--cmd ] [ --niet sturen ] [ --niet verwijderen ] [ lijn | bestand ] ] [ --exporteren [namen] ] [ --verblijf ] [
--geen slot ] [alias]

Lange schakelaars kunnen worden afgekort tot korte schakelaars van één letter.

-e|--evaluatie line - evalueer de gegeven perl-code

-l|--laden bestand - evalueer de perl-code in het opgegeven bestand

-p|--voorverwerken [ bestand ] - verwerk het opgegeven fvwm-configuratiebestand voor

De volgende 5 opties zijn alleen geldig in combinatie met --voorverwerken optie.

-c|--cmd line - een fvwm-opdracht die moet worden voorbewerkt in plaats van een bestand

-q|--citaat char - wijzig het standaard '%'-aanhalingsteken

-w|--winid wid - stel expliciete venstercontext in (moet beginnen met een cijfer, mag in oct of
zeshoekige vorm; dit venster-ID overschrijft eventuele impliciete venstercontext)

--niet sturen - stuur het voorverwerkte bestand niet naar fvwm For Leesing, de standaardinstelling is verzenden.
Handig voor het voorbewerken van niet-fvwm-configuratiebestanden.

--niet verwijderen - verwijder het voorverwerkte bestand niet nadat u het hebt verzonden naar fvwm For Leesing, de
standaard is verwijderen. Handig voor het debuggen.

-x|--exporteren [namen] - definieer fvwm-snelkoppelingsfuncties (standaard worden er twee functies genoemd
"Eval" en "."). Deze optie impliceert --verblijf.

-s|--verblijf - vervolgt een executie daarna --evaluatie, --laden or --voorverwerken zijn verwerkt. Door
standaard is de module in dit geval niet persistent, dwz --niet blijven wordt verondersteld.

--geen slot - wanneer een van de 3 actie-opties wordt gegeven, zorgt deze optie voor ontgrendeling fvwm
onmiddellijk. Standaard wordt de gevraagde actie synchroon uitgevoerd; dit maakt alleen maar
verschil wanneer aangeroepen als:

ModuleSynchronous FvwmPerl --bewerk someconfig.ppp voor

If --geen slot wordt hier toegevoegd, ModuleSynchroon keert onmiddellijk terug. Let daar op Module Retourneren
onmiddellijk, ongeacht deze optie.

GEBRUIK MAKEND VAN ALIAS


Aliassen maken het mogelijk om meerdere module-aanroepen te hebben en afzonderlijk te werken met alle aanroepen,
Hier is een voorbeeld:

ModuleSynchroon 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

VOORBEWERKING VOORBEELD


Een van de effectieve proprocessing-oplossingen is om de hele fvwm-configuratie door te geven
perl-code ingesloten in "FvwmPerl --preprocess". Een alternatieve benadering is het schrijven van een perl
script dat fvwm-opdrachten produceert en deze ter uitvoering verzendt, kan dit script worden geladen
met behulp van "FvwmPerl --load". Er zijn echter tussenoplossingen die alleen voorbewerken
afzonderlijke configuratieregels (of voer als alternatief afzonderlijke perl-opdrachten uit die
fvwm-opdrachten produceren).

Het volgende codefragment voegt mogelijkheden voor rekenkunde en tekenreeksscripting toe aan bepaalde
lijnen die dit nodig hebben. Om dit te gebruiken, wil je FvwmPerl als je eerste commando starten
dat kan worden gevraagd om andere opdrachten vooraf uit te voeren.

ModuleSynchroniseer FvwmPerl

AddToFunc .
+ Ik SendToModule FvwmPerl voorbewerken -c -- $*

. Exec exec xterm -name xterm-%{++$i}% # gebruik unieke naam

. GotoDesk 0 %{ $[desk.n] + 1 }% # ga naar het volgende bureau

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

# centreer een venster
Volgende (MijnVenster) . Beweging \
%{($WIDTH - $[w.breedte]) / 2}%p %{($HEIGHT - $[w.hoogte]) / 2}%p

. Exec exec xmessage %{2 + 2}% # eenvoudige rekenmachine

. %{main::show_message(2 + 2, "Nog een rekenmachine"); ""}%

ACTIES


Er zijn verschillende acties die FvwmPerl kan uitvoeren:

eval perl-code
Evalueer een regel perl-code.

Een bijzondere functie cmd("opdracht") kan worden gebruikt in perl-code om opdrachten naar terug te sturen
fvwm.

Als de perl-code een fout bevat, wordt deze afgedrukt naar de standaardfoutstroom met de
[FvwmPerl][eval]: koptekst voorafgegaan.

laden bestandsnaam
Laad een bestand met perl-code. Als het bestand niet volledig gekwalificeerd is, wordt het doorzocht in de
gebruikersmap $FVWM_USERDIR (meestal ~/.fvwm) en de systeembrede gegevensmap
$FVWM_DATADIR.

Een bijzondere functie cmd("opdracht") kan worden gebruikt in perl-code om opdrachten naar terug te sturen
fvwm.

Als de perl-code een fout bevat, wordt deze afgedrukt naar de standaardfoutstroom met de
[FvwmPerl][laden]: koptekst voorafgegaan.

voorbewerken [-q|--quote char] [-c|--cmd] [lijn | filet]
Fvwm-configuratie voorbewerken filet of (als --cmd is opgegeven) lijn. Dit bestand bevat regels die
worden niet aangeraakt (meestal fvwm-opdrachten) en dat is speciaal voorgeformatteerde perl-code
verwerkt en vervangen. Tekst ingesloten %{ ... }% scheidingstekens, die overal kunnen beginnen
op de regel en ergens op dezelfde of een andere regel eindigen, is perl-code.

De citeren parameter verandert perl-codescheidingstekens. Als er een enkel teken wordt opgegeven, bijvoorbeeld
'@', de scheidingstekens zijn @{ ... }@. Als het opgegeven citaat uit 2 tekens bestaat, bijvoorbeeld <>, de citaten
zijn <{ ... }>

De perl-code wordt vervangen door het resultaat van de evaluatie. Dat wil zeggen %{$a = "c"; ++$a}%
wordt vervangen door "d".

De evaluatie is anders eval en laden gebeurt onder het pakket PreprocessNamespace
en zonder . streng, dus u bent vrij om elke variabelenaam te gebruiken zonder angst
conflicten. Gebruik gewoon geen niet-geïnitialiseerde variabelen om undef of een lege lijst aan te duiden (ze
kan in feite worden geïnitialiseerd door de vorige voorbewerkingsactie), en voer een opschoning uit als
nodig zijn. De variabelen en functie in de hoofd- pakket zijn nog steeds beschikbaar, zoals
::cmd() of ::overslaan(), maar het is gewoon geen goed idee om er terwijl u toegang toe hebt
voorbewerking.

Er is een speciale functie omvatten(filet) dat een bestand laadt, voorbewerkt en
retourneert het voorbewerkte resultaat. Vermijd recursie.

Als een ingebedde perl-code een fout bevat, wordt deze afgedrukt volgens de standaardfout
stream en voorafgegaan door de [FvwmPerl][voorbewerken]: koptekst. Het resultaat van
vervanging is in dit geval leeg.

De volgende variabelen kunnen in de perl-code worden gebruikt:

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

De volgende op regels gebaseerde richtlijnen worden herkend bij het voorbewerken. Zij zijn
verwerkt nadat de perl-code (indien aanwezig) is vervangen.

%herhaling tellen
Zorgt ervoor dat de volgende regels worden herhaald tellen tijden.

%ModuleConfig module naam [ vernietigen ]
Zorgt ervoor dat de volgende regels worden geïnterpreteerd als de gegeven moduleconfiguratie. Als
"vernietigen" is gespecificeerd, de vorige moduleconfiguratie wordt eerst vernietigd.

%Voorvoegsel voorvoegsel
Geeft de volgende regels een voorvoegsel met de aanhalingstekens voorvoegsel.

%Einde elke-optionele-opmerking
Beëindigt elk van de hierboven beschreven richtlijnen, kan genest zijn.

Voorbeelden:

%Voorvoegsel "AddToFunc SwitchToWindow I"
Iconificeer uit
Raam Schaduw uit
verhogen
WarpToWindow 50 50
%Einde

%ModuleConfig FvwmPager vernietigen
Kleurenset 0
Lettertype lucidasans-10
DeskTopScale 28
MiniIconen
%End ModuleConfig FvwmPager

%Prefix "Alles (MyWindowToAnimate) ResizeMove "
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%Herhaal %{$count}%
br w+2c w+2c w-1c w-1c
%Einde
%Herhaal %{$count}%
br w-2c w-2c w+1c w+1c
%Einde
%Eindvoorvoegsel

Er kunnen ook aanvullende preprocessparameters --nosend en --noremove worden opgegeven. Zie hun
beschrijving bovenaan.

exporteren [func-namen]
Stuur naar fvwm de definitie van snelkoppelingsfuncties die helpen bij het activeren van verschillende
acties van de module (bijv eval, laden en voorbewerken).

Functienamen (func-namen) mag worden gescheiden door komma's en/of witruimte. Standaard,
twee functies "Eval" en "." Worden aangenomen.

De daadwerkelijke actie die in een functie is gedefinieerd, wordt indien mogelijk geraden op basis van de functienaam.
waarbij functienaam "." is gereserveerd voor voorbewerken actie.

Bijvoorbeeld elk van deze twee fvwm-opdrachten

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

definieer de volgende twee snelkoppelingsfuncties:

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

Deze 4 acties kunnen op één van de volgende 3 manieren worden aangevraagd: 1) op de opdrachtregel wanneer FvwmPerl is
aangeroepen (in dit geval is FvwmPerl van korte duur tenzij --verblijf or --exporteren wordt ook gegeven), 2)
door het overeenkomstige bericht in fvwm-config te verzenden met behulp van SendToModule, 3) door het aan te roepen
overeenkomstige perl-functie in perl-code.

FUNCTIES


Er zijn verschillende functies die perl-code kan aanroepen:

cmd($fvwm_opdracht)
In het geval van eval or laden - stuur een string terug naar fvwm $fvwm_opdracht. In het geval van
voorbewerken - voeg een string toe $fvwm_opdracht naar de uitvoer van de ingebedde perl-code.

doen_eval($perl_code)
Deze functie is gelijkwaardig aan de eval functionaliteit op de string $perl_code,
hierboven omschreven.

laden($bestandsnaam)
Deze functie is gelijkwaardig aan de laden functionaliteit op het bestand $filename, beschreven
bovenstaand.

voorbewerken(@parameters, ["-C $opdracht"] [$bestandsnaam])
Deze functie is gelijkwaardig aan de voorbewerken functionaliteit met de gegeven parameters
en het hierboven beschreven bestand $filename.

exporteren($func_names, [$do_unexport])
Deze functie is gelijkwaardig aan de exporteren functionaliteit met de gegeven $func_names,
hierboven omschreven. Mag ook niet exporteren de functienamen als de tweede parameter waar is.

Functienamen moeten worden gescheiden door komma's en/of witruimte. Als $func_names is
leeg en dan de functies "Eval" en "." Worden aangenomen.

hou op()
Beëindigt de module.

overslaan()
Slaat de rest van de terugbelcode van de gebeurtenis over, dwz de module keert terug om naar nieuw te luisteren
module-evenementen.

ontgrendelen()
Synchroniseert de gebeurtenisterugroep van fvwm. Dit kan nuttig zijn om impasses te voorkomen,
dwz meestal doodt fvwm de niet-reagerende module als de gebeurtenis-callback niet plaatsvindt
afgewerkt in ModuleTime-out seconden. Dit verhindert het.

Dit voorbeeld zorgt ervoor dat FvwmPerl de uitvoering ervan één minuut opschort:

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

Controleer echter of er op geen enkele manier een nieuw bericht wordt verzonden door fvwm terwijl de module actief is
bezet, en fvwm blijft te lang op dit nieuwe bericht vergrendeld. Zie ook de DETACH
oplossing als u langdurige operaties nodig heeft.

losmaken
Splitst en ontkoppelt de rest van de gebeurtenis-callback-code van het hoofdproces. Dit zou
kan nuttig zijn om te voorkomen dat de module wordt gedood als de terugroep van de gebeurtenis lang duurt
in te vullen en kan bij het afstandelijke kind worden gedaan. Het afstandelijke kind kan nog steeds
stuur commando's naar fvwm (vertrouw hier niet op), maar ontvang natuurlijk niet de gebeurtenissen
wordt onmiddellijk afgesloten nadat de callback-uitvoering is voltooid.

Als u gebruik maken van losmaken, kun je beter alleen opdrachten naar fvwm sturen in één proces (het hoofdproces of
de afstandelijke), anders doen kan vaak conflicten veroorzaken.

toon bericht($msg, $title[, $use_stderr_too=1])
Toont een dialoogvenster met het gegeven bericht, met behulp van de X-tool die in het bestand wordt gevonden
systeem.

Bekijk FVWM::Module::Toolkit::toon bericht voor meer informatie.

VARIABELEN


Er zijn verschillende globale variabelen in de hoofd- naamruimte die in de perl kan worden gebruikt
code:

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

Ze zijn allemaal geïnitialiseerd op de lege waarde en kunnen worden gebruikt om een ​​status tussen op te slaan
verschillende oproepen naar FvwmPerl-acties (eval en laden).

Als je beter leesbare namen van variabelen nodig hebt, schrijf dan "geen strikte 'vars';" aan het begin van
elke perl-code of gebruik hiervoor een hash, zoals:

$h{id} = $h{voornaam} . " ". $h{tweede_naam}

of gebruik een pakketnaam, zoals:

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

Er is mogelijk een configuratieoptie om striktheid in en uit te schakelen.

BERICHTEN


FvwmPerl kan berichten ontvangen met behulp van de fvwm-opdracht SendToModule. De namen, betekenissen en
parameters van de berichten zijn hetzelfde als de overeenkomstige acties, hierboven beschreven.

Daarnaast een bericht stoppen zorgt ervoor dat een module stopt.

Een bericht niet exporteren [func-namen] maakt het effect ongedaan exporteren, beschreven in de ACTIES
pagina.

Een bericht storten dumpt de inhoud van de gewijzigde variabelen (nog niet).

Voorbeelden


Een eenvoudige test:

SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load($h{dir} . "/test.fpl")
SendToModule FvwmPerl laadt $[HOME]/test.fpl
SendToModule FvwmPerl preprocess config.ppp
SendToModule FvwmPerl export Eval,PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl unexport PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl stop

In het volgende voorbeeld worden rootachtergronden in fvwmrc behandeld. Al deze commando's kunnen worden toegevoegd
naar StartFunctie.

Module FvwmPerl --exporteer PerlEval

# vind alle achtergrondpixmaps voor later gebruik
PerlEval $a = $ENV{HOME} . "/bg"; \
opendir DIR, $a; @b = grep { /xpm$/ } leesmap(DIR); geslotenir DIR

# bouw een menu met achtergrondpixmaps
AddToMenu Mijnachtergronden Titel "Mijn achtergronden".
PerlEval foreach $b (@b) \
{ cmd("AddToMenu Mijn Achtergrond '$b' Exec fvwm-root $a/$b") }

# kies een willekeurige achtergrond om te laden bij het opstarten
PerlEval cmd("AddToFunc \
InitFunction + I Exec exec fvwm-root $a/" . $b[int(random(@b))])

ONTSNAPPEN


VerzendenNaarModule net als alle andere fvwm-opdrachten worden verschillende variabelen met dollarvoorvoegsel uitgebreid.
Dit kan botsen met de dollars die perl gebruikt. U kunt dit voorkomen door SendToModule vooraf te laten gaan
met een leidend streepje. De volgende 2 regels in elk paar zijn gelijkwaardig:

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

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

Een andere oplossing om te voorkomen dat u aan speciale symbolen zoals dollars en backslashes ontsnapt, is door
maak een perl-bestand aan ~/.fvwm en laad het dan:

SendToModule FvwmPerl laadt build-menus.fpl

Als u één opdracht moet voorbewerken, beginnend met een liggend streepje, moet u deze vooraf laten gaan met
"--".

# dit drukt het huidige bureau af, dat wil zeggen "0"
SendToModule FvwmPerl preprocess -c Echo "$%{$a = "c"; ++$a}%"
# dit drukt "$d" af
SendToModule FvwmPerl voorbewerken -c -- -Echo "$%{"d"}%"
# hierdoor wordt "$d" afgedrukt (SendToModule breidt $$ uit naar $)
SendToModule FvwmPerl voorbewerken -c -- -Echo "$$%{"d"}%"
# dit drukt "$$d" af
-SendToModule FvwmPerl voorbewerken -c -- -Echo "$$%{"d"}%"

Nogmaals, er wordt voorgesteld om uw opdracht(en) in een bestand te plaatsen en in plaats daarvan het bestand voor te verwerken.

WAARSCHUWINGEN


FvwmPerl wordt geschreven in perl en gaat over perl, volgens het beroemde perl-motto:
"Er is meer dan één manier om het te doen", dus de keuze is aan jou.

Hier zijn meer paren gelijkwaardige lijnen:

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

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

Waarschuwing: u kunt de manier waarop FvwmPerl werkt beïnvloeden door de juiste perl-code te evalueren
wordt beschouwd als een functie en niet als een bug. Maar doe dit alsjeblieft niet, schrijf je eigen fvwm-module
in plaats daarvan in perl.

Gebruik FvwmPerl online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    SLOK
    SLOK
    SWIG is een tool voor softwareontwikkeling
    dat programma's verbindt die zijn geschreven in C en
    C ++ met een verscheidenheid aan high-level
    programmeertalen. SWIG wordt gebruikt met
    verschillend...
    SWIG downloaden
  • 2
    WooCommerce Nextjs React-thema
    WooCommerce Nextjs React-thema
    Reageer WooCommerce-thema, gebouwd met
    Volgende JS, Webpack, Babel, Node en
    Express, met behulp van GraphQL en Apollo
    Cliënt. WooCommerce Store in React(
    bevat: Producten...
    Download het WooCommerce Nextjs React-thema
  • 3
    archlabs_repo
    archlabs_repo
    Pakketrepo voor ArchLabs Dit is een
    toepassing die ook kan worden opgehaald
    oppompen van
    https://sourceforge.net/projects/archlabs-repo/.
    Het is gehost in OnWorks in...
    Archlabs_repo downloaden
  • 4
    Zephyr-project
    Zephyr-project
    Het Zephyr Project is een nieuwe generatie
    real-time besturingssysteem (RTOS) dat
    ondersteunt meerdere hardware
    architecturen. Het is gebaseerd op een
    kernel met kleine voetafdruk ...
    Zephyr-project downloaden
  • 5
    SConen
    SConen
    SCons is een softwareconstructietool
    dat is een superieur alternatief voor de
    klassieke "Make" build-tool die
    we kennen en houden allemaal van. SCons is
    implementeerde een...
    SCons downloaden
  • 6
    PSeInt
    PSeInt
    PSeInt is een pseudo-code-interpreter voor
    Spaanstalige programmeerstudenten.
    Het belangrijkste doel is om een ​​hulpmiddel te zijn voor:
    de basis leren en begrijpen
    concept...
    PSeInt downloaden
  • Meer "

Linux-commando's

Ad