Equivalente de Autohotkey?

48

¿Existe un producto / método equivalente para AutoHotkey? Para aquellos que no saben, es un producto que le permite programar los movimientos del mouse y el teclado. Esto me permite "macro" ciertas funciones en los programas en lugar de tener que hacerlo manualmente. En los viejos tiempos solían llamarlos rellenos de teclado. Pero esa es solo la mitad de la solución, ya que también necesito un relleno de "movimiento del mouse".

¿Hay tal bestia?

Meer Borg
fuente

Respuestas:

31

Hay un puerto de AutoHotKey para Linux llamado IronAHK y una herramienta similar llamada Autokey . Yo tampoco lo he usado, no sé qué tan bien funcionan.

Aparte de estos programas, no encontrará exactamente el mismo tipo de herramientas de automatización. La herramienta básica de automatización del usuario en sistemas Unix es el shell. El shell es el pegamento que combina otras herramientas: puede lanzar programas externos y controlar cómo intercambian datos. El shell en sí no incluye nada para manipular conceptos de GUI como ventanas y el puntero del mouse¹. Lo que debe hacer es llamar a herramientas especializadas en un script de shell, en particular xdotool para manipular ventanas e inyectar pulsaciones de teclas y eventos del mouse .

Por ejemplo, el siguiente script hace clic en la posición (40,20) en la ventana de Myapp.

#!/bin/sh
xdotool search --class Myapp \
        mousemove --window %1 40 20 \
        click 1

¹ Excepto por dtksh , pero nunca he visto un puerto de Linux.

Gilles 'SO- deja de ser malvado'
fuente
Bonito resumen, lástima que el proyecto esté desactualizado hace 4 años y los archivos binarios son todos 404, sin embargo, probaré el xdotool. Gracias por tomarte el tiempo.
Meer Borg
probó xdotool, funciona de maravilla, pero definitivamente debería leer sus documentos antes de comenzar
ConstantineK
1
AFAIK, IronAHK nunca se implementó completamente y ha sido abandonado.
Joe
2

Puede usar xautomation en Linux. Lo uso en las pantallas de visualización de Raspberry Pi, para enviar actualizaciones de página F5 y pulsaciones de teclas 'Volver' (ingresar) para inicios de sesión.

Andy Anderson
fuente
1

Descargue Autohotkey en Linux. Cree un archivo Autohotkey (ejemplo.ahk). Use wine para ejecutar Ahk2Exe.exe desde la carpeta Autohotkey. Compile su archivo example.ahk a example.exe Use wine para ejecutar example.exe

Angelo
fuente
2
No es una buena opción. Por ahora, la funcionalidad de Autohotkey run through wine es muy limitada: appdb.winehq.org/… .
banan3'14
1

Hay varios proyectos que abordan esto. Los dos más activos, AFAIK, son sikuli y AutoKey (un proyecto que ayudo a apoyar).

No he usado sikuli, pero parece estar basado en encontrar patrones en la pantalla y desencadenar acciones basadas en ellos.

AutoKey permite al usuario definir frases de activación y teclas de acceso rápido que expanden las frases (similar a una función de autocorrección muy poderosa) o ejecutar scripts escritos en Python3 que solo están limitados por las habilidades de programación del usuario. Proporciona una API para la generación de eventos de teclado y mouse. También se integra con Xautomation que le permite encontrar una pequeña imagen en la pantalla y mover el cursor del mouse hacia ella.

He estado usando AutoKey durante muchos años y lo apoyo en nuestra lista . Es como una serie de herramientas de productividad: puede sobrevivir sin él, pero una vez que comience a usarlo, se preguntará cómo alguna vez lo hizo sin él.

Algunos detalles:

AutoKey no funciona con definiciones y scripts de AutoHotKey. Tendrán que ser reescritos.

Escribí un script bash de prueba de concepto (disponible a pedido) que traduce las frases AutoHotKey en frases AutoKey, pero es solo un punto de partida e ignora la mayoría de las opciones de AutoHotKey.

Dado que los scripts de AutoKey están escritos en Python3, también es posible llamar a herramientas como xdotool y wmctrl desde un script para proporcionar funcionalidad adicional, pero esto normalmente no es necesario. Aunque los scripts de AutoKey están escritos en Python, se puede lograr mucho con un conocimiento muy limitado de Python. No necesita ser un programador de Python fluido para la mayoría de los propósitos.

Si utiliza una distribución basada en Debian, no instale la versión de AutoKey proporcionada por su distribución. Su paquete AutoKey está sin mantenimiento y es muy antiguo. Obtenga una versión actual de nosotros .

Joe
fuente
0

... programe los movimientos del mouse y el teclado. Esto me permite "macro" ciertas funciones en los programas en lugar de tener que hacerlo manualmente.

Kantu es una herramienta de automatización de escritorio multiplataforma que funciona muy bien en Ubuntu (no lo he probado en otros sabores)

La herramienta básica de automatización del usuario en sistemas Unix es el shell.

Sí. Pero AHK y Kantu permiten al usuario automatizar tareas dentro de una aplicación simulando clics del mouse y golpes de teclado. El caparazón no puede hacer esto. Lo uso para pruebas automatizadas más algunos trucos de productividad.

Por supuesto, puede combinar kantu con python o iniciarlo directamente desde el shell.

Jim Grigoryan
fuente
2
Jim, si está afiliado a cualquiera de esos productos que enlace a, tenga en cuenta que el Centro de Ayuda de este sitio tiene pautas sobre el comportamiento esperado en lo que respecta a la divulgación de su afiliación en sus respuestas. Las respuestas que no incluyen esto están sujetas a eliminación. ¡Gracias!
Jeff Schaller
0

Solo usa XEV y XMODMAP. SIMPLE y mejor que los programas dedicados o emulando aplicaciones de Windows malísimas. Todas mis cosas de LINUX usan scripts para redefinir las teclas y cambiar los modos de pantalla y luego, cuando el programa finaliza y sale, configura todo de nuevo a la normalidad. Es casi tan fácil usar XMODMAP y crear un script como crear un script AHK, pero con la ventaja adicional de no tener que ejecutar una aplicación de Windows emulada. Y para las personas que dicen que no puedes hacer esto o aquello ... INCORRECTO. ¡Puede hacer más desde el shell de Linux que cualquier otro sistema operativo y puede hacer todo lo que estamos hablando, incluso mover ventanas, y aún usar comandos de sistema amigables para el sistema que están integrados!

MENTD
fuente
3
Esta respuesta podría, por lo que sé, ser 100% correcta y precisa. Sin embargo, sería  mucho más útil si incluyera algunos ejemplos y / o instrucciones, o incluso enlaces a más documentación.
Scott
0

Me gustaría comentar que todas las soluciones comentadas anteriormente solo funcionan en sistemas X11. No hay ninguna solución (o, al menos, todavía no he encontrado a nadie) que funcione en Wayland.

Osqui
fuente