lunes, 14 de enero de 2013

Cómo recibir notificacions ao finalizar a execución dun comando nun terminal


O outro día, lendo o excelente blog WebUpd8, descubrín unha ferramenta para recibir unha notificación ao finalizar a execución dun comando no terminal, o que puede resultar útil nos casos nos que dita tarefa pode alongarse varios minutos.

Honestamente, non me parece que sexa a mellor solución. Por esa razón, aquí propomos outras alternativas, máis prácticas e sinxelas.

Undistract-me



A ferramenta recomendada por Andrew é Undistract-me.

Instalación en Ubuntu y derivados:

sudo add-apt-repository ppa:undistract-me-packagers/daily
sudo apt-get update
sudo apt-get install undistract-me

Para utilizalo hai que habilitar a opción "Ejecutar comando como terminal de inicio de sesión" no terminal da tua preferencia. No que ven con GNOME podemos habilitar esta opción baixo Edición > Preferencias de Perfil.

Una vez instalado, cualquier comando que tarde máis de 10 segundos amosará unha mensaxe ao finalizar.

Para instalar Undistract-me en otras distros, pueden encontrar las instrucciones aquí.


Otras alternativas

La ventaja de los métodos que se muestran a continuación son varios:
  • se ejecutan solamente cuando el usuario así lo pide
  • no precisan de la instalación de programas adicionales (por lo general, los paquetes necesarios ya vienen instalados en casi todas las distros populares)
  • si la pereza te carcome, podés convertirlos fácilmente en un script
  • son súper rápidos, no consumen recursos y son fáciles de aprender

Notify-send

Para mostrar mensajes de Notificación al estilo Ubuntu, tenés que tener instalado notify-send. Ubuntu, Linux Mint y derivados vienen con este paquete instalado por defecto. Los usuarios de Arch, pueden instalarlo desde AUR.

Luego, basta agregar && notify-send "¡Terminado!" al final del comando que queramos ejecutar. Suponiendo que el comando a ejecutar fuera cat:

cat archivo && notify-send "¡Terminado!"


Zenity

Un sistema más "complejo" de notificaciones es Zenity, con el cual podemos mostrar cuadros de diálogo con botones, etc.

Al igual que con notify-send, basta agregar && zenity --info --text="¡Terminado!" al final del comando que queramos ejecutar. Suponiendo, una vez más, que el comando a ejecutar fuera cat:

cat archivo && zenity --info --text="Long command completed."

Un tip interesante: es posible reemplazar && por ; para agregar elementos a la cadena de comandos a ejecutar. Así, por ejemplo, cat archivo && ls quedaría cat archivo; ls.

Fuente: Webupd8

No hay comentarios:

Publicar un comentario