Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2017, à 23:28

le-peyo

[RÉSOLU] xdotool : répéter une frappe clavier pour faire un diaporama

¡ Holà !

(EDIT : Contrairement aux usages je publie le script final à la fin du post)

Voilà :

Flickriver affiche les photos de Flickr avec une mise en page que je trouve plus agréable à l'œil. Malheureusement le site ne permet pas de faire un diaporama.
Je me suis donc mis à faire un petit script pour en "simuler" un.

Pour ce faire j'utilise xdotool... mais je coince à un moment. Le script se déroule comme suit :
- Une fenêtre s'ouvre et demande ce qu'on recherche.
- Firefox s'ouvre et va sur Flickriver.com et affiche les photos correspondantes.
- Le script dirige la souris vers les options d'affichage en "remplissage maximum" (fit screen).
- xdotool simule la touche "espace" pour faire défiler les photos une part une...

Sauf que je n'arrive pas à simuler un appui toutes les 5 secondes... J'ai cherché dans les options, sur d'autres sites, bref, je n'en peux plus !!!
On peut répéter un clic souris avec l'option --repeat, mais ça ne marche pas pour le clavier.
J'arrive à lui faire appuyer pendant 5 secondes, mais pas une fois toutes les 5 secondes.

Et si je fais une boucle comme ça :

while true; do
xdotool key space
sleep 5
done

le script s'affole et ça m'ouvre la fenêtre de déconnexion et m'envoie une notification comme quoi ma batterie est vide ! WTF ?!?!?

Je vous mets le script, sachant que c'est la dernière ligne qui pose problème (dans cet exemple xdotool key space ne simule qu'un seul appui)


#!/bin/sh

SEEK=`yad --geometry=360x104 --title="Flickriver" --form --field="Entrez votre recherche"`

firefox http://www.flickriver.com/search/$SEEK/
sleep 2

xdotool key F11
sleep 3

xdotool mousemove 42 132 click 1
sleep 2

xdotool mousemove 43 221 click 1
sleep 2

xdotool key space

exit 0

D'avance merci pour l'aide.

À plus.

Dernière modification par le-peyo (Le 04/08/2017, à 09:21)


Sous Linux depuis 2009 | Xubuntu 22.04 LTS | Lenovo Thinkpad W540
Windows... ? J'connais pas...
Petits scripts vidéos bien pratiques =>
C'est le moment : OMS et Institut Pasteur !

Hors ligne

#2 Le 03/08/2017, à 00:31

le-peyo

Re : [RÉSOLU] xdotool : répéter une frappe clavier pour faire un diaporama

Bon, ça avance un peu.

Ma version de Yad semble bugger un peu. Je l'ai remplacé par Zenity.
La boucle fonctionne. Je modifie le script en conséquence... mais... elle ne s'arrête pas de boucler et continue de simuler un appui sur "espace" même si je quitte le diaporama... ce qui est plutôt gênant. Je dois killer le processus, et avec un appui sur "espace" toutes les 5 secondes c'est plutôt "sportif" big_smile

Comment faire pour initier un arrêt de cette boucle (avec un appui sur "escape" ou une autre touche, par exemple) ?

À plus.

#!/bin/sh

SEEK=`zenity --entry --title="Flickriver" --text="Entrez votre recherche"`

firefox http://www.flickriver.com/search/$SEEK/
sleep 2

xdotool key F11
sleep 3

xdotool mousemove 42 132 click 1
sleep 2

xdotool mousemove 43 221 click 1
sleep 2

while true; do
  xdotool key space
  sleep 5
done

exit 0

Dernière modification par le-peyo (Le 03/08/2017, à 00:49)


Sous Linux depuis 2009 | Xubuntu 22.04 LTS | Lenovo Thinkpad W540
Windows... ? J'connais pas...
Petits scripts vidéos bien pratiques =>
C'est le moment : OMS et Institut Pasteur !

Hors ligne

#3 Le 04/08/2017, à 09:18

le-peyo

Re : [RÉSOLU] xdotool : répéter une frappe clavier pour faire un diaporama

¡ Holà !

Bon, finalement, en trichant un peu j'ai (presque) réussi à faire ce que je veux.
J'aurais préféré récupérer mes entrée sur une seule fenêtre du genre :

zenity --forms --title="Flickriver" --text="Diaporama sur Flickriver.com" --separator="," --add-entry="Que voulez-vous voir ?" --add-entry="Entrez le nombre de vues désirées" 

mais je n'arrive pas à récupérer mes variables, n'étant pas un pro du scripting. J'ai triché en ouvrant deux fenêtres consécutives ; ma boucle tourne autant de fois que défini dans la deuxième fenêtre :

#!/bin/sh

SEEK=`zenity --entry --title="Flickriver" --text="Que voulez-vous voir ?"`
NUM=`zenity --entry --title="Flickriver" --text="Entrez le nombre de vues désirées"`

firefox http://www.flickriver.com/search/"$SEEK"/
	sleep 2

xdotool key F11
	sleep 3
	
xdotool mousemove 42 132 click 1
	sleep 2

xdotool mousemove 43 221 click 1
	sleep 2

xdotool mousemove 817 1049

for i in `seq 1 $NUM`; do
  xdotool key space
  sleep 5
done

xdotool key F11
xdotool mousemove 1506 240

exit 0

C'est pas au top mais ça me va.

À plus.


Sous Linux depuis 2009 | Xubuntu 22.04 LTS | Lenovo Thinkpad W540
Windows... ? J'connais pas...
Petits scripts vidéos bien pratiques =>
C'est le moment : OMS et Institut Pasteur !

Hors ligne