Le azioni COMMAND supportano le finestre del desktop in diversi modi.
Se l'applicazione dispone di una propria finestra, l'azione può essere scritta in modo da non richiedere alcun supporto aggiuntivo. Questa opzione viene usata anche quando un'azione esegue un comando che non richiede un input diretto dell'utente e non produce alcun output.
Se l'applicazione deve essere eseguita in una finestra di emulazione di terminale, l'azione può essere scritta in modo da aprire una finestra e quindi eseguirvi l'applicazione. Esistono diverse opzioni per la scelta del terminale.
Usare il campo WINDOW_TYPE per specificare il tipo di supporto delle finestre richiesto dall'azione, come indicato nella Tabella 12-2.
Tabella 12-2 Campo WINDOW_TYPE e supporto delle finestre
Supporto di finestre fornito |
|
---|---|
Nessuno. Usare NO_STDIO se l'applicazione ha una propria finestra, o se il comando non produce alcun output visibile. |
|
Finestra di emulazione di terminale permanente. L'azione apre una finestra di terminale che rimane aperta fino a quando non viene chiusa esplicitamente, e in cui l'utente ha la possibilità di inserire informazioni. Usare questa opzione con i comandi che accettano un input, producono un output e quindi terminano (ad esempio, ls directory). |
|
Finestra di emulazione di terminale temporanea. L'azione apre una finestra di terminale che si chiude non appena il comando è completato. Usare questa opzione con i comandi eseguiti a schermo intero (ad esempio, vi). |
Usare il campo TERM_OPTS nella definizione dell'azione per specificare opzioni precise per il comando di avvio dell'emulatore di terminale.
Ad esempio, l'azione seguente richiede di specificare l'host di esecuzione:
ACTION ApriTermSuSistemaSelezionato { WINDOW_TYPE PERM_TERMINAL EXEC_HOST %(String)"Terminale remoto su:"% TERM_OPTS -title %(String)"Titolo della finestra:"% EXEC_STRING $SHELL }
L'emulatore di terminale predefinito per le azioni è dtterm. È tuttavia possibile impostare un diverso emulatore di terminale da usare quando l'azione non specifica l'emulatore richiesto in modo esplicito.
La riga di comando dell'emulatore di terminale usato dalle azioni deve comprendere le seguenti opzioni:
-title titolo_finestra
-e comando
L'emulatore di terminale predefinito per le azioni viene determinato da due risorse:
La risorsa localTerminal specifica l'emulatore di terminale usato dalle applicazioni locali.
*localTerminal: terminale
Ad esempio:
*localTerminal: xterm