Pas envie de devoir apprendre un language (C, python, perl...) et son interfaçage avec une bibliothèque graphique (GTK, QT,WX...) ?
C'est possible avec yad.
Pré-requis
- savoir un peu programmer en bash (ksh, zsh ou autre)
- lire la page de man de yad
- du temps pour debugger vos scripts
Yad est un fork de Zenity avec beaucoup d’amélioration comme les boutons personnalisables, des menus pop-up sur l’icône de la zone de notification et d'autres encore.
Voici un petit exemple perso pour un TeaTime :
Code : Tout sélectionner
#! /bin/bash
testbin()
{
if [ ! -x /usr/bin/$1 ]
then
echo "Veuillez installer $1."
exit 0
fi
}
testbin yad
testbin aplay
# Variables #
TITBOX=Minuterie
DECO=/home/user/bin/deco/teatime.png
SOUND=/home/user/bin/deco/curve.wav
# Boite d'accueil #
db_accueil()
{
yad --title=$TITBOX --text=" Choisissez le temps\nd'infusion." \
--window-icon="$DECO" --image="$DECO" --image-on-top \
--height=185 --list --radiolist --no-headers \
--column 1 --column 2 --print-column=2 \
false "3 minutes" true "4 minutes" \
false "5 minutes" false "Autre"
}
# Boite choix temps autre #
db_autre()
{
yad --title=$TITBOX --text="Choisissez le temps d'infusion (min)." \
--geometry=400x35 \
--window-icon="$DECO" --image="$DECO" --image-on-top \
--scale --min-value=120 --max-value=600 --value=300 \
--mark=2:120 --mark="":150 --mark=3:180 --mark="":210 \
--mark=4:240 --mark="":270 --mark=5:300 --mark="":330 \
--mark=6:360 --mark="":390 --mark=7:420 --mark="":450 \
--mark=8:480 --mark="":510 --mark=9:540 --mark="":570 \
--mark=10:600 --hide-value
}
# Boite de notification #
db_notification()
{
aplay $SOUND &
yad --title=$TITBOX --timeout=4 --info --text="C'est prêt \!" \
--window-icon="$DECO" --image="$DECO" --image-on-top
}
# Programme #
programme()
{
CHOIX=`db_accueil`
case $? in
252|1) # An error occured or the box was closed | Cancel/No pressed
exit 0
;;
0) # All OK
case $CHOIX in
"3 minutes|")
sleep 3m
db_notification
;;
"4 minutes|")
sleep 4m
db_notification
;;
"5 minutes|")
sleep 5m
db_notification
;;
"Autre|")
CHOIX=`db_autre`
case $? in
252) # An error occured or the box was closed
exit 0
;;
1) # Cancel/No pressed
programme
;;
0) # All OK
sleep "$CHOIX"s
db_notification
;;
esac
;;
esac
;;
esac
}
# Lancement effectif #
programme
Xdialog étant en GTK1, j'ai fini par passer à Zenity la mort dans l’âme. En effet, les possibilités étaient nettement moindre : je n'ai, par exemple, jamais réussi à mettre une icône perso. La découverte de yad vient de me réconcilier avec ce type de programme.
- Possibilité de mettre une icône perso (enfin!)
- possibilité de définir l’icône qui apparaîtra sur le bouton de la barre des tâches
- création d’icône cliquable dans la zone de notification ...
Programmes similaires :