Back to TIL list

YAD - Yet Another Dialog

Created at
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 comandoret=$?[[ $ret -eq 1 ]] && exit 0if [[ $ret -eq 2 ]]; then  gdmflexiserver --startnew &  exit 0ficase $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 ;;esaceval exec $cmd

img
img

yad --form                                              \    --image logo-dicas-l.png                            \    --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
img

  • DT abre um calendário
  • NUM define uma spinbox
  • CB 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

img
img

yadexval=$?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 optionscmd=$(    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