====== Interfacce grafiche con Yad ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//16/06/2015 - 11:10//** \\ \\
Yad (yet another dialog) è un fork di Zenity, con alcune migliorie, come bottoni personalizzabili, ulteriori dialog, pop-up menu nelle notification icon e altro.
Una volta installato è possibile vedere gli esempi di utilizzo con
yad --help
===== Esempio base di utilizzo con i form =====
{{programmazione:bash:schermata-test_form.png|}} {{programmazione:bash:schermata-yad.png|}}
#!/bin/bash
#Facciamo comparire la finestra con i campi e salviamo il il valore di tutti i campi in "datiform"
datiform=$(yad --title "Test Form" --form --field "Nome" --field="Cognome")
#tramite awak scorporiamo il valore nelle variabili Nome e Cognome
Nome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $1 }')
Cognome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $2 }')
#Adesso che abbiamo le variabili, le stampiamo a video.
yad --text="Il tuo nome -> $Nome $Cognome"
===== Aggiungere altri tipi di campi =====
Nel prossimo esempio aggiungeremo un altro campo di tipo data . Per una fista dei tipi di campo basta digitare:
yad --help-form
Usage:
yad [OPTION...] Yet another dialoging program
Form options
--form Display form dialog
--field=LABEL[:TYPE] Add field to form (TYPE - H, RO, NUM, CHK, CB, CBE, FL, SFL, DIR, CDIR, FN, MFL, DT, CLR, BTN or LBL)
--align=TYPE Set alignment of fileds labels (left, center or right)
--columns=NUMBER Set number of columns in form
--separator=SEPARATOR Set output separator character
--item-separator=SEPARATOR Set separator character for combobox or scale data
--date-format=PATTERN Set the format for the returned date
#!/bin/bash
#Facciamo comparire la finestra con i campi e salviamo il il valore di tutti i campi in "datiform"
datiform=$(yad --title "Test Form" --form --field "Nome" --field="Cognome" --field="data di nascita:DT")
#tramite awak scorporiamo il valore nelle variabili Nome e Cognome
Nome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $1 }')
Cognome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $2 }')
Data=$(echo $datiform | awk 'BEGIN {FS="|" } { print $3 }')
#Adesso che abbiamo le variabili, le stampiamo a video.
yad --text="Ti chiami $Nome $Cognome e sei nato il $Data"
===== Un editore di scorciatoie .desktop =====
{{:programmazione:bash:desktop_editor.png?200|}}
#!/bin/sh
data="$(yad --title="Editor scorciatoie" --text="Un semplice editore per le scorciatoie del desktop" --item-separator='|' --form --field="Tipo:CB" --field="Nome" --field="Nome Generico" --field="Commento" --field="Comando" --field="Icona" --field="In terminale:CHK" --field="Notifica avvio:CHK" --field="Categorie" "Application|File" "Nome" "Nome generico" "Questo è un commento" "/usr/bin/yad" "yad" FALSE TRUE --button="gtk-ok:0" --button="gtk-cancel:1")"
Type=$(echo $data | awk 'BEGIN {FS="|" } { print $1 }')
Name=$(echo $data | awk 'BEGIN {FS="|" } { print $2 }')
GenericName=$(echo $data | awk 'BEGIN {FS="|" } { print $3 }')
Comment=$(echo $data | awk 'BEGIN {FS="|" } { print $4 }')
Command=$(echo $data | awk 'BEGIN {FS="|" } { print $5 }')
Icon=$(echo $data | awk 'BEGIN {FS="|" } { print $6 }')
InTerminal=$(echo $data | awk 'BEGIN {FS="|" } { print $7 }')
StartupNotify=$(echo $data | awk 'BEGIN {FS="|" } { print $8 }')
Category=$(echo $data | awk 'BEGIN {FS="|" } { print $9 }')
FILE=$Name.desktop
echo "[Desktop Entry]"> $FILE
echo "Type=$Type" >> $FILE
echo "Name=$Name" >> $FILE
echo "GenericName=$GenericName" >> $FILE
echo "Comment=$Comment" >> $FILE
echo "Exec=$Command" >> $FILE
echo "Icon=$Icon" >> $FILE
echo "Terminal=$InTerminal" >> $FILE
echo "StartupNotify=$StartupNotify" >> $FILE
echo "Categories=$Category" >> $FILE