Zenity

programma libero e multipiattaforma

Zenity è un programma libero e multipiattaforma che permette la realizzazione ed esecuzione di finestre di dialogo GTK+ all'interno di script di shell.

Zenity
software
Schermata di esempio
Schermata di esempio
GenereGestore di finestre di dialogo (non in lista)
SviluppatoreGlynn Foster, Lucas Rocha
Ultima versione4.0.1 (4 gennaio 2024)
Sistema operativoMultipiattaforma
LinguaggioC
ToolkitGTK
Licenzalicenza GPL
(licenza libera)
Sito webwiki.gnome.org/Zenity

Gli script di shell sono dei programmi a riga di comando molto diffusi in ambiente Unix in quanto costituiscono dei potenti strumenti per l'automazione delle attività di elaborazione. La riga di comando è spesso una limitazione in quanto gli utenti preferiscono interagire con delle finestre di dialogo, da qui nasce l'esigenza di dotare gli script di un sistema di interazione grafico.

Esistono diversi strumenti preposti a questo scopo, ma zenity si distingue per la sua semplicità ed immediatezza di utilizzo da parte del programmatore.

Sebbene Zenity nasca in ambiente Unix, ci sono dei progetti di porting per Windows e macOS.

Requisiti ed installazione modifica

Zenity è normalmente già installato di default in tutte le distribuzioni Linux equipaggiate con l'ambiente grafico GNOME. Le librerie GTK+ che sono parte dell'ambiente GNOME, sono un prerequisito per l'installazione di zenity. Laddove zenity non sia installato, è possibile procedere alla installazione tramite il normale meccanismo di gestione dei pacchetti di Linux. Per verificare la prezenza di Zenity sul proprio sistema è possibile impartire il comando:

zenity --version

il risultato di questo comando è l'indicazione della versione di zenity.

Help del programma modifica

Un altro comando utile è la richiesta di help:

zenity --help

Il cui risultato è il seguente utile sommario di informazioni:

Uso:
 zenity [OPZIONE…]

Opzioni di aiuto:
 -h, --help                                         Mostra le opzioni di aiuto
 --help-all                                         Mostra tutte le opzioni di aiuto
 --help-general                                     Mostra le opzioni generiche
 --help-calendar                                    Mostra le opzioni del calendario
 --help-entry                                       Mostra le opzioni della casella di inserimento del testo
 --help-error                                       Mostra le opzioni del dialogo di errore
 --help-info                                        Mostra le opzioni del dialogo di informazione
 --help-file-selection                              Mostra le opzioni del dialogo di selezione file
 --help-list                                        Mostra le opzioni del dialogo elenco
 --help-notification                                Mostra le opzioni dell'icona di notifica
 --help-progress                                    Mostra le opzioni della barra di avanzamento
 --help-question                                    Mostra le opzioni di domanda
 --help-warning                                     Mostra le opzioni di avvertimento
 --help-scale                                       Mostra le opzioni del cursore
 --help-text-info                                   Mostra le opzioni del testo informativo
 --help-color-selection                             Mostra le opzioni di selezione del colore
 --help-password                                    Mostra le opzioni del dialogo password
 --help-forms                                       Mostra le opzioni del dialogo moduli
 --help-misc                                        Mostra opzioni varie
 --help-gtk                                         Mostra le opzioni GTK+

Opzioni dell'applicazione:
 --calendar                                         Mostra un dialogo con il calendario
 --entry                                            Mostra un dialogo di inserimento testo
 --error                                            Mostra un dialogo di errore
 --info                                             Mostra un dialogo di informazioni
 --file-selection                                   Mostra un dialogo di selezione file
 --list                                             Mostra un dialogo con un elenco
 --notification                                     Mostra un'icona nell'area di notifica
 --progress                                         Mostra un dialogo di indicazione dell'avanzamento
 --question                                         Mostra un dialogo di domanda
 --warning                                          Mostra un dialogo di avvertimento
 --scale                                            Mostra un dialogo con un cursore
 --text-info                                        Mostra un dialogo di informazione testuale
 --color-selection                                  Mostra un dialogo di selezione del colore
 --password                                         Mostra un dialogo della password
 --forms                                            Mostra un dialogo modulo
 --display=DISPLAY                                  X display to use

Esempi di utilizzo modifica

Riportiamo di seguito alcuni semplici esempi, utili per comprendere il funzionamento e le potenzialità di zenity.

Finestra di informazione modifica

Per visualizzare una semplice finestra di informazione, si può impartire il seguente comando dalla shell di Linux:

zenity --info --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"

Questo comando sortirà l'apertura della finestra di dialogo. La finestra scompare alla pressione del tasto OK. È possibile inserire il comando in uno script di shell, che assumerà la seguente forma:

#!/bin/sh

zenity --info --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"

Finestre per warning ed errori modifica

Per i warning e gli errori la grafica è leggermente diversa, quindi sono richiesti i seguenti comandi:

zenity --warning --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"
zenity --error --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"

Anche per questi due comandi, è possibile l'inserimento in uno script, analogamente a quanto visto nel precedente paragrafo.

Selezione di un file modifica

La finestra per la selezione di un file è possibile tramite il seguente comando esempio:

zenity --file-selection --title "Seleziona un file"

Il comando sortisce l'apertura della finestra di dialogo per la selezione di un file. Dopo che l'utente ha selezionato il file ed ha premuto il tasto OK, la finestra si chiude e sulla riga di comando viene riportato il nome del file selezionato. Questa possibilità di zenity è utile all'interno di uno script:

#!/bin/sh

INPUT_FILE=`zenity --file-selection --title "Seleziona un file"`

Come vediamo, il nome del file viene assegnato ad una variabile che potrà essere utilizzata dallo script. In realtà, l'utente potrebbe non selezionare nessun file, o potrebbe premere il tasto Cancel. In questo caso, il controllo da parte dello script della scelta dell'operatore è più complesso:

#!/bin/sh

INPUT_FILE=`zenity --file-selection --title "Seleziona un file"`

case $? in
    0)
        echo "il file $INPUT_FILE è stato selezionato.";;
    1)
        echo "Nessun file selezionato";
        zenity --warning --text="Nessun file selezionato, uscita dal programma";
        exit;;
    -1)
        echo "Nessun file selezionato";
        zenity --warning --text="Nessun file selezionato, uscita dal programma";
        exit;;
esac

Altri progetti modifica

Collegamenti esterni modifica