mercredi 22 décembre 2010

Skype : video en taille double

Skype ... encore lui! Pas très fonctionnel! Enfin on ne se plaint pas, ça reste une béta!  Enfin si, on se plaint quand même que le code source ne soit pas ouvert et qu'ils ne fassent pas plus d'effort pour développer skype sous Linux...

Donc mon problème, c'est que la vidéo se lance par défaut en taille réelle ce qui est trop petit pour ma mamie. Et pour mettre en taille double il faut cliquer sur un petit icône pas très intuitif et sélectionner dans le menu déroulant.

Alors j'ai décidé d'automatiser ça en configurant les évènements de skype (ça par contre c'est hyper pratique et puissant pour lancer des scripts).
J'ai ajouté le script suivant en cas "d'appel répondu "  (ça déclenche que l'appel soit sortant ou entrant) :


Code:
#!/bin/bash
#on affiche le bureau
wmctrl -k on
wmctrl -a Horloge
wmctrl -a nomskype
#on place la fenetre video à la bonne place
wmctrl -a Appel
wmctrl -r Appel -e 0,433,10,-1,-1
  
#on attend par le test suivant que la communication soit démarrée
TEST=$(wmctrl -l | grep Appel |cut -f5 -d " ")
while [ "$TEST" = "Appel" ]
do
 sleep 1
 TEST=$(wmctrl -l | grep Appel |cut -f5 -d " ")
 echo $TEST
done

if [ "$TEST" = "" ];then
{
echo "personne n'a répondu"
exit 0;
}
else
{
sleep 10
#on clique sur l'endroit pour faire apparaître le menu déroulant
#et on tape 5 fois sur tap puis enter pou sélectionner video 200%
xdotool mousemove 544 345 click 1 key Tab key Tab key Tab key Tab key Tab key Return
}
fi
echo ok appel reçu
exit 0;

Après avoir minimisé toutes les fenêtre, on  place la fenêtre de l'appel à la bonne position pour être sûr de cliquer au bon endroit.
Le $TEST= "appel"quand l'appel est en cours sinon = "12:45"(la durée de l'appel) quand l'appel est démarré. Cela permet d'attendre que la connexion soit faite et la vidéo lancée.
D'ailleurs, pour laisser le temps à la vidéo de démarrer on attends 10 secondes (sleep 10) puis on vient cliquer au bon endroit avec xdotool puis on tape 5 fois sur Tab et Enter.
L'intérêt c'est que si la vidéo de l'autre n'est pas lancé, ça clique sur le bureau et il ne se passe rien. Si on avait pas minimisé les autres fenêtres ça cliquerai en dessous.

Bon par contre c'est dommage si le contact n'a pas lancé sa vidéo ...


- Ah ouais, c'est con ça !
- Ben j'y peut rien si le correspondant il est débile;
- Tu pourrais pas te logger au lancement de la communication sur l'ordi de l'autre pour forcer la vidéo?
- Ben non, là c'est vraiment pousser le bouchon trop loin et en plus c'est mal de hacker les autres!


EDIT : Détecter quand la vidéo de l'autre est lancée 

J'ai enfin trouvé comment faire pour détecter quand la vidéo de l'autre est lancée (puisqu'il m'est impossible de communiquer directement avec skype ) et j'ai nommé :

Xdotool
Eh oui, encore lui, car avec l'option xdotool -l -G  on obtiens la liste des fenêtre avec leur dimension.
Hors quand la vidéo de l'autre n'est pas lancée la fenêtre d'appel Skype est toute petite et dès que la vidéo démarre, la fenêtre change de taille.
Il ne reste plus qu'à détecter le changement de taille. J'ai donc réécrit le script dans cette optique :


Code:
#!/bin/bash
#on place la fenêtre vidéo à la bonne place
wmctrl -r Appel -e 0,433,10,-1,-1
  
#on attend par le test suivant que la vidéo soit démarrée ou l'appel finit
VID=$(wmctrl -l -G | grep Appel |cut -f9-11 -d " ")
while [ "$VID" = "294  253" ]
do
 sleep 3
 VID=$(wmctrl -l -G | grep Appel |cut -f9-11 -d " ")
 echo "$VID"
done

#on vérifie que la fenêtre Appel n'est pas fermée
#et on met la vidéo à 200%
TEST=$(wmctrl -l | grep Appel |cut -f5 -d " ")

if [ "$TEST" = "" ];then
{
echo "fenêtre vidéo fermée"
exit 0;
}
else
{
sleep 1
#on clique sur l'endroit pour faire apparaître le menu déroulant
#et on tape 5 fois sur tab puis enter pou sélectionner vidéo 200%
wmctrl -a Appel
xdotool mousemove 544 345 mousedown 1 key Tab key Tab key Tab key Tab key Tab key Return mouseup 1
xdotool mousemove 1110 622
}
fi
exit 0;

Et voili, ça marche nickel. Quand on dit que la nuit porte conseil, j'ai eut cette idée en m'endormant ^^ !
Ordinateur pour grand-parents, ordinateur pour papy, ordinateur pour personnes âgée, linux pour mamie, linux pour papy, linux pour personne âgée, linux pour grands-parents.

Aucun commentaire:

Enregistrer un commentaire