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. Lo que debe esperar en este tutorial 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í. Instalación de las herramientas necesarias Estamos usando 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. xdotool Para instalar xdotool en su distribución de Linux, ejecute los siguientes comandos. Debian y Ubuntu: apt-get install xdotool Fedora: dnf install xdotool FreeBSD: pkg install xdotool OpenSUSE: zypper install xdotool Automaticemos nuestro escritorio Linux 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 Abre programáticamente tu cliente de correo 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 . Esto es fundamental para mantener limpio nuestro terminal. /dev/null 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 Cambiar al siguiente espacio de trabajo En mi entorno de escritorio, tengo que presionar para cambiar al siguiente espacio de trabajo. Del mismo modo, para el espacio de trabajo anterior. ctrl+alt+Right ctrl+alt+Left 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 Abrir Google-Chrome 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. Usamos para abrir una nueva pestaña del navegador. ctrl+t Luego ponemos la URL en la barra de búsqueda Presiona enter o regresa para visitar una página web. 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 de xdotool. type 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 😎" Ejecutando el script bash 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. Conclusión Este es un tutorial para principiantes para aprender la automatización básica del escritorio de Linux. Visite la para obtener más información. Si aprendiste algo nuevo, compártelo con tus compañeros sociales. documentación de xdotool