Back to TILs

YAD - Yet Another Dialog

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

img

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"

img

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

img

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