Questo è il comando FvwmScript che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
FvwmScript - modulo per creare un'interfaccia utente grafica
SINOSSI
FvwmScript deve essere generato da Fvwm. Non funzionerà dalla riga di comando.
DESCRIZIONE
FvwmScript è un modulo che consente di creare molte applicazioni grafiche come
accessori per il desktop, pannello dei pulsanti con menu a comparsa, finestre di dialogo modali... All'avvio,
FvwmScript legge il file specificato sulla riga di comando. Questo file contiene il
sceneggiatura. Questo script non è incluso nel file di configurazione di Fvwm.
Uno script FvwmScript è completamente controllabile utilizzando la tastiera. (Maiuscole)-La scheda circola
intorno ai widget, Return simula un clic del mouse, le frecce spostano il cursore o cambiano
i valori del widget ed Escape "annulla" per Menu e PopupMenu.
INVOCAZIONE
FvwmScript può essere invocato inserendo la riga `Module FvwmScript name_of_script' nel
File .fvwm2rc. Il file "name_of_script" può iniziare con una barra, nel qual caso è a
percorso completo e il file viene letto. Se "name_of_script" non inizia con a
barra, FvwmScript cercherà in alcuni posti diversi. Se il .fvwm2rc conteneva il
riga di comando `*FvwmScript: Path path_of_the_script_directory', FvwmScript lo proverà
directory. Se non funziona, FvwmScript prova la directory di configurazione del sistema e
la directory di configurazione dell'utente come descritto sotto il comando "Leggi" nel manuale fvwm
.
Il comando per avviare FvwmScript può essere posizionato da solo su una riga, se FvwmScript deve essere
generato durante l'inizializzazione di fvwm, o può essere associato a un menu oa un pulsante del mouse o
tasto per richiamarlo in seguito.
CONFIGURAZIONE VERSIONI
I seguenti comandi possono essere usati nel file di configurazione (vedi fvwm(1), sezione MODULO
COMANDI per dettagli). Vengono utilizzati solo se i comandi di script corrispondenti non lo sono
utilizzato nella sceneggiatura.
*FvwmScript: carattere predefinito fonte
Specifica il carattere predefinito da utilizzare. Se non specificato con questo comando o nel
script con il comando Font, si assume il carattere fisso.
*FvwmScript: PredefinitoFore colore
Specifica il colore di primo piano predefinito da utilizzare. Se non specificato con questo
comando o nello script con il comando ForeColor, viene utilizzato il nero.
*FvwmScript: PredefinitoIndietro colore
Specifica il colore di sfondo predefinito da utilizzare. Se non specificato con questo
comando o nello script con il comando BackColor, viene utilizzato grey85.
*FvwmScript: Evidenziazione predefinita colore
Specifica il colore di evidenziazione predefinito da utilizzare. Se non specificato con questo comando
oppure nello script con il comando HilightColor viene utilizzato grey100.
*FvwmScript: Default Shadow colore
Specifica il colore dell'ombra predefinito da utilizzare. Se non specificato con questo comando
o nello script con il comando ShadowColor, viene utilizzato grey55.
*FvwmScript: set di colori predefinito set di colori
Dice al modulo di usare colorset set di colori come set di colori predefinito. Fare riferimento al
Pagina man di FvwmTheme per i dettagli sui set di colori.
ANATOMIA OF A SCRIPT
FvwmScript utilizza un particolare linguaggio di programmazione. Una sceneggiatura è composta da cinque parti.
L'intestazione contiene le caratteristiche generali della finestra e le proprietà predefinite per tutti
widget. La seconda parte contiene le istruzioni che vengono eseguite all'avvio del
sceneggiatura. La terza parte contiene task periodici che vengono eseguiti ogni secondo. Il
la quarta parte contiene le istruzioni che vengono eseguite all'uscita. E l'ultima parte contiene
la descrizione dei widget. Un widget è composto da undici tipi di elementi: etichette di testo,
input di testo a riga singola, pulsanti di opzione, casella di controllo, pulsanti, orizzontale e verticale
barre di scorrimento, rettangoli, menu a comparsa, swallowexec e mini barre di scorrimento.
RUBRICA OF A SCRIPT
La sintassi è la seguente:
Titolo della finestra stringa
Questa opzione imposta il titolo della finestra.
DimensioneFinestra larghezza altezza
Questa opzione imposta la dimensione della finestra. larghezza e altezza sono valori numerici.
PosizioneFinestra x y
Questa opzione imposta la posizione della finestra. x e y sono valori numerici.
Colore in primo piano {colore}
Questa opzione imposta il colore di primo piano predefinito per tutti i widget.
Colore di sfondo {colore}
Questa opzione imposta il colore di sfondo predefinito per tutti i widget.
Evidenzia Colore {colore}
Questa opzione imposta il colore di evidenziazione predefinito per tutti i widget.
Colore ombra {colore}
Questa opzione imposta il colore dell'ombra predefinito per tutti i widget.
set di colori {n}
Questa opzione imposta il set di colori predefinito per tutti i widget.
Carattere {fonte}
Questa opzione imposta il carattere predefinito per tutti i widget.
UsaGettext [percorso_locale]
Abilitare l'uso del meccanismo gettext utilizzato da WindowLocaleTitle,
LocaleTitle, istruzioni ChangeLocaleTitle e la funzione Gettext. se no
viene fornito l'argomento, viene utilizzato il catalogo locale FvwmScript predefinito. Questo catalogo è
nella directory di installazione locale fvwm e il dominio di testo è FvwmScript
(install_prefix/share/locale/*/LC_MESSAGES/FvwmScript.mo). Puoi resettarlo
catalogare o aggiungere dei cataloghi esattamente come con il Percorso Locale fvwm
comando (vedi la pagina di manuale di fvwm). Questa istruzione deve essere posta prima del
Istruzioni WindowLocaleTitle.
WindowLocaleTitolo stringa
Questa opzione imposta il titolo della finestra, ma usa i cataloghi locali definiti con
UsaGettext.
INIZIALIZZAZIONE
Questa parte contiene le istruzioni che verranno eseguite all'avvio. Per esempio:
Dentro
Iniziare
Esegui "Esegui cat tada.voc > /dev/dsp"
Puntatore Warp 1
Imposta $ToDo=Riavvia
Fine
Queste istruzioni vengono utilizzate per riprodurre un suono, spostare il puntatore sul widget 1 e su
inizializza $ToDo su "Restart" ad ogni avvio.
PERIODICA COMPITI
Questa parte dello script contiene istruzioni che vengono eseguite ogni secondo. Per
esempio:
Compiti periodici
Iniziare
If (RemainOfDiv (GetTime) 10)==0 Allora
Esegui {Esegui xcalc}
Fine
Questo esempio mostra come avviare xcalc ogni 10 secondi.
freschi SMETTERE FUNZIONE
Questa parte dello script contiene istruzioni che vengono eseguite all'uscita dallo script
(dopo l'istruzione Esci o se chiudi la finestra con Chiudi, Elimina o Distruggi
comando fvwm). Per esempio
EsciFunz
Iniziare
Fai {Echo ciao, ciao}
Fine
Tieni presente che se hai utilizzato il comando KillModule fvwm per chiudere lo script, alcuni
istruzioni o funzioni che si basano sull'esistenza di un collegamento di comunicazione tra il
script e fvwm non verranno eseguiti (ad esempio il comando Do). Per uccidere dolcemente a
script con un comando fvwm vedere il COMANDI .
PRINCIPALI OF A SCRIPT
La seconda parte dello script contiene la descrizione per ogni widget nello script.
Ogni descrizione del widget ha due parti. La prima parte descrive le proprietà iniziali, la
la seconda parte contiene le istruzioni che vengono eseguite quando il widget riceve i messaggi.
Tutti i widget possono inviare e ricevere messaggi. Tutti i messaggi sono identificati da un numero. Il
il messaggio "UserAction" viene inviato a un widget quando l'utente utilizza il widget. la sintassi
per la prima parte è:
ID widget # Un numero compreso tra 1 e 999 inclusi
Immobili
Digita stringa
Dimensioni larghezza altezza
Posizione xy
Titolo { stringa }
Valore int
MaxValore int
Valore Min int
Stringa di carattere
Colore in primo piano { colore }
BackColor { colore }
Evidenzia Colore { colore }
ShadowColor { colore }
set di colori int
Bandiere BandiereOpt
L'opzione flagsOpt per Flags è un elenco separato da spazi contenente uno o più dei
parole chiave nascosto, NoReliefString, No Focus, Sinistra / centro / Destra. nascosto è utilizzato per
specificare se il widget è nascosto all'avvio. NoReliefString specifica se le stringhe sono disegnate
con sollievo o no. No Focus specifica se il widget può ottenere o meno lo stato attivo della tastiera.
Per impostazione predefinita, tutti i widget si attivano, tranne Rectangle, HDipstick e VDipstick che non possono.
Inoltre, i widget NoFocus vengono saltati quando si gira intorno ai widget con il
(Shift-)Tab scorciatoia. Sinistra / centro / Destra specifica la posizione del testo. Questi si applicano
solo a ItemDraw, List, Menu, PopupMenu e PushButton. L'impostazione predefinita è centro per ItemDraw
e Pulsante e Sinistra per gli altri widget.
LocaleTitle può essere usato al posto di Title, per usare i cataloghi locali definiti con
UsaGettext.
La posizione di ogni widget deve essere specificata.
La sintassi per la seconda parte è:
Principale
Messaggio del caso di
Clic singolo:
Iniziare
# elenco di istruzioni che saranno
# eseguito quando il widget riceve
# messaggio "SingleClic". Questo messaggio è
# generato dall'utente.
Fine
1:
Iniziare
# elenco di istruzioni che saranno
# eseguito quando il widget riceve
# messaggio 1
Fine
Fine
ELENCO OF WIDGET
Ci sono quindici tipi di widget.
CheckBox: Visualizza casella di controllo con una stringa.
Titolo: titolo della casella di controllo.
Valore: se Valore è uguale a 1, la casella è selezionata altrimenti non lo è.
Il Taglia proprietà viene ignorata.
Astina HD: Visualizza un'asta di livello orizzontale.
Questo widget può essere utilizzato per visualizzare l'utilizzo del disco.
Valore: specificare il valore corrente dell'astina di livello.
Valore Min: specificare il valore minimo dell'astina.
Valore massimo: specificare il valore massimo dell'astina.
Viene imposta una dimensione minima di 30x11.
HSbarra di scorrimento: Visualizza una barra di scorrimento orizzontale.
Valore: posizione del pollice.
Valore massimo: limite superiore di Valore.
Valore Min: limite inferiore di Valore.
La proprietà altezza viene ignorata e viene imposta una larghezza minima. La larghezza dovrebbe essere
almeno l'intervallo più 37 se tutti i valori devono essere selezionabili, ad es. un min di 0 e
max di 10 ha un range di 11 e quindi dovrebbe avere una larghezza minima di 48.
ItemDraw: Visualizza un'icona e/o una stringa.
Titolo: stringa da visualizzare.
Icona: icona da visualizzare.
Valore massimo: coordinata x del cursore.
Valore Min: coordinata y del cursore.
La dimensione è abbastanza grande da contenere il titolo e/o l'icona.
Lista: Visualizza un elenco.
L'elenco consente all'utente di scegliere tra varie opzioni.
Valore: specificare quale opzione è selezionata.
Valore Min: Prima opzione visibile.
Titolo: il titolo contiene le opzioni visualizzate nell'elenco. La sintassi è la seguente:
{Opzione 1|Opzione 2|...|Opzione N}. Tutti i menu sono visualizzati nella parte superiore della finestra.
Viene imposta un'altezza minima di tre elementi e la larghezza deve essere almeno
108
Menu: Visualizza un menu che consente all'utente di scegliere un'opzione.
Gli elementi di tipo Menu sono disposti da sinistra a destra lungo la parte superiore della finestra.
Le proprietà di dimensione e posizione vengono ignorate.
Valore: specificare quale opzione è selezionata.
Titolo: il titolo contiene le opzioni visualizzate nel menu. La sintassi è la seguente:
{Opzione 1|Opzione 2|...|Opzione N}.
Miniscorrimento: Visualizza una barra di scorrimento verticale molto piccola.
Valore: posizione del pollice.
Valore massimo: limite superiore di Valore.
Valore Min: limite inferiore di Valore.
La dimensione è impostata su 19x34.
Menù popup: Visualizza un menu a comparsa.
Valore: specifica quale opzione è selezionata.
Titolo: il titolo ha la seguente sintassi: {Opzione 1|Opzione 2|...|Opzione N}."Opzione
1|Opzione 2|...|Opzione N" è il menu a comparsa che viene visualizzato quando si preme il mouse
pulsante.
La proprietà size viene ignorata.
Premi il bottone: Visualizza pulsante con un'icona e/o una stringa.
Titolo: questa stringa ha la seguente sintassi {Titolo del pulsante|Opzione 1|Opzione
2|Opzione3|...|Opzione N}. "Opzione 1|Opzione 2|...|Opzione N" è il menu a comparsa che
viene visualizzato quando si preme il pulsante destro.
Icona: icona da visualizzare.
Il pulsante è abbastanza grande da contenere l'icona e/o l'etichetta.
RadioButton: Visualizza il pulsante di opzione con una stringa.
Titolo: titolo del pulsante di opzione.
Valore: se Valore è uguale a 1, la casella è selezionata altrimenti non lo è.
La proprietà size viene ignorata
Rettangolo: Visualizza un rettangolo.
Questo tipo di widget può essere utilizzato per decorare la finestra.
SwallowExec
Questo tipo di widget fa sì che FvwmScript generi un processo e catturi il primo
finestra il cui nome o risorsa è uguale a Titolo e visualizzalo nello script
finestra.
Titolo: specifica il nome della finestra che deve essere catturato e visualizzato nello script
finestra.
SwallowExec: specifica la riga di comando da eseguire per generare il processo. I moduli possono
anche essere inghiottito.
Valore: specifica l'aspetto del bordo. Valore possibile: -1, 0, 1.
La dimensione è fatta per essere almeno 30x30
Campo di testo: Visualizza un campo di immissione del testo.
Il campo di immissione del testo può essere utilizzato per modificare una stringa a riga singola.
Titolo: contenuto del campo di testo.
Valore: posizione del punto di inserimento.
Valore Min: posizione della fine della selezione.
Valore massimo: primo carattere visibile del titolo
La proprietà dell'altezza viene ignorata, la larghezza viene ampliata di almeno 40 pixel
rispetto ai contenuti iniziali.
VAstina di livello: Visualizza un'asta di livello verticale.
Valore: specificare il valore corrente dell'astina di livello.
Valore Min: specificare il valore minimo dell'astina.
Valore massimo: specificare il valore massimo dell'astina.
La dimensione è fatta per essere almeno 11x30.
VScrollBar: Visualizza una barra di scorrimento verticale.
Valore: posizione del pollice.
Valore massimo: limite superiore di Valore.
Valore Min: limite inferiore di Valore.
La proprietà width viene ignorata e viene imposta un'altezza minima. L'altezza dovrebbe
essere almeno l'intervallo più 37 se tutti i valori devono essere selezionabili, ad esempio un minimo di 0
e max di 10 ha un range di 11 e quindi dovrebbe avere un'altezza minima di 48.
ISTRUZIONI
Ecco la descrizione di tutte le istruzioni.
Nascondi widget id : nasconde il widget numerato id.
Mostra widget id: mostra il widget numerato id.
Modifica valore id1 id2
Imposta il valore del widget numerato id1 a id2.
Modifica valore massimo id1 id2
Imposta il valore massimo del widget numerato id1 a id2.
Modifica valore min id1 id2
Imposta il valore minimo del widget numerato id1 a id2.
CambiaTitolo id1 id2
Imposta il titolo del widget numerato id1 a id2.
CambiaTitoloFinestra stringa
Imposta il titolo della finestra su stringa.
CambiaTitoloFinestraDaArg num
Imposta il titolo della finestra al valore di num-esimo argomento dello script.
CambiaTitoloLocale id1 id2
Come ChangeTitle ma usa i cataloghi locali definiti con UseGettext.
Cambia icona id1 id2
Imposta l'icona del widget numerata id1 a id2.
Cambia colore anteriore id1 {colore}
Imposta il colore di primo piano del widget numerato id1 a {colore}.
Cambia colore di sfondo id1 {colore}
Imposta il colore di sfondo del widget numerato id1 a {colore}.
CambiaSetColore id1 id2
Imposta il set di colori del widget numerato id1 a id2. Specificando il widget 0 si imposta il
set di colori della finestra principale.
Cambiare posizione id1 x y
Sposta il widget numerato id1 posizionare (x,y).
Cambia taglia id1 larghezza altezza
Imposta la dimensione del widget numerato id1 per (larghezza,altezza).
CambiaFont id1 nuovo carattere
Imposta il carattere del widget numerato id1 a nuovo carattere.
Puntatore Warp id
Sposta il puntatore del mouse nel widget numerato id.
Scrivi su file Nome del file {str1} {str2} eccetera
Scrivi nel file Nome del file la stringa che è la concatenazione di tutti gli argomenti
str1, str2, ecc.
Fare {command args}
Eseguire il comando fvwm all'interno del blocco Do. Qualsiasi comando fvwm come descritto in
È possibile utilizzare la pagina man di fvwm2. I comandi vengono inviati da questo modulo a fvwm main
programma per l'elaborazione La lunghezza del comando e degli argomenti non può superare 988
caratteri.
Imposta $var={str1} {str2} eccetera
Concatena tutti gli argomenti in una stringa e imposta la variabile $var a questa stringa.
Esci: esce dal programma.
Invia segnale id1 id2
Invia un messaggio numerato id2 a widget id1.
Invia a Script id_script {str11} {str2} eccetera
Invia un messaggio allo script identificato da id_script. Il messaggio è il
concatenazione di str1, str2...
Le nome chiave Modificare id sig str1 str2 eccetera
Associa un tasto della tastiera all'istruzione
Invia segnale id sig
e imposta "l'ultima stringa" alla concatenazione di str1, str2... (vedi il
funzione LastString). Il nome chiave e modificatori i campi sono definiti come in fvwm
Comando chiave.
ARGOMENTI
La maggior parte dei comandi utilizza argomenti. Ci sono due tipi di argomenti: numeri e stringhe. UN
l'argomento numerico è un valore compreso tra -32000 e +32000. Una stringa è sempre
circondato da bretelle. Le variabili iniziano sempre con il carattere "$" e possono contenere entrambi
numeri e stringhe.
FUNZIONI
Tutte le funzioni utilizzano argomenti. Le funzioni possono restituire sia una stringa che un numero. la sintassi
è:
(funzione argomento1 argomento2 ecc.)
Ecco l'elenco completo degli argomenti:
(Ottieni titolo id)
Restituisce il titolo del widget numerato id.
(Ottieni valore id)
Restituisce il valore corrente del widget numerato id.
(OttieniValoreMin id)
Restituisce il valore Min corrente del widget numerato id.
(GetMaxValore id)
Restituisce il valore Max corrente del widget numerato id.
(Get Fore id)
Restituisce il valore di primo piano RGB corrente del widget numerato id nel formato esadecimale
RRGGBB.
(Riprendere id)
Restituisce il valore di sfondo RGB corrente del widget numerato id nel formato esadecimale
RRGGBB.
(Get Hilight id)
Restituisce il valore di evidenziazione RGB corrente del widget numerato id nel formato esadecimale
RRGGBB.
(Get Shadow id)
Restituisce il valore dell'ombra RGB corrente del widget numerato id nel formato esadecimale
RRGGBB.
(GetOutput {str} int1 int2)
Esegue il comando str, ottiene lo standard output e restituisce la parola che è in
la linea int1 e in posizione int2. Se int2 è uguale a -1, GetOutput restituisce
la linea completa.
(NumToHex int)
Restituisce il valore esadecimale di int.
(Numero esadecimale {str})
Restituisce il valore decimale di str, str deve essere un valore esadecimale.
(Aggiungere int1 int2)
Restituisce il risultato di (int1+int2).
(Mult int1 int2)
Restituisce il risultato di (int1*int2).
(div int1 int2)
Restituisce il risultato di (int1/int2).
(StrCopia {str} int1 int2)
Restituisce la stringa che si trova tra la posizione int1 e int2. Ad esempio, (StrCopy
{Ciao} 1 2) restituisce {Egli}
(Avvia script {str})
Questa funzione avvia lo script denominato str e restituisce un numero di identificazione.
Questo numero è necessario per utilizzare le funzioni SendToScript e ReceiveFromScript.
La stringa str contiene il nome dello script e alcuni argomenti.
(GetScriptArgument {int})
Questa funzione restituisce lo script dell'argomento utilizzato nella funzione LaunchScript. Se
int è uguale a zero, GetScriptArgument restituisce il nome dello script.
(GetScriptPadre)
Questa funzione restituisce il numero identificativo del padre dello script.
(Ricevi da script {int})
Questa funzione restituisce il messaggio inviato dallo script numerato int.
(RestoDiDiv {int1 int2}): T
Questa funzione restituisce il resto della divisione (int1/int2).
(Prendi tempo)
Questa funzione restituisce il tempo in secondi.
(GetPid)
Questa funzione restituisce l'id del processo dello script.
(Ottieni testo {str})
Questa funzione restituisce la traduzione di str utilizzando i cataloghi locali definiti
con UseGettext.
(InviaMsgAndGet {comId} {cmd} bool)
Invia il comando cmd con identificatore comId a un programma esterno pronto per
comunicare con lo script utilizzando un protocollo specifico di FvwmScript. Se bool è 0
FvwmScript non attende una risposta dal programma esterno. In questo caso il
il valore restituito è 1 se il messaggio può essere inviato al programma esterno e 0 se
Questo non è il caso. Se bool è 1, quindi FvwmScript attende una risposta dal
programma esterno e il valore restituito è questa risposta (una riga di non più di 32000
caratteri). Se la comunicazione fallisce, il valore restituito è 0. Vedere la sezione
A COMMUNICATION PROTOCOLLO per una descrizione del protocollo di comunicazione utilizzato.
(Analizza {str} int)
where str deve essere una stringa della forma:
X1S1X2S2X3S3...SnXn
dove Xn sono numeri contenenti quattro cifre decimali e dove Sn sono stringhe di
lunghezza esattamente Xn. Il valore restituito è la stringa Sint. Se int è fuori portata
(ad esempio, >n) il valore restituito è la stringa vuota. Se str non è dello specificato
modulo, il valore restituito è imprevedibile (ma vuoto nella media). Questa funzione
è utile per gestire le stringhe restituite dalla funzione SendMsgAndGet.
(Ultima stringa)
Questa funzione restituisce la "stringa di lavoro corrente" per l'istruzione Key e il
comando SendString (vedi il COMANDI sezione). All'avvio questa stringa è vuota, ma
quando viene rilevata un'associazione di tasti (rispettivamente, viene ricevuto un comando SendString),
quindi questa stringa viene impostata sulla stringa associata all'istruzione (rispettivamente,
al comando).
CONDIZIONALE LOOP
Esistono tre tipi di cicli condizionali. L'istruzione "If-Then-Else" ha il
seguente sintassi:
If $ToDo=={Apri xcalc} Allora
Esegui {Exec xcalc &} # Elenco delle istruzioni
Altro
Iniziare
Esegui {Exec killall xcalc &} # Elenco delle istruzioni
Esegui {Exec echo xcalc ucciso > /dev/console}
Fine
La seconda parte "Else-Begin-End" è facoltativa. Se il ciclo contiene solo un'istruzione,
Inizio e Fine possono essere omessi. L'istruzione "While-Do" ha la seguente sintassi:
Mentre $i<5 Do
Iniziare
Imposta $i=(Aggiungi i 1) # Elenco di istruzioni
Fine
Due stringhe possono essere confrontate con "==" e due numeri possono essere confrontati con "<", "<=",
"==", ">=", ">". Il ciclo "For-Do-Begin-End" ha la seguente sintassi:
Per $i=1 a 20 cose da fare
Iniziare
Esegui {Exec xcalc &} # Elenco delle istruzioni
Fine
COMANDI
Il seguente comando fvwm può essere eseguito in qualsiasi momento
Invia a modulo NomeScript InviaStringa id sig str
invia a qualsiasi modulo con alias o nome che corrisponde NomeScript la stringa
InviaStringa id sig str
Quando un FvwmScript riceve un messaggio del genere lo invia al Widget id il segnale numerato
sig e la stringa str può essere ottenuto con la funzione LastString. Diamo un
esempio. Diciamo che hai uno script MyScript con il widget:
Dispositivo 50
Immobili
Digitare il pulsante
Titolo {Esci}
...
Principale
Messaggio del caso di
Clic singolo:
Iniziare
smettere
Fine
1:
Iniziare
Imposta $str = (UltimaStringa)
Se $str == {Esci} Allora
smettere
Altro
CambiaTitolo 33 $str
Fine
Fine
Poi il comando
SendToModule MyScript SendString 50 1 stringa
forza l'uscita da MyScript se str è uguale a "Quit" e in caso contrario cambia il titolo di
Widget 33 a str.
Questo comando può essere usato per cambiare il titolo della finestra
Invia a modulo NomeScript CambiaTitoloFinestra nuovoTitolo [vecchio titolo]
fa sì che qualsiasi modulo con alias o nome che corrisponda NomeScript cambia la sua
titolo della finestra associato a nuovoTitolo. L'argomento opzionale vecchioTitolo ha senso quando c'è
sono diverse istanze dello stesso script. Permette di evitare di cambiare il nome di
tutte queste istanze specificando il nome della finestra associata allo script di destinazione
(vedi l'esempio sotto).
+ I Modulo FvwmScript FvwmStorageSend "/dev/hda6"
+ Attendo FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ I Modulo FvwmScript FvwmStorageSend "/dev/hda1"
+ Attendo FvwmStorageSend
+ I SendToModule FvwmStorageInvia modificaWindowTitle HDA1 FvwmStorageSend
Senza l'argomento FvwmStorageSend nell'ultimo caso, il comando SendToModule avrebbe
cambiato in HDA1 il nome di entrambe le istanze di FvwmStorageSend.
ESEMPI
Troverai esempi di script nella directory di configurazione di fvwm.
FvwmScript-BellSetup, FvwmScript-KeyboardSetup, FvwmScript-PointerSetup e FvwmScript-
ScreenSetup sono un insieme di script che modificano le impostazioni di X. Questi script salvano le preferenze
in un file chiamato ~/.xinit-fvwmrc (Se vuoi usare un altro nome di file, assegnalo come
primo argomento dello script). Se vuoi caricare queste preferenze ad ogni avvio,
devi includere la riga ".xinit-fvwmrc" nel tuo file .xinitrc (o .xsession) prima
inizio fvwm.
FvwmScript-BaseConfig modifica la messa a fuoco di fvwm e la politica del mouse di paging, il posizionamento della finestra,
opacità e altre caratteristiche dei comandi di spostamento e ridimensionamento, attrazione dello snap e ombreggiatura
animazione. Questo script salva le preferenze in un file chiamato .FvwmBaseConfig nella cartella dell'utente
directory dei dati (cioè $HOME/.fvwm o $FVWM_USERDIR se impostato). Se vuoi caricare questi
preferenze ad ogni avvio devi aggiungere la riga "Leggi .FvwmBaseConfig" nel tuo fvwm
file di configurazione. Se vuoi usare un altro nome di file, inseriscilo come primo argomento
della sceneggiatura. Quando fai clic su Ok o Applica una funzione fvwm che puoi definire denominata
Viene chiamato BaseConfigOkFunc o BaseConfigApplyFunc. Ciò consente di ricaricare in modo specifico
stili dell'applicazione che lo script ha distrutto (ad es. AddToFunc BaseConfigOkFunc I Read
MyAppStyle).
FvwmScript-Buttonsèun pannello di pulsanti che può sostituire FvwmButtons (questo script supporta
menu a comparsa e richiede xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset consente
di modificare il tuo set di colori (vedi FvwmTheme). FvwmScript-Date consente di impostare data e
volta. FvwmScript-FileBrowser è un browser di file utilizzato dagli altri script. FvwmScript-
Trova è un front-end elementare da trovare. FvwmScript-Quit consente di uscire da fvwm, riavviare
fvwm o qualche altro gestore di finestre, oppure spegni e riavvia il computer. FvwmScript-
ScreenDump è un dumper dello schermo. FvwmScript-WidgetDemo è un puro script di esempio. Vedi il
sezione successiva per FvwmScript-ComExample.
A COMMUNICATION PROTOCOLLO
FvwmScript è un linguaggio di programmazione debole (ma semplice). Se hai bisogno di affrontare un sacco di
dati e/o devi usare algoritmi complessi dovresti usare un programma esterno (in perl
per esempio) e "invia" le informazioni desiderate al tuo script FvwmScript. Il primo
approccio consiste nell'utilizzare la funzione GetOutput. Questo è semplice ma dovresti rieseguire il tuo
programma esterno ogni volta che hai bisogno di informazioni da esso (e questo può causare prestazioni
i problemi). Il secondo approccio consiste nell'utilizzare la funzione SendMsgAndGet che estende
FvwmScript utilizzando qualsiasi linguaggio di programmazione in grado di gestire pipe con nome (fifos). Noi
descrivere questa soluzione in questa sezione. (Un terzo approccio è usare fvwm-themes-com da
il pacchetto fvwm-themes, ma in realtà il metodo SendMsgAndGet è un'implementazione di
fvwm-themes-com all'interno di FvwmScript e questo offre prestazioni migliori).
Fondamentalmente, avvii un programma "esterno" (il programma in breve) dal tuo FvwmScript
script (lo script in breve). Questo programma viene eseguito in background e tu usi il
Funzione SendMsgAndGet nel tuo script per porre domande o per dare istruzioni al
programma. Il programma deve rispettare rigorosamente un certo protocollo di comunicazione. Primo di
tutto quello che c'è è un identificatore comId per la comunicazione, dovrebbe contenere l'identificativo del processo
dello script per una buona implementazione del protocollo (usare la funzione GetPid e passare
, il comId tramite un'opzione del programma). Il protocollo utilizza due fifo, nell'utente fvwm
directory, denominata: .tmp-com-in-comId e .tmp-com-out-comId. Il programma dovrebbe creare e
ascolta sul .tmp-com-in-comId fifo. Quindi, quando FvwmScript esegue una funzione del
modulo:
Imposta $risposta = (SendMsgAndGet {comId} {cmd} bool)
FvwmScript scrive il cmd su questa fifo. In questo modo il programma può leggere il cmd e può
eseguire l'azione appropriata (dovrebbe rimuovere l'infifo per supportare multi-
comunicazioni). Se bool è 0, FvwmScript non attende una risposta dal programma e
restituisce 1 se le azioni precedenti hanno successo e 0 se non sono riuscite (quindi il programma dovrebbe "andare
back" alla in fifo). Se bool è 1, quindi FvwmScript attende (20 sec) una risposta da
il programma e a sua volta restituisce la risposta allo script (notare che bool non è passato a
il programma in quanto deve sapere quali comandi necessitano di una risposta). Per rispondere, il programma crea
il .tmp-com-out-comId fifo e ci scrive sopra la risposta. Il programma dovrebbe attendere fino a
FvwmScript legge la risposta e quindi dovrebbe rimuovere la fifo out e tornare alla in
fifo. La risposta dovrebbe consistere in una riga di non più di 32000 caratteri (dai un'occhiata
alla funzione Parse per gestire più righe come una riga).
Un modo semplice per comprendere questo protocollo e per scrivere script e programmi che lo utilizzano è
per dare un'occhiata all'esempio (non utile) FvwmScript-ComExample e fvwm-script-
ComExample.pl (che si trova nella directory dei dati fvwm). Inoltre, questa implementazione
del protocollo risolve domande come: cosa fare se lo script esce per un motivo sbagliato?
Cosa fare se il programma si chiude per un brutto motivo? ...eccetera.
Usa FvwmScript online utilizzando i servizi onworks.net