# Tipos de dialogos yad
# Yad dialogo Info
TEXTO="\n¡¡Ya ha terminado el proceso de <b>Asignación y Actualización del equipo contra Migasfree</b>!!\n\n\
Antes de la reasignación las Etiquetas Migasfree del equipo eran las siguientes: \n\n\
$(echo ${ETIQUETASVIEJAS} | tr -s ' ' '\n' | grep -n '-' | sed -e 's/😕) /g' | sed -e 's/.*/ &/g') \n\n \
Tras la asignación de Etiquetas Migasfree, el listado de etiquetas para este equipo es el siguiente: \n\n\
$(echo ${ETIQUETASNUEVAS} | tr -s ' ' '\n' | grep -n '-' | sed -e 's/😕) /g' | sed -e 's/.*/ &/g') \n\n \
Esperamos que se haya modificado correctamente el etiquetado Migasfree del equipo. En caso contrario comprueba el correcto estado de la conexión con Internet. \n\n <b>¡¡Ya puedes cerrar la ventana anterior!!</b>"
**yad** --title "Comprobación de la Asignación de Etiquetas Migasfree" \\
**--text** "${TEXTO}" \\
--window-icon=/usr/share/lxpanel/images/vitalinux.svg \\
--image migasfree \\
--width="620" --height="450" \\
--center --justify="center" --text-align="left" --button=Terminar:0
# Yad dialogo Tail
(
echo "--> En breve comenzará la comunicación con el servidor Migasfree ..."
echo "--> Se mostrará un diálogo para que puedas seleccionar las Etiquetas deseadas ..."
echo "--> Ten paciencia por favor ... "
echo "--> No cierres la ventana hasta que se te indique ..."
echo "..."
ETIQUETASVIEJAS="$(migasfree-tags -g)"
echo "Etiquetas Migasfree previas del equipo antes de la reasignación: "
echo ${ETIQUETASVIEJAS} | tr -s ' ' '\n' | grep -n '-' | sed -e 's/😕) /g' | sed -e 's/.*/ &/g'
# Sacamos la ventana para que el usuario seleccione etiquetas Migasfree:
migasfree-tags -s | sed -r 's/'$(echo -e "\033")'\[[0-9]{1,2}(😭[0-9]{1,2})?)?[mK]//g'
ETIQUETASNUEVAS="$(migasfree-tags -g)"
yad --title "Comprobación de la Asignación de Etiquetas Migasfree" \
--text "${TEXTO}" \
--window-icon=/usr/share/lxpanel/images/vitalinux.svg \
--image migasfree \
--width="620" --height="450" \
--center --justify="center" --text-align="left" --button=Terminar:0
echo -e "\n\nGracias por la espera... \nAhora ya puedes cerrar la ventana ..."
) | yad --title "Asignación de Etiquetas Migasfree" \
--text-info --tail \
--text-align="center" \
--text "\n A continuación podrás asignar las Etiquetas Migasfree que desees para este equipo: \n<b>CID (${CID}) y HostName (${NOMBRE})</b>\n" \
--window-icon=/usr/share/lxpanel/images/vitalinux.svg \
--image migasfree \
--width="750" --height="550" --center --button "Cerrar Ventana":0
# Yad dialogo progress
# Progress Pulsate
if ! (
while ! wget -O /tmp/inet_connection_migasfree migasfree.educa.aragon.es > /dev/null 2>&1 ; do
echo "#No hay conexión al servidor ..."
sleep 1
done
) | yad --title "Asignación de Etiquetas Migasfree" \
--center --width 650 \
--text-align center \
--window-icon migasfree \
--image migasfree \
--text " Hay un problema de conexión con el servidor ... \n <b> Está el equipo conectado a Internet?...</b>\n" \
--progress --pulsate --auto-close --button="Cancelar la Asignación ... Lo Intentaré más tarde":1 ; then
exit 1
fi
if ! (
while ps -auxf | egrep '/usr/bin/migasfree --update|/usr/bin/migasfree-launcher' \
| grep -v 'egrep' | grep -v indicator &> /dev/null ; do
echo "#Esperando a que termine la comunicación actual con Migasfree ..."
sleep 1
done
) | yad --title "Asignación de Etiquetas Migasfree" \
--center --width 650 \
--text-align center \
--window-icon migasfree \
--image migasfree \
--text " Existe en este momento una comunicación activa con Migasfree ... \n <b> Debes esperar a que termine esta comunicación ...</b>\n" \
--progress --pulsate --auto-close --button="Cancelar la Asignación ... Lo Intentaré más tarde":1 ; then
exit 1
fi
# Progress Porcentaje
INCREMENTO=$(echo 100/$NUMPARAM | bc)
CONTADOR=0
(
echo "#Va a empezar la copia a ${DESTINO}..."
until [ -z "$1" ]
do
echo "#=> Copiando el archivo: $1 a $DESTINO ..."
if rsync -ahv "$1" "$DESTINO" ; then
RESULTADO="${RESULTADO}\n${1} -> $DESTINO/$(basename "${1}")"
else
TEXTO=" Error: No se ha podido copiar <b>$1</b> en <b>$DESTINO</b> ...\n ¿Problemas con permisos? (¿not root?)"
TITULO="Problemas al copiar $1 en Destino"
mensaje-error "$TITULO" "$TEXTO"
fi
CONTADOR=$(( CONTADOR + INCREMENTO))
echo $CONTADOR
shift
done
echo "#Ok!!! Ya se han terminado de copiar los archivos. Como Resultado: $RESULTADO"
echo "100"
) | yad --title "Herramienta para Crear BACKUP de Archivos" \
--window-icon vitalinux \
--image file1 \
--width 600 \
--center \
--progress --percentage=0 --button="Cerrar":0
# Yad dialogo notification
Nos permite colocar una notificación en la barra de tareas, y personalizar la imagen y sus menús en tiempo real:
! /bin/sh
-- mode: sh --
#Manage removable media - Author: Victor Ananjevsky , 2009
BASEDIR=/mnt/usb
PIPE=$(mktemp -u --tmpdir ${0##*/}.XXXXXXXX)
function on_exit () { echo "quit" >&3 rm -f $PIPE }
function on_unmount () { gsu umount $1 ret=$? if [[ $ret -eq 0 ]]; then notify-send -u normal -i drive-removable-media -t 900 \ "${1##/}" "${1##/} unmounted successfully" else notify-send -u critical -i drive-removable-media -t 1200 \ "${1##/}" "Unmount ${1##/} failed (error code $ret)!!!" fi }
function update_state () {
MENU= for d in $(find $BASEDIR -mindepth 1 -maxdepth 1 -type d); do MENU="${d##*/}!sh -c 'on_unmount $d'|$MENU" done if [[ -z $MENU ]]; then
echo "visible:false" >&3
else
echo "visible:true" >&3
echo "menu:$MENU" >&3
fi }
mkfifo $PIPE
exec 3<> $PIPE
export -f on_unmount
trap on_exit EXIT
yad --notification --kill-parent --listen \
--image=drive-removable-media --text="Removable media" \
--command="xdg-open $BASEDIR" <&3 &
update_state
inotifywait -m -e create -e delete $BASEDIR 2> /dev/null | while read LINE; do case $(echo $LINE | awk '{print $2}') in "CREATE,ISDIR") update_state ;; "DELETE,ISDIR") update_state ;; esac done ```
Para modificar el icono de la notificación en tiempo real:
echo "icon: nombre_icono" >&3