angielskufrancuskihiszpański

Uruchom serwery | Ubuntu > | Fedora > |


Ulubiona usługa OnWorks

FvwmPerl - Online w chmurze

Uruchom FvwmPerl u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie FvwmPerl, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


FvwmPerl — manipulator i preprocesor fvwm perla

STRESZCZENIE


FvwmPerl powinien być odradzany przez fvwm(1) dla normalnej funkcjonalności.

Aby uruchomić ten moduł, umieść to polecenie gdzieś w konfiguracji:

Moduł FvwmPerl [parametry]

lub:

ModuleSynchronize FvwmPerl [parametry]

jeśli chcesz natychmiast zacząć wysyłać polecenia do FvwmPerl.

OPIS


Ten moduł ma na celu rozszerzenie poleceń fvwm o moc skryptów perla. To umożliwia
do osadzania wyrażeń perla w plikach konfiguracyjnych fvwm i konstruowania poleceń fvwm.

WEZWANIE


Jeśli chcesz wywołać unikalną i trwałą instancję FvwmPerl, sugeruje się:
zrób to od Funkcja startu. Wywołanie go od góry jest również możliwe, ale wiąże się z
niektóre kwestie nie omówione tutaj.

AddToFunc StartFunction I Moduł FvwmPerl

Istnieje kilka przełączników wiersza poleceń:

FvwmPerl [ --ocena linia ] [ --Załaduj plik ] [ --przetwarzanie wstępne [ --cytat znak ] [ --winid szerokość ] [
--cmd ] [ --nosend ] [ --noremove ] [ linia | plik ] ] [ --eksport [nazwy] ] [ --zostać ] [
--brak blokady ] [ Alias ​​]

Długie przełączniki mogą być skracane do krótkich jednoliterowych przełączników.

-e|--ocena line - oceń podany kod perla

-l|--Załaduj plik - oceń kod perla w podanym pliku

-p|--przetwarzanie wstępne [ plik ] - wstępnie przetwórz podany plik konfiguracyjny fvwm

Poniższe 5 opcji jest ważnych tylko w połączeniu z --przetwarzanie wstępne opcja.

-c|--cmd line - polecenie fvwm do wstępnego przetworzenia zamiast pliku

-q|--cytat char - zmień domyślny cytat '%'

-w|--winid wid - ustaw wyraźny kontekst okna (powinien zaczynać się od cyfry, może być w oct lub
forma szesnastkowa; ten identyfikator okna nadpisuje niejawny kontekst okna, jeśli istnieje)

--nosend - nie wysyłaj wstępnie przetworzonego pliku do fvwm dla czytajdomyślnie jest to wyślij.
Przydatne do wstępnego przetwarzania plików konfiguracyjnych innych niż fvwm.

--noremove - nie usuwaj wstępnie przetworzonego pliku po wysłaniu go do fvwm dla czytajing,
domyślnie usuń. Przydatne do debugowania.

-x|--eksport [names] - definiuje funkcje skrótów fvwm (domyślnie dwie funkcje nazwane
"Eval" i "."). Ta opcja oznacza --zostać.

-s|--zostać - kontynuuje egzekucję po --ocena, --Załaduj or --przetwarzanie wstępne są przetwarzane. Za pomocą
domyślnie moduł nie jest w tym przypadku trwały, tzn. --Podczas pobytu zakłada się.

--brak blokady - gdy podana jest jedna z 3 opcji akcji, ta opcja powoduje odblokowanie fvwm
natychmiast. Domyślnie żądana akcja jest wykonywana synchronicznie; to tylko sprawia, że
różnica przy wywołaniu, jak:

ModuleSynchronous FvwmPerl --preprocess someconfig.ppp

If --brak blokady jest tutaj dodany, ModułSynchroniczny wraca natychmiast. Zauważ, że Moduł powraca
natychmiast, niezależnie od tej opcji.

ZA POMOCĄ ALIAS


Aliasy pozwalają na posiadanie kilku wywołań modułów i działają oddzielnie ze wszystkimi wywołaniami,
Oto przykład:

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

PRZETWARZANIE PRZYKŁAD


Jednym ze skutecznych rozwiązań proprocessingu jest przekazanie całej konfiguracji fvwm za pomocą
osadzony kod perla w "FvwmPerl --preprocess". Alternatywnym podejściem jest napisanie perl
skrypt, który generuje polecenia fvwm i wysyła je do wykonania, ten skrypt może zostać załadowany
używając "FvwmPerl --load". Istnieją jednak rozwiązania pośrednie, które przetwarzają tylko wstępnie
oddzielne linie konfiguracyjne (lub alternatywnie wykonaj osobne polecenia perla, które:
tworzyć polecenia fvwm).

Poniższy fragment kodu dodaje możliwości arytmetyki i skryptów łańcuchowych do pewnych
linie, które tego potrzebują. Aby tego użyć, chcesz uruchomić FvwmPerl jako swoje pierwsze polecenie, więc
że inne polecenia mogą zostać poproszone o przygotowanie.

ModułSynchronize FvwmPerl

DodajDo Funkcji .
+ I SendToModule preproces FvwmPerl -c -- $*

. Exec exec xterm -name xterm-%{++$i}% # użyj unikalnej nazwy

. GotoDesk 0 %{ $[desk.n] + 1 }% # przejdź do następnego biurka

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

# wyśrodkuj okno
Dalej (MyWindow) . Ruszaj się \
%{($WIDTH - $[w.width]) / 2}%p %{($HEIGHT - $[w.height]) / 2}%p

. Exec exec xmessage %{2 + 2}% # prosty kalkulator

. %{main::show_message(2 + 2, "Jeszcze inny kalkulator"); ""}%

DZIAŁANIA


Istnieje kilka działań, które może wykonać FvwmPerl:

eval kod perla
Oceń wiersz kodu perla.

Specjalna funkcja cmd("Komenda") może być używany w kodzie perla do wysyłania poleceń z powrotem do
fvwm.

Jeśli kod perla zawiera błąd, jest on wypisywany do standardowego strumienia błędów z
[FvwmPerl][ocena]: dołączony nagłówek.

załadować Nazwa pliku
Załaduj plik z kodem perla. Jeśli plik nie jest w pełni kwalifikowany, jest przeszukiwany w
katalog użytkownika $FVWM_USERDIR (zwykle ~/.fvwm) i systemowy katalog danych
$FVWM_DATADIR.

Specjalna funkcja cmd("Komenda") może być używany w kodzie perla do wysyłania poleceń z powrotem do
fvwm.

Jeśli kod perla zawiera błąd, jest on wypisywany do standardowego strumienia błędów z
[FvwmPerl][load]: dołączony nagłówek.

wstępne przetwarzanie [-q|--cytuj znak] [-c|--cmd] [linia | filet]
Wstępnie przetwórz konfigurację fvwm filet lub (jeśli podano --cmd) linia. Ten plik zawiera linie, które
nie są dotykane (zwykle polecenia fvwm) i specjalnie sformatowany kod perla, który jest
przetworzone i wymienione. Tekst zawarty w %{ ... }% ograniczniki, które mogą zaczynać się w dowolnym miejscu
w wierszu i kończy się w dowolnym miejscu w tym samym lub innym wierszu, jest kodem perla.

Podczas spotkania Członkom Konsorcjum zostały zaprezentowane zacytować zmiana parametrów ograniczników kodu perla. Jeśli podano pojedynczy znak, na przykład
„@”, ograniczniki to @{ ... }@. Jeśli podany cytat ma 2 znaki, na przykład <>, cytaty
<{ ... }>

Kod perla zastępuje wynik jego oceny. Tj %{$a = "c"; ++$a}%
zostaje zastąpione przez „d”.

Ocena jest inna eval i załadować odbywa się w ramach pakietu PreprocessNamespace
i bez posługiwać się rygorystyczny, więc możesz bez obaw używać dowolnych nazw zmiennych
konflikty. Po prostu nie używaj niezainicjowanych zmiennych, aby oznaczać undef lub pustą listę (są one
może być w rzeczywistości zainicjowany przez poprzednią akcję preprocesu) i wykonaj czyszczenie, jeśli
potrzebne. Zmienne i funkcja w główny pakiet są nadal dostępne, jak
::cmd() lub ::pominąć(), ale po prostu nie jest dobrym pomysłem, aby mieć do nich dostęp, gdy
wstępne przetwarzanie.

Jest specjalna funkcja zawierać(filet), który ładuje plik, wstępnie go przetwarza i
zwraca wstępnie przetworzony wynik. Unikaj rekurencji.

Jeśli jakikolwiek osadzony kod perla zawiera błąd, jest on wypisywany ze standardowym błędem
stream i poprzedzone [FvwmPerl][przetwarzanie wstępne]: nagłówek. Wynik
w tym przypadku substytucja jest pusta.

W kodzie perla można używać następujących zmiennych:

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

Podczas przetwarzania wstępnego rozpoznawane są następujące dyrektywy oparte na wierszach. Oni są
przetwarzane po zastąpieniu kodu perla (jeśli istnieje).

%powtarzać liczyć
Powoduje powtórzenie następujących wierszy liczyć razy.

%Konfiguracja modułu Nazwa modułu [ zniszczyć ]
Powoduje, że następujące wiersze są interpretowane jako dana konfiguracja modułu. Gdyby
"destroy" jest określone, poprzednia konfiguracja modułu jest niszczona jako pierwsza.

%Prefiks prefiks
Poprzedza następujące wiersze cytowanym prefiks.

%Koniec dowolny-opcjonalny-komentarz
Kończy każdą z dyrektyw opisanych powyżej, może być zagnieżdżony.

Przykłady:

% Przedrostek „AddToFunc SwitchToWindow I”
Ikonowanie wyłączone
OknaShade wyłączone
Podnieść
WarpToOkno 50 50
%Kończyć się

%ModuleConfig FvwmPager zniszczyć
Zestaw kolorów 0
Czcionka lucidasans-10
Skala pulpitu 28
Miniikony
%End ModuleConfig FvwmPager

% Przedrostek „Wszystkie (MyWindowToAnimate) Zmień rozmiarPrzesuń”
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%Powtarzaj %{$count}%
br w+2c w+2c w-1c w-1c
%Kończyć się
%Powtarzaj %{$count}%
br w-2c w-2c w+1c w+1c
%Kończyć się
% końca prefiksu

Można również podać dodatkowe parametry preprocesu --nosend i --noremove. Zobacz ich
opis u góry.

eksport [nazwy funkcji]
Wyślij fvwm definicja funkcji skrótów, które pomagają aktywować różne
działania modułu (tj eval, załadować i wstępne przetwarzanie).

Nazwy funkcji (nazwy funkcji) mogą być oddzielone przecinkami lub/i spacją. Domyślnie,
dwie funkcje "Eval" i "." zakłada się.

Faktyczna akcja zdefiniowana w funkcji jest odgadywana z nazwy funkcji, jeśli to możliwe,
gdzie nazwa funkcji "." jest zarezerwowany dla wstępne przetwarzanie akcji.

Na przykład dowolne z tych dwóch poleceń fvwm

SendToModule MyPerl eksport PerlEval,PP
FvwmPerl --eksportuj PerlEval, PP MyPerl

zdefiniuj następujące dwie funkcje skrótów:

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

Te 4 akcje można wykonać na jeden z 3 sposobów: 1) w wierszu poleceń, gdy FvwmPerl jest
wywołany (w tym przypadku FvwmPerl jest krótkotrwały, chyba że --zostać or --eksport jest również podany), 2)
wysyłając odpowiednią wiadomość w konfiguracji fvwm za pomocą SendToModule, 3) wywołując
odpowiednia funkcja perla w kodzie perla.

FUNKCJE


Istnieje kilka funkcji, które może wywołać kod perla:

cmd($fvwm_command)
W przypadku eval or załadować - odeślij do fvwm napis $fvwm_command. W przypadku
wstępne przetwarzanie - dołącz ciąg $fvwm_command do wyjścia osadzonego kodu perla.

do_oceny($perl_code)
Ta funkcja jest równoważna funkcji eval funkcjonalność na sznurku $perl_code,
opisane powyżej.

Załaduj($nazwa pliku)
Ta funkcja jest równoważna funkcji załadować funkcjonalność w pliku $nazwa_pliku, opisana
powyżej.

proces wstępny (@paramy, ["-C $komenda"] [$nazwa pliku])
Ta funkcja jest równoważna funkcji wstępne przetwarzanie funkcjonalność przy podanych parametrach
oraz plik $nazwapliku opisany powyżej.

eksport($func_names, [$do_wyeksportować])
Ta funkcja jest równoważna funkcji eksport funkcjonalność z podanymi $func_names,
opisane powyżej. Mogą również nieeksportować nazwy funkcji, jeśli drugi parametr jest prawdziwy.

Nazwy funkcji powinny być oddzielone przecinkami lub/i białymi znakami. Gdyby $func_names is
puste, a następnie funkcje "Eval" i "." zakłada się.

zatrzymać()
Kończy moduł.

pominąć()
Pomija resztę kodu wywołania zwrotnego zdarzenia, tj. moduł wraca do nasłuchiwania nowego
zdarzenia modułu.

odblokować()
Rozsynchronizowuje wywołanie zwrotne zdarzenia z fvwm. Może to być przydatne, aby zapobiec zakleszczeniu,
tj. zazwyczaj fvwm zabija moduł, który nie odpowiada, jeśli wywołanie zwrotne zdarzenia nie jest
skończone w Limit czasu modułu sekundy. To temu zapobiega.

Ten przykład powoduje, że FvwmPerl zawiesza wykonywanie na jedną minutę:

SendModule FvwmPerl eval unlock(); spać(60);

Sprawdź jednak, czy nie ma możliwości wysłania nowej wiadomości przez fvwm, gdy moduł jest
zajęty, a fvwm zbyt długo blokuje nową wiadomość. Zobacz także odłącz
rozwiązanie, jeśli potrzebujesz długotrwałych operacji.

odłączyć()
Rozwidla i odłącza resztę kodu wywołania zwrotnego zdarzenia od procesu głównego. Tego maja
być przydatne, aby zapobiec zabiciu modułu, jeśli jego wywołanie zwrotne zdarzenia powinno zająć dużo czasu
do dokończenia i można to zrobić u odłączonego dziecka. Odłączone dziecko może nadal
wysyłaj polecenia do fvwm (nie polegaj na tym), ale oczywiście nie odbieraj zdarzeń, to
kończy działanie natychmiast po zakończeniu wykonywania wywołania zwrotnego.

Jeśli używasz odłączyć(), lepiej tylko wysyłaj polecenia do fvwm w jednym procesie (głównym lub
oderwany), postępowanie w inny sposób może często powodować konflikty.

Pokaż wiadomość($wiadomość, $tytuł[, $use_stderr_too=1])
Pokazuje okno dialogowe z podaną wiadomością, używając dowolnego narzędzia X znalezionego w
system.

Widzieć FVWM::Moduł::Zestaw narzędzi::Pokaż wiadomość po więcej informacji.

ZMIENNE


Istnieje kilka zmiennych globalnych w główny przestrzeń nazw, która może być używana w perl
kod:

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

Wszystkie są inicjowane pustą wartością i mogą być używane do przechowywania stanu między
różne wywołania akcji FvwmPerl (eval i załadować).

Jeśli potrzebujesz bardziej czytelnych nazw zmiennych, napisz "bez ścisłych 'vars';" Na początku
każdy kod perla lub użyj do tego skrótu, na przykład:

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

lub użyj nazwy pakietu, np.:

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

Może istnieć opcja konfiguracji umożliwiająca włączanie i wyłączanie ścisłości.

WIADOMOŚCI


FvwmPerl może odbierać wiadomości za pomocą polecenia SendToModule fvwm. Nazwy, znaczenia i
parametry komunikatów są takie same jak odpowiadające im akcje opisane powyżej.

Dodatkowo wiadomość Zatrzymaj się powoduje zamknięcie modułu.

Wiadomość nieeksportować [nazwy funkcji] cofa efekt eksport, opisane w DZIAŁANIACH
Sekcja.

Wiadomość zrzucać zrzuca zawartość zmienionych zmiennych (jeszcze nie).

PRZYKŁADY


Prosty test:

SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load($h{dir} . "/test.fpl")
SendToModule FvwmPerl ładuje $[HOME]/test.fpl
SendToModule FvwmPerl preproces config.ppp
SendToModule FvwmPerl export Eval,PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl wyeksportuj PerlEval, PerlLoad, PerlPP
SendToModule Zatrzymaj FvwmPerl

Poniższy przykład obsługuje tła root w fvwmrc. Wszystkie te polecenia można dodać
do funkcji Start.

Moduł FvwmPerl --export PerlEval

# znajdź wszystkie piksmapy w tle do późniejszego wykorzystania
PerlEval $a = $ENV{HOME} . "/bg"; \
opendir DIR, $a; @b = grep { /xpm$/ } readdir(DIR); zamknięte w DIR

# zbuduj menu pixmap w tle
AddToMenu Moje tła Tytuł „Moje tła”
PerlEval foreach $b (@b) \
{ cmd("DodajDoMenu MojeTła '$b' Exec fvwm-root $a/$b") }

# wybierz losowe tło do załadowania podczas uruchamiania
PerlEval cmd("AddToFunc \
InitFunction + I Exec exec fvwm-root $a/" . $b[int(random(@b))])

UCIECZKA


Wyślij do modułu tak jak każde inne polecenie fvwm rozszerza kilka zmiennych z przedrostkiem o wartości dolara.
Może to kolidować z używanymi przez perla dolarami. Możesz tego uniknąć, dodając prefiks SendToModule
z wiodącą kreską. Następujące 2 wiersze w każdej parze są równoważne:

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

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

Innym sposobem uniknięcia ucieczki przed symbolami specjalnymi, takimi jak dolary i ukośniki odwrotne, jest:
utwórz plik perl w ~/.fvwm a następnie załaduj go:

SendToModule FvwmPerl ładuje build-menus.fpl

Jeśli potrzebujesz przetworzyć jedno polecenie zaczynające się od myślnika, powinieneś je poprzedzić, używając
„--”.

# to wypisuje aktualne biurko, czyli "0"
SendToModule preproces FvwmPerl -c Echo "$%{$a = "c"; ++$a}%"
# to drukuje "$d"
Preproces SendToModule FvwmPerl -c -- -Echo "$%{"d"}%"
# to wypisuje "$d" (SendToModule rozwija $$ do $)
Preproces SendToModule FvwmPerl -c -- -Echo "$$%{"d"}%"
# to drukuje "$$d"
-SendToModule preproces FvwmPerl -c -- -Echo "$$%{"d"}%"

Ponownie, sugeruje się umieszczenie poleceń w pliku i wstępne przetworzenie pliku.

OSTRZEŻENIA


FvwmPerl pisany w perlu i mający do czynienia z perlem jest zgodny ze słynnym mottem perla:
„Jest na to więcej niż jeden sposób”, więc wybór należy do Ciebie.

Oto więcej par równoważnych linii:

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

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

Ostrzeżenie, możesz wpłynąć na sposób działania FvwmPerl, oceniając odpowiedni kod perla, to
jest uważana za funkcję, a nie błąd. Ale proszę, nie rób tego, napisz własny moduł fvwm
zamiast tego w perlu.

Korzystaj z FvwmPerl online za pomocą usług onworks.net


Ad


Ad