YAD - Yet Another Dialog
Date: 2019-11-23Last modified: 2023-03-07
action=$(yad \
--width 300 --entry --title "System Logout" \
--image=gnome-shutdown \
--button="_Switch User:2" \
--button="gtk-ok:0" \
--button="gtk-close:1" \
--text "Choose action:" \
--entry-text \
"Power Off" "Reboot" "Suspend" "Logout")
# Captura o status do último comando
ret=$?
[[ $ret -eq 1 ]] && exit 0
if [[ $ret -eq 2 ]]; then
gdmflexiserver --startnew &
exit 0
fi
case $action in
Power*) cmd="sudo /sbin/poweroff" ;;
Reboot*) cmd="sudo /sbin/reboot" ;;
Suspend*) cmd="sudo /bin/sh -c 'echo disk > /sys/power/state'" ;;
Logout*)
case $(wmctrl -m | grep Name) in
*Openbox) cmd="openbox --exit" ;;
*FVWM) cmd="FvwmCommand Quit" ;;
*Metacity) cmd="gnome-save-session --kill" ;;
*) exit 1 ;;
esac ;;
*) exit 1 ;;
esac
eval exec $cmd
yad --form \
--image logo-dicas-l.webp \
--image-on-top \
--title "Dicas-L/Livra-TE ensino profissional" \
--text "Demo do YAD para Livra-TE/Dicas-L" \
--field Nome 'Juliana' \
--field Nascimento:DT 01/01/2000 \
--field "Há quantos anos usa Linux:NUM" '1!0..25!1' \
--field "Sites preferidos:CB" \
'BR-Linux!^Dicas-l!Viva o Linux!Outros' \
--field "Vou passar a usar o yad:CHK" TRUE \
--field "Vou continuar usando zenity:CHK"
DT
abre um calendárioNUM
define uma spinboxCB
define um combobox^
valor default!
separador
Lançador de aplicações
yad --icons \
--read-dir=/usr/share/applications \
--width 670 --height 400 \
--no-buttons
Clique em algum ícone para lançar a aplicação
yad
exval=$?
case $exval in
1) echo "You pressed Cancel";;
0) echo "You pressed OK";;
252) echo "You pressed ESCAPE key or closed the window.";;
esac
# Collect the YAD options
cmd=$(
yad --center --borders=20
--title="YAD Custom Dialog Buttons"
--button="Browser":"firefox"
--button="Announce":"bash -c announce"
--button="Exit"
)
export -f announce
"${cmd[@]}"
unset announce
Referências
Tem mais exemplos no yaddemo
Importar dos dois primeiros links