En general, automatizar nuestras tareas repetitivas diarias nos ahorra tiempo. Pero a veces, los programadores automatizamos una tarea tan simple que llevó más tiempo automatizar que hacer manualmente la tarea real. Creo que has visto este meme, ¿verdad? Lo más divertido es que, como programador, puedo relacionarme con este meme 😂.
Bromas aparte, automatizar una tarea repetitiva regular puede hacerte muy productivo, si la ejecutas bien. Automatizar una tarea también puede ayudarlo a desarrollar su capacidad de pensamiento crítico. Al hacer esto, aprenderá cómo dividir un problema grande en partes pequeñas y resolverlas una por una.
En este tutorial para principiantes, escribiremos un script de shell y usaremos las utilidades X11 para automatizar nuestro escritorio Linux. El objetivo del artículo es configurar automáticamente nuestro entorno de trabajo diario con un solo comando.
Para darle una idea, cuando ejecuto el script, abrirá el cliente de correo en un espacio de trabajo. Luego irá al siguiente espacio de trabajo y abrirá los sitios web de Reddit y Twitter en el navegador Chrome. Por lo tanto, crea un entorno de trabajo sin hacer todas estas tareas manualmente.
Este es un tutorial muy pequeño para brindarle un punto de partida sobre la automatización en los escritorios de Linux. Construyes tu propio flujo de trabajo automático encima de esto y lo compartes conmigo. Estaré muy contento de verlos.
El resultado final de este tutorial se ve así.
Estamos usando xdotool para automatizar el escritorio de Linux. Esta herramienta está diseñada específicamente para el sistema de ventanas x11 y es posible que no sea totalmente compatible con Wayland.
Para instalar xdotool en su distribución de Linux, ejecute los siguientes comandos.
apt-get install xdotool
dnf install xdotool
pkg install xdotool
zypper install xdotool
Cree un script bash y hágalo ejecutable. Usaremos este script para ejecutar la automatización.
$ touch automation.sh $ sudo chmod +x automation.sh
Agregue el shebang y su ruta binaria bash en la parte superior del script. Esta línea localiza el intérprete de bash y ejecuta su script.
#! /bin/bash
En este ejemplo, estoy usando Geary como cliente de correo. Puedes usar el tuyo también. Para abrir Geary desde la terminal, podemos ejecutar el siguiente comando.
geary 1>/dev/null 2>/dev/null &
Este comando abre el cliente de correo de Geary y desconecta el proceso de la terminal. Cualquier resultado de la aplicación Geary se enviará a la ubicación /dev/null
. Esto es fundamental para mantener limpio nuestro terminal.
Agregue la línea anterior a nuestro script bash. Abre la aplicación Geary cuando ejecutamos el script. Como abrir aplicaciones GUI lleva tiempo, debemos esperar un poco. Por lo tanto, agregue un sueño de 2 segundos después del comando anterior.
sleep 2
En mi entorno de escritorio, tengo que presionar ctrl+alt+Right
para cambiar al siguiente espacio de trabajo. Del mismo modo, ctrl+alt+Left
para el espacio de trabajo anterior.
Ahora, convierta esta lógica en código usando xdotool en nuestro script bash. Para navegar al siguiente espacio de trabajo, agregue la siguiente línea en el script.
xdotool key ctrl+alt+Right
Para evitar posibles errores, agregamos un tiempo de suspensión de 2 segundos en el script. Puede cambiar este tiempo según sus necesidades.
sleep 2
En el segundo espacio de trabajo, nuestro script necesita abrir el navegador google-chrome y abrir 2 sitios web. Para abrir el navegador google-chrome, usamos la misma lógica que abrimos nuestro cliente de correo en el paso anterior. Abrimos la GUI de google-chrome y enviamos todos los resultados del terminal a la ubicación /dev/null
.
google-chrome 1>/dev/null 2>/dev/null &
Ahora nuestro plan es abrir 2 pestañas del navegador. Uno de los cuales contiene el sitio web de HackerNoon y el otro contiene el sitio web de Twitter. Piensa en esta tarea. ¿Sabes cómo abrir una pestaña del navegador usando un atajo de teclado?
Pensemos en nuestro flujo de trabajo habitual de abrir un sitio web en nuestro navegador web.
ctrl+t
para abrir una nueva pestaña del navegador.
Ahora tenemos que emular este flujo usando código. De los ejemplos anteriores, ¿sabe cómo emular la pulsación de una tecla usando xdtool, verdad?
xdotool key ctrl+shift+t
El comando anterior crea una nueva pestaña del navegador. Para poner su URL en la barra de búsqueda, usamos la palabra clave type
de xdotool.
xdotool type "https://www.hackernoon.com/"
Luego emulamos el botón de entrar o regresar para visitar el sitio web.
xdotool key Return
Ahora podemos combinar estos 3 comandos para ejecutarlos secuencialmente uno tras otro.
xdotool key "ctrl+shift+t"; xdotool type "https://www.hackernoon.com/"; xdotool key Return
Intenta ejecutar este comando en tu terminal. ¿Está funcionando? ¡Felicidades 🎊!
Ahora intente escribir un comando para abrir twitter.com en una nueva pestaña. Puedes hacerlo. Solo eche un vistazo al comando anterior y modifíquelo ligeramente para que se ajuste a sus necesidades.
Nuestro script bash de automatización ahora está completo. Después de escribir el comando para abrir Twitter en google-chrome, el script final se ve así.
#! /bin/bash geary </dev/null &>/dev/null & sleep 2 #Go to workspace 2 xdotool key ctrl+alt+Right sleep 2 google-chrome </dev/null &>/dev/null & sleep 4 xdotool key "ctrl+t"; xdotool type "https://www.hackernoon.com/"; xdotool key Return sleep 4 xdotool key "ctrl+t"; xdotool type "https://twitter.com/"; xdotool key Return echo "Your workspace is ready 😎"
Para ejecutar nuestro script bash, especifique el nombre del archivo del script con la ruta relativa al script.
$ ./automation.sh
Esto ejecutará nuestro script en la terminal y podrá ver la apertura automática de la aplicación y el cambio de espacio de trabajo frente a usted.
Este es un tutorial para principiantes para aprender la automatización básica del escritorio de Linux. Visite la documentación de xdotool para obtener más información. Si aprendiste algo nuevo, compártelo con tus compañeros sociales.