Outils pour utilisateurs

Outils du site


issue150:tutoriel1

Welcome back! In this issue, we continue our automation journey. If you have just joined us, we are automating things in Ubuntu. Last time, I asked you to save your file as test.txt. Did you manage to do it? If not, have a look at what I did.

Ravi de vous revoir ! Dans ce numéro, nous continuons notre voyage dans l'automatisation. Si vous nous rejoignez maintenant, nous automatisons des choses dans Ubuntu. La dernière fois, je vous ai demandé de sauvegarder votre fichier dans text.txt. L'avez-vous fait ? Sinon, regardez ce que j'ai fait.

Code: #! /bin/ bash mousepad& sleep 1 xdotool type “I am too lazy to type this over and over again” xdotool key Ctrl+S xdotool type test.txt xdotool key KP_Enter xdotool key Alt+S That wasn’t so difficult, was it? What you will need: • A text editor. • xdotool on a computer running Ubuntu. • A willingness to learn.

Code :

#! /bin/ bash mousepad& sleep 1 xdotool type “I am too lazy to type this over and over again” xdotool key Ctrl+S xdotool type test.txt xdotool key KP_Enter xdotool key Alt+S

Ce n'est pas si difficile, n'est-ce pas ?

Ce dont nous aurons besoin : ••Un éditeur de texte. ••xdotool sur un ordinateur sous Ubuntu. ••La volonté d'apprendre.

Briefing Before we move onto the mouse, what if the program we are opening is already open? (In my case - mousepad). What if we do not want to run a new instance of it every time our script executes? If you had a look at the man page, you would have seen “WINDOW COMMANDS”. Below that, you would have noticed the “- - onlyvisible” “Show only visible windows in the results. This means ones with map state IsViewable.” Now, if you look under the heading “DESKTOP AND WINDOW COMMANDS”, the very first entry is ‘windowactivate’ - notice how it differs from ‘windowfocus’ a few lines before that. All that is left is to name the window we are looking for, (%1 being the default). Under “WINDOWS COMMANDS”, you will find the first entry is ‘class’ - “–class Match against the window class.” The description is a bit misleading, but this is the name of the window. We will construct our command thus: xdotool - -search - -onlyvisible - -class “mousepad&” windowactivate replace “mousepad&” with the above line. (OR whatever you used, featherpad&, leafpad&, etc.)

Instructions

Avant de passer à la souris, que se passe-t-il si le programme que nous ouvrons est déjà ouvert ? (dans mon cas, mousepad) Et que se passe-t-il si nous ne voulons pas lancer une nouvelle instance à chaque fois que notre script s'exécute ? Si vous jetez un œil à la page du manuel, vous verrez « WINDOWS COMMANDS » (Commandes de fenêtre). En dessous, vous pourrez noter « –onlyvisible » « Show only visible windows in the results. This means ones with map state IsViewable. » (Ne montre que les fenêtres visibles dans les résultats. C'est-à-dire celles avec l'état Isviewable.) Maintenant, si vous regardez sous le titre « DESKTOP AND WINDOW COMMANDS » (Commandes des fenêtres et bureaux), la toute première entrée est « windowactivate » - remarquez comment cela diffère de « windowfocus » quelques lignes au-dessus. Tout ce qui reste est de nommer la fenêtre que nous cherchons (la défaut étant %1). Sous « WINDOWS COMMANDS », vous trouverez que la première ligne est « class » - « –class correspond à la classe des fenêtres. » La description est un peu trompeuse, mais c'est le nom de la fenêtre. Nous construirons notre commande ainsi :

xdotool –search –onlyvisible –class “mousepad&” windowactivate

en remplaçant « mousepad& » dans la ligne au-dessus. (OU ce que vous voulez, featherpad$, leafpad$, etc.)

Now oupen mousepad and re-run your script. Are you still with me? Did your text editor get focus and run your script? Great! Let us move forward. (We will look at text and windows in more depth later – I just want to get you excited about what you can do in a short time). If you have done something clever with what we have shown you, please go ahead and show us!). Now let us look at moving the mouse. If you noticed in the manpage under “MOUSE COMMANDS”, we have ‘mousemove’ and ‘mousemove_relative’ (no, you can not use your mouse to move grandma!). The option ‘mousemove’ is a fixed spot on the screen in x and y coordinates. The ‘restore’ switch will move it to the last position. You know how big your screen is, 1920×1080, or 1024×768, etc. Those are your pixel positions. To move the mouse to the top left is 0,0. Bottom right will be the screen size, like 800×600, for instance. We will use mousemove, as this is absolute positions. Clicking is another story. “Buttons generally map this way: Left mouse is 1, middle is 2, right is 3, wheel up is 4, wheel down is 5.”

Maintenant, ouvrez mousepad et relancez votre script. Vous me suivez toujours ? Est-ce que votre éditeur de texte a pris le focus et lancé votre script ? Super ! Continuons. (Nous regarderons plus tard le texte et les fenêtres plus en détail ; je veux simplement vous intéresser à ce que vous pourrez faire dans un laps de temps court. Si vous avez fait quelque chose d'intelligent avec ce que nous vous avons montré, merci de nous le présenter !)

Maintenant, regardons les mouvements de la souris.

Vous avez peut-être noté que dans la manpage sous « MOUSE COMMANDS » (Commandes de la souris), nous avons « mousemove » et « mousemove_relative » (non, vous ne pouvez pas utiliser votre souris pour déplacer votre grand-mère !). L'option « mousemove » est un point de l'écran déterminé avec les coordonnées x et y. Le commutateur « restore » la replacera dans sa dernière position. Vous connaissez la taille de votre écran, 1980 x 1080, ou 1024 x 768,etc. Ceux-ci sont vos dimensions en pixels. 0,0 déplace la souris en haut à gauche. Le bas à droite correspond à la taille de l'écran, comme 800 x 600, par exemple. Nous utiliserons mousemove, car ce sont des coordonnées absolues. Le clic, c'est une autre histoire. « Les boutons sont en général programmés ainsi : 1 pour le bouton gauche, 2 pour l'appui sur la molette, 3 pour le bouton droit, 4 pour le tirage de molette, 5 pour la poussée de molette. »

Clear your code in myscript.sh, leaving only the shebang. Try this code: #! /bin/bash xdotool mousemove 200, 200 sleep 1 xdotool mousemove 400, 400 sleep 1 xdotool click 3 Instead of holding your hand like the first article, your homework is to make the mouse move to your menu button, click that to start your menu, and click an entry to launch a terminal. You should have all the tools and information you need to do so now.

Effacez le code de myscript.sh, en ne gardant que la déclaration initiale.

Essayez ce code :

#! /bin/bash

xdotool mousemove 200, 200 sleep 1 xdotool mousemove 400, 400 slepp 1 xdotool click 3

Au lieu de vous accompagner pas à pas comme dans le premier article, votre travail à la maison est de déplacer la souris jusqu'au bouton du menu, de cliquer dessus pour dérouler le ménu et de cliquer sur une ligne pour lancer un terminal. Vous devriez avoir maintenant tous les outils et les informations nécessaires pour le faire.

If you are stuck – know that your screen goes from 0,0 in the top left to 0,1920 in the top right, (if your screen size is 1920×1080) and 1080, 0 (if your screen size is 1920×1080) in the bottom left. Troubleshooting If you were using Geany like we used in Part One in last month’s article, you can use the terminal in the bottom pane to launch your script. If you were using a text editor, you need to launch it from the terminal. Do not forget to make your script executable. Remember to add a sleep statement in between your commands as the terminal is much faster than the GUI. Do not be afraid to go back to the previous article and do it again to refresh your memory.

Si vous êtes bloqué - sachez que votre écran va de 0,0 en haut à gauche à 0,1920 en haut à droite (si la taille de votre écran est de 1920 x 1080) et de 1080,0 (si la taille de votre écran est de 1920 x 1080) en bas à gauche.

Résolution des problèmes

Si vous vous servez de Geany comme ndans l'article du mois dernier, vous pouvez utiliser le terminal dans le panneau du bas pour lancer votre script. Si vous utilisez un éditeur de texte, vous devez le lancer depuis un terminal. N'oubliez pas de rendre votre script exécutable. Souvenez-vous d'insérer une déclaration sleep entre vos commandes, car le terminal est beaucoup plus rapide que l'affichage graphique. Ne craignez pas de revenir à l'article précédent et de le refaire pour vous rafraîchir la mémoire.

issue150/tutoriel1.txt · Dernière modification : 2019/10/31 17:41 de auntiee