Cómo usar AutoKey para automatizar juegos de Linux

How Use Autokey Automate Linux Games



AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MACRO, puede automatizar pulsaciones de teclas, clics del mouse y la mayoría de las partes de una interfaz de escritorio. Si está buscando una alternativa al programa de Windows AutoHotkey AutoKey es la mejor opción disponible en la actualidad para los usuarios de Linux.

Tenga en cuenta que esta es solo una aplicación X11, la compatibilidad con Wayland no se ha agregado a la aplicación en el momento de escribir este artículo.







Algunas de las características de AutoKey son:



  • Admite abreviaturas que pueden expandir automáticamente algunos caracteres en cualquiera de sus oraciones y bloques de texto de uso común.
  • Admite el envío de pulsaciones de teclas arbitrarias y clics del mouse.
  • Admite la especificación de reglas para una ventana de aplicación específica.
  • Los scripts de Python 3 se pueden utilizar para escribir reglas de automatización.
  • Capacidad para controlar funciones de ventana como maximizar, cambiar el tamaño y mover.
  • Viene con un conjunto de ejemplos preconfigurados para facilitar la creación de scripts.
  • Posibilidad de mostrar menús emergentes personalizados con una lista de opciones.
  • Capacidad para registrar pulsaciones de teclas y clics del mouse.
  • Posibilidad de configurar teclas de acceso rápido sin teclas modificadoras.
  • Los scripts de automatización son portátiles y se pueden compartir fácilmente con otros usuarios.

Esta guía le mostrará algunos ejemplos de AutoKey que son útiles para los jugadores de Linux. Para comenzar, instalemos los paquetes de Autokey Ubuntu desde su página de GitHub. Descargue los archivos que se mencionan a continuación de aquí



  • autokey-common_x.xx.x-x_all.deb
  • autokey-gtk_x.xx.x-x_all.deb o autokey-qt_x.xx.x-x_all.deb (descargar solo uno)

Después de descargar los archivos, ejecute los siguientes comandos en orden:





$sudoaptoInstalar en pc./autokey-common_0.95.8-0_todos.deb
$sudoaptoInstalar en pc./autokey-gtk_0.95.8-0_todos.deb

Es común ver muchos juegos de PC usando la tecla para guardar y cargar rápidamente. Sin embargo, muchos otros juegos de PC, especialmente los puertos de consola, tienen una forma tediosa de guardar el juego en la que tienes que navegar a través de múltiples opciones de menú. Aquí hay una maqueta rápida que he dibujado que ilustra esto (disculpe mis habilidades de dibujo):



El juego quiere que presione la tecla para pausar el juego, luego la tecla de flecha, luego la tecla para guardar el juego, seguido de la tecla nuevamente para regresar al juego. Todo este proceso se puede automatizar y asignar fácilmente a la clave utilizando AutoKey. Consulte el código de secuencia de comandos a continuación:

importartiempo
keyboard.send_key('')
tiempo de dormir(0.25)
keyboard.send_key('')
tiempo de dormir(0.25)
keyboard.send_key('')
tiempo de dormir(0.25)
keyboard.send_key('')

Para agregar este script a AutoKey, inicie la aplicación y luego haga clic en una carpeta visible o haga clic en una carpeta personalizada creada por usted para resaltarla. Haga clic en Archivo> Nuevo> Script opción de menú para crear un nuevo script dentro de esa carpeta, como se muestra en la captura de pantalla a continuación:

Cambie el nombre de esta secuencia de comandos a Quicksave y coloque el código anterior en su interior. Luego haga clic en el botón Hotkey en la parte inferior, como se muestra en la captura de pantalla a continuación:

En la siguiente pantalla, haga clic en el botón Presione para configurar y luego presione la tecla para asignarlo al script.

Llave:(Ninguno)cambiará a Key:<f5>.

Haga clic en Aceptar y presione para guardar el script. Recuerde siempre guardar el script; de lo contrario, no se ejecutará nada cuando presione la tecla de acceso rápido asignada.

La asignación de teclas de Quicksave ya está lista para ser utilizada. La próxima vez que presione la tecla, se ejecutará una serie de pulsaciones de teclas en orden.

Tenga en cuenta que hemos cambiado la funcionalidad de la clave globalmente en todo el sistema operativo, siempre que AutoKey se esté ejecutando y esté acoplado a la bandeja del sistema. Para restringirlo a una ventana o aplicación en particular, deberá especificar las reglas de la ventana haciendo clic en el botón Filtro de ventana en la parte inferior.

También puede utilizar el mismo script anterior para crear un script para una carga rápida. Solo tiene que eliminar la línea de la tecla de flecha y luego asignar el script a la tecla.

Si está buscando nombres de clave correctos para usar en los scripts de AutoKey Python 3, se puede encontrar una lista de todos los códigos de teclas especiales que se pueden usar en AutoKey aquí . Cualquier clave no mencionada en la página anterior se puede insertar usando comillas simples o dobles. Ejemplo: keyboard.send_key ('5'), keyboard.send_key ('p') y así sucesivamente.

Ejemplo 2: Beber dos pociones de salud seguidas en un juego de rol

Suponiendo que la tecla de acceso rápido para beber la poción de salud en tu juego es, el guión sería:

keyboard.send_key('h',repetir=2)

El valor de la variable de repetición también se puede cambiar a cualquier otro número. Puede seguir los pasos del primer ejemplo para asignar el script a la tecla de acceso rápido que desee.

Ejemplo 3: modo de ráfaga para pistola en un juego de disparos

Usando el código a continuación, puede asignar la tecla para disparar un arma tres veces seguidas. La forma original de disparar en el juego es presionar el botón izquierdo del mouse una vez.

# botones del mouse: izquierda = 1, centro = 2, derecha = 3
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)

El script anterior ejecutará el clic izquierdo del mouse tres veces seguidas. Se pueden agregar declaraciones adicionales si desea ejecutar el clic izquierdo más de tres veces.

Puede seguir los pasos del primer ejemplo para asignar el script a la tecla de acceso rápido.

Ejemplo 4: crear un menú de juego personalizado / convertir un juego en tiempo real en un juego por turnos

Usando la funcionalidad del menú de lista de AutoKey, mostraremos un menú como una superposición en la parte superior de un juego en ejecución. Este menú robará el foco del juego y lo devolverá después de que se ejecute un clic del mouse en uno de los elementos del menú. Una vez que se devuelve el foco, se ejecutará una pulsación de tecla automatizada que invoca una función dentro del juego.

Eche un vistazo a esta imagen:

En la carpeta GameMenu, he creado una subcarpeta llamada Show. Tanto GameMenu como la carpeta Show tienen elementos secundarios. Aquí está el código que he puesto dentro de cada elemento secundario:

  • Inventario: keyboard.send_key ('i')
  • Mapa: keyboard.send_key ('m')
  • Volver al juego: keyboard.send_key ('')
  • Cambiar a rifle de asalto: keyboard.send_key ('2')
  • Cambiar a SMG: keyboard.send_key ('1')

Aquí, la carpeta GameMenu está asignada a la clave y así es como se ve dentro del juego en ejecución:

Cada elemento del menú tiene un número prefijado antes de su etiqueta. Puede invocar cualquier elemento del menú presionando la tecla numérica correspondiente en su teclado. Por ejemplo, presionar la tecla aquí cambiará el arma al rifle de asalto.

Una pequeña demostración GIF de este ejemplo (haga clic en la imagen o haga clic derecho y abra el GIF en una nueva pestaña si la animación se detiene a continuación):

Es posible que este método no funcione con todos los juegos, dependiendo de la forma en que manejen el renderizado en ventana y en pantalla completa. Algunos juegos no se detienen cuando se roba el enfoque, mientras que otros lo hacen. Si el juego se detiene cuando se pierde el enfoque, básicamente ha convertido un juego en tiempo real en un juego por turnos utilizando este script de AutoKey.

Este ejemplo funcionará con juegos caso por caso. Sin embargo, en mis pruebas, he logrado resultados bastante buenos con los juegos nativos y Steam Proton / Wine.

Conclusión

Todos los ejemplos mencionados aquí son básicos, principalmente enfocados a jugadores de Linux. Cubren solo una parte de la potente API de AutoKey. AutoKey también puede automatizar gran parte de su flujo de trabajo utilizando sus funciones de scripting para software diario o complejo. Algunos ejemplos más están disponibles en el documentación oficial de la aplicación.