Undistract-me, recibe una notificación al finalizar un comando de terminal
En el siguiente artículo vamos a echar un vistazo a una utilidad llamada Undistract-me. Este script nos va mostrar un aviso cuando se completen los comandos que estemos ejecutando en la terminal. Esto nos puede ser útil cuando tras lanzar un comando nos ponemos a trabajar sobre otra cosa. Con ella no necesitaremos verificar constantemente la terminal para ver si el comando se ha completado o no. La utilidad Undistract-me nos avisará cuando se complete un comando de larga ejecución. Funcionará en Arch Linux, Debian, Ubuntu y otros derivados.
Esta utilidad vendrá bien cuando no eres lo suficientemente disciplinado como para sentarte y mirar como se ejecutan los comandos. El script nos muestra un aviso en el escritorio cuando terminan los comandos de ejecución larga, haciendo que podamos dedicar nuestro tiempo a algo más que mirar la terminal mientras los comandos llegan al final.
Instalar Undistract-me
Undistract-me está disponible en los repositorios predeterminados de Debian y sus variantes, como Ubuntu. Yo lo he probado en Ubuntu 17.10. Todo el que quiera podrá consultar el código fuente de este script en la página de GitHub del proyecto.
Para añadirlo a tu sistema, todo lo que tendrás que hacer es ejecutar el siguiente comando en la terminal (Ctrl+Alt+T) para instalarlo:
sudo apt install undistract-me
Cuando termine la instalación, en la misma terminal, ejecuta el siguiente comando para agregar “undistract-me” a tu Bash:
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc
Alternativamente, puedes ejecutar este comando para agregarlo a tu Bash:
echo "source /usr/share/undistract-me/long-running.bash\nnotify_when_long_running_commands_finish_install" >> .bashrc
Finalmente actualiza los cambios ejecutando en la misma terminal:
source ~/.bashrc
Configurar Undistract-me
Cambiar tiempo para la notificación
De forma predeterminada, Undistract-me considerará cualquier comando que tarde más de 10 segundos para completarse como un comando de larga ejecución. Pero esto se puede cambiar. Este intervalo de tiempo lo podremos cambiar editando editando el archivo /usr/share/undistract-me/long-running.bash.
sudo nano /usr/share/undistract-me/long-running.bash
Dentro del archivo tendremos que encontrar la variable “LONG_RUNNING_COMMAND_TIMEOUT” y cambiar el valor predeterminado (10 segundos) por otro valor a tu elección. Después guarda y cierra el archivo. No olvides actualizar los cambios ejecutando el comando:
source ~/.bashrc
Habilitar/Deshabilitar notificaciones para comandos en particular
Además, vamos a poder deshabilitar notificaciones para comandos en particular. Para hacerlo, tendremos que buscar la variable “LONG_RUNNING_IGNORE_LIST” y agregar los comandos a los que afectará separados por espacios.
Habilitar/Deshabilitar la comprobación de ventana activa
De forma predeterminada, la notificación solo se mostrará si la ventana activa no es la ventana en la que se ejecuta el comando. Esto significa que solo recibiremos la notificación si el comando se está ejecutando en la ventana de fondo. Si el comando se ejecuta en la ventana activa, no se mostrará la notificación. Si queremos que se haga esta distinción vamos a poder configurar IGNORE_WINDOW_CHECK. Seleccionaremos 1 para omitir la comprobación de la ventana.
Habilitar notificación de audio
La otra característica interesante de Undistract-me es que puedes configurar la notificación de audio junto con la notificación visual cuando se completa un comando. Por defecto, solo enviará una notificación visual. Puedes cambiar este comportamiento estableciendo la variable UDM_PLAY_SOUND en un entero distinto de cero en la línea. Sin embargo, nuestro sistema Ubuntu debe tener las utilidades pulseaudio-utils y sound-theme-freedesktop instaladas para habilitar esta funcionalidad.
Recuerda que debes ejecutar el siguiente comando para actualizar los cambios realizados:
source ~/.bashrc
Probando Undistract-me
Es hora de verificar si esto realmente funciona y vamos a ver si se muestra la notificación cuando se completen los comandos de terminal de larga ejecución. Ahora ejecuta cualquier comando que lleve más de 10 segundos o la duración de tiempo que tengas definida la configuración de Undistract-me.
Para este ejemplo, simplemente hice ping a uno de los routers de mi red un número determinado de veces. Este comando tomó unos 25 segundos segundos para completarse. Después de completar el comando, recibí la siguiente notificación en el escritorio.
Recuerda que el script Undistract-me solo notifica si el comando determinado tomó más de 10 segundos para completarse y la terminal en la que se ejecuta no es la ventana activa. Si el comando se completa en menos de 10 segundos, no se le notificará. Por supuesto, puedes cambiar esta configuración de intervalo de tiempo como describí en la sección Configuración.
Encuentro esta herramienta muy útil para todos los que trabajamos en la terminal. Y siendo tan sencilla de utilizar e instalar, creo que es algo que no debe faltar en ningún equipo.
El artículo Undistract-me, recibe una notificación al finalizar un comando de terminal ha sido originalmente publicado en Ubunlog.