Quelles sont les différences entre xdotool et xautomation?

21

xdotool et xautomation sont deux outils d'automatisation X11 en ligne de commande. J'ai utilisé le premier pendant un certain temps et je n'ai découvert que récemment l'existence de ce dernier, et je suis curieux de savoir ce que quelqu'un qui a utilisé les deux pendant un certain temps a à dire à leur sujet. En particulier:

  1. Ont-ils le même usage prévu? Il semble que ce soit dans les pages de manuel, mais je pourrais manquer certains détails.

  2. Sont-ils également pris en charge dans la plupart des systèmes? Ou l'un est-il plus largement utilisé que l'autre?

  3. Y a-t-il des choses qui peuvent être faites avec l'un mais pas avec l'autre?

glS
la source
7
J'utilise également xdotool pour des choses simples (chaque fois que j'ai besoin de quelque chose qu'AutoKey ne fera pas) et je n'étais pas au courant de xautomation. En jetant un coup d'œil aux documents, la plus grande différence est que xautomation comprend des outils pour "regarder" l'écran de l'interface graphique et que xdotool ne le fait pas. Je vais approfondir la question car j'ai besoin de cette capacité.
Joe

Réponses:

10

xdotoolest un programme compilé, vous pouvez l'utiliser de n'importe où. Et il peut être pré-installé sur votre distribution. Vous l'orchestrez avec n'importe quel langage de script. Vient recommandé par beaucoup, mais peut devenir fastidieux lors de l'écriture de chaînes plus élaborées.

Un exemple de commande à utiliser dans n'importe quel langage / shell de script:

xdotool type "Hello Unix.StackExchange Reader"

Vous pouvez trouver plus à partir d'ici:


XAUT"(anciennement X Automation)" est une bibliothèque C et un module Python "pour simuler par programme l'utilisation du clavier et de la souris, ainsi que pour manipuler les fenêtres. L'inspiration pour cela vient d'AutoIt ainsi que d'AutoHotkey".

Sur les distributions les plus récentes xautou xautomationdevrait également être disponible.

Un exemple de pyscript pourrait ressembler à ceci:

import xaut
kbd = xaut.keyboard()
kbd.type("Hello Unix.StackExchange Reader{Return}")

Cela vous "force" à utiliser Python, mais si vous faites quelque chose de plus élaboré, comme vouloir lire des entrées depuis AD ou * SQL, vous apprécierez probablement rapidement les pouvoirs que python vous donne avec l'écosystème de modules utiles dont il dispose.

Alex Stragies
la source
Alors ... recommandez-vous l'un plutôt que l'autre? Quels aspects faut-il prendre en compte pour décider de l'un d'entre eux?
Torben Gundtofte-Bruun