lundi 3 octobre 2011

Bilan après plus de 6 mois d'utilisation

Bonjour à tous,

d'abord, merci pour vos commentaires encourageants, ça fait vraiment plaisir. Si ma démarche peut-être utile à d'autre c'est vraiment du bonus pour moi.

Je vais tenter de résumer un peu la progression de ma mamie à partir du début, et voir ce qui a marché et ce qui n'a pas marché :

1) choix de l'ordinateur 
Pour 400 € j'ai eut une machine avec un écran 17' confortable pour une personne âgée et un pavé numérique. Avec Ubuntu 10.10 dessus l'ordinateur (originalement prévu pour win 7) tourne vraiment vite et est très réactif. J'ai quand même eut-la chance qu'il  soit compatible linux et que tout marchait out of the box! Utilisateur habituel de windows, je ne souhaite qu'une chose c'est que linux se démocratise notamment en étant pré-installé sur des ordis ou avoir des ordis certifiés linux. Je HAIT la vente liée ordi-windows!

2) Aide à distance
C'est vraiment très pratique de pouvoir ouvrir une session vnc à distance pour soit administrer l'ordinateur (=faire un peu de rangement, rajouter des scripts) ou montrer à distance comment faire une action à mamie.
J'ai deux remarques :
- En fait je ne me suis pas très souvent servi de vnc, car la config est vraiment super stable et je n'ai modifié que peux de choses à posteriori.
- J'ai eut un bug avec vnc (la box qui bloque la connexion entrante) et je pense qu'il est utile d'avoir un système de secours de vnc : j'ai nommé teamviewer (http://www.teamviewer.com/fr/index.aspx)
Teamviewer ne nécessite pas de config de la box et en demandant par téléphone ou skype de cliquer sur le programme on peut venir dépanner quand même.

3) Configuration du clavier
Alors là franchement il ne faut pas s'embêter avec un clavier ABCDEF à la place d'AZERTY car la mamie s'est adaptée très rapidement. Et en quelques semaines elle tapait assez rapidement au clavier. De toutes façons même avec ABCDEF ça n'est pas logique la disposition des touches pour une mamie sur le clavier donc il faut quand même chercher.
De même pour la désactivation de caps-lock c'est pas forcément utile. Par contre je suis très satisfait du blocage de num-lock, de la touche ins et win car ça aurait pu générer des problèmes.

4) Économiseur d'écran
... qui fait diaporama avec le dossier photo, c'est tout simplement indispensable. Elle reste parfois un bon moment quand elle s’ennuie à regarder son écran pour voir défiler les photos.

5) Skype
Ca aussi c'est vital pour communiquer avec tout le monde. Dès qu'elle à sû cliquer c'est le premier programme qu'elle à utilisé. Ça lui permet bien sûr de téléphoner et nous voir mais aussi de voir quand les membres de la famille allument leur ordi, sont actifs etc... et ça c'est très bien pour une mamie curieuse!

6) Thunderbird
2ème programme qu'elle utilise très souvent. Elle n'envoie pas beaucoup de mails mais en reçoit vraiment beaucoup. La notification vocale de l'arrivée d'un mail + la détection de présence rends ça très efficace. Elle attends "que je lui dise" que le mail est arrivée donc elle n'a pas besoin de regarder sur son ordi. L'extraction des pièces jointes directement dans le dossier qui va bien (photo, video, point google-earth) est aussi indispensable. En fait elle ne fait jamais de manipulation de fichier.

7) Gnome
la barre des programmes verticale sur la gauche convient bien à ma mamie (qui n'a pas d’à-priori sur la position qu'elle devrait avoir).
Elle comprends bien les icônes de notification (arrivée d'un mail, appel manqué sur skype), mais n'appréhende pas bien le concept de plusieurs programmes ouverts en même temps, qu'elle pourrait consulter en cliquant sur l'icône correspondant dans la barre. Pour elle il n'y a que le programme qu'elle voit à l'écran et le bureau derrière!
Par contre elle comprends très bien le bureau avec les icones pour lancer les programmes. Je pense qu'un tableau de bord genre iphone avec ses programmes à la place du bureau serait mieux (car de toutes façon elle n'utilise pas le bureau car elle ne manipule pas les fichiers).
Ce qui marche aussi très bien c'est le raccourci pour afficher le bureau et remettre les éléments à la bonne place (skype et l'horloge). Quand elle est perdu elle clique dessus et tout reviens comme d'habitude. Et si elle à modifié quelque chose, elle redémarre l'ordinateur et la config reviens comme neuve = merci ubuntu! Le système est vraiment très stable !

8) Scanner et envoyer un document en un seul clic

3ème programme le plus utilisé par ma mamie. Dès qu'elle est perdue dans son administratif réel (impots, banque etc...) elle envoie une copie à ma maman qui gère le problème. Une sorte de vnc pour le papier ;-)

9) Firefox avec l'extension speed-dial
Je n'avais pas prévu de le mettre en place dès le début, mais ma mamie nous a vu aller sur internet et s'y est mise d'elle même sans qu'on lui explique vraiment. Speed-dial permet de mettre des sites d’intérêt. Quand mamie va sur internet elle clique sur le site qu'elle veut voir et si elle veut voir un autre site, elle ferme et ouvre à nouveau firefox pour tomber sur speed dial.


BILAN DE PROGRESSION

Quand on lui a offert l'ordinateur la réaction était : "oh bah non, je vais jamais savoir m'en servir, il faut le rendre". Bref c'était pas gagné!
Pour lui faciliter la tâche nous avions fait une notice papier avec des captures d'écran du bureau et des programmes, mais je pense qu'elle ne s'en ai pas beaucoup servi car 1) elle n'associe pas ce qu'elle voit sur le papier à ce qu'il y a sur l'écran et 2) le mode d'apprentissage de ma mamie est par essais répétés plutôt que par compréhension.

On lui a d'abord expliqué le bureau, comment y retourner si elle était perdu et comment allumer et éteindre l'ordinateur pour tout réinitialiser.


La difficulté suivante à été de cliquer sur la souris avec des doigts arthrosique. Elle a rapidement compris la position de la main. Ca a été plus dur de cliquer et relever le doigt sans déplacer la souris. Et le double clique à été le plus dure à apprendre. Heureusement sur Ubuntu j'avais configuré l'ouverture des programmes en simple clique.
Pour l’apprentissage de la souris, j'ai utilisé le logiciel Gcompris avec dedans un programme ou il faut cliquer ou double cliquer sur des images immobiles ou mouvantes. 10 minutes 3 fois dans la semaine et ça y est c'était acquis !
Par contre l'utilisation de la molette (la roulette) est le plus compliqué à apprendre et un concept pas facile à saisir : ma mamie n'imagine pas qu'il peut y avoir d'autres choses plus bas dans la fenêtre si elle ne le voit pas. Ça a été compliqué de lui faire comprendre que si il y a un ascenseur c'est qu'il y a des choses plus bas, et qu'il faut utiliser la molette pour descendre. Elle s'y est fait  notamment pour  naviguer dans les fichiers de son ordi et retrouver telle ou telle photo, mais il est quand même beaucoup plus simple pour elle que les documents arrivent toujours en tête de dossier (il sont automatiquement classés par date et le plus récent en haut).

Avoir un gros pointeur n'est pas très important. Même si c'était plus facile au début, j'ai diminué la taille car moins précis et donc moins facile. En fait elle s'est très bien habitué au petit pointeur.

Mettre la vidéo de skype en grand écran automatiquement n'est pas nécessaire, une fois qu'elle à compris qu'il fallait double-cliquer, elle le faisait toute seule rapidement, car quoi de plus motivant pour apprendre que de voir ses interlocuteurs en grand.

Pour l'instant elle n'a jamais appris à manipuler les fichiers (copier, coller, les déplacer de dossier, les mettre à la poubelle), tout simplement car elle n'en a jamais besoin. En effet elle ne crée  aucun documents (pour l'instant) et tous les fichiers qui lui arrivent, arrivent par mail et sont automatiquement dispatchés dans le dossier correspondant sur son bureau : photo, video, place google-earth.

Utilisation de google-earth : elle aime bien qu'on lui montre des lieux ou des trajets (on envoi des fichiers kmz qu'elle ouvre) par contre elle a eut beaucoup de mal à comprendre que c'était des photos "à plat" vu de dessus = les maisons sont des rectangles et on ne voit pas le toit en pente. Ben oui, une mamie ça ne fonctionne pas comme nous.

Enfin, comme je l'ai dit plus haut, les programmes qu'elle utilise le plus sont
1er : skype,
2ème : Thunderbird
3ème: scan et e-mail en un clic
4ème : naviguer sur l'ordi avec nautilus pour revoir des photos ou des vidéos stockées sur l'ordi.
5ème : firefox pour voir la météo, lire ouest-france et un peu pour voir les recettes sur marmiton.

Elle utilise son ordinateur tous les jours et elle à mis un peu moins d'un mois à s'en servir pour la base et environ 2 mois pour en faire le tour et apprécier de l'utiliser.
Tous les jours elle regarde qui est connecté sur skype, elle reçoit souvent des appels. Si elle s'ennuie elle regarde ses photos ou les vidéos qu'on lui a envoyé, elle lit ses mails etc...

... Bref elle ne peut plus s'en passer !


Evolutions à venir :

Je pense que je ne vais pas faire évoluer le système : pas d'augmentation de versions d'ubuntu pour ne pas perturber mamie et ne pas risquer que quelque chose ne marche plus.
D'autre part, je pense que les évolutions d'ubuntu avec UNITY vas vers quelque-chose comme ça  très grand public, sans concept de bureau mais avec des "applis" dans un lanceur et un seul programme actif en plein écran à la fois. Pour l'instant UNITY n'est pas aboutit mais pour cette utilisation va probablement dans la bonne direction.

Merci encore de m'avoir lu et n'hésitez pas à vous lancer dans l'aventure, c'est facile et ça rapproche tellement les grands parents de notre monde !

mercredi 27 juillet 2011

Thunderbird - Gestion des pièces jointes Ter

Aller, pour éviter de surcharger le billet précédent voici ma dernière modif :

Comme me l'a fait remarqué Gyls 29 avec le script de déplacement des pièces jointes dans les dossiers correspondants, les pièces jointes disparaissent de l'affichage à l'écran.

La solution est donc de ne pas déplacer les pièces jointes (commande mv) mais de les copier (commande cp).

Ceci entraîne deux problèmes :
1) ça finit par prendre de la place toutes ces pièces jointes, donc je propose d'effacer le dossier temporaire de renommage des pièces jointes à chaque démarrage de l'ordi.

2) si il y a plusieurs mails à la suite les pièces jointes déjà reçues sont à nouveau renommées  et copiées à nouveau dans le dossier photo ce qui pose problème (redondance des photos)

La solution consiste à copier les photo dans un autre dossier temporaire, les renommer dans ce dossier là puis les déplacer. Ainsi si un autre e-mail arrive les anciennes PJ seront renommées de la même façon que la première fois et donc seront copier pour remplacer celle déjà existante = pas de doublons.

Oulà, c'est vraiment pas super clair mon affaire. Un dessin vaut mieux qu'un long discours :

1) Attachement extractor copie les PJ dans le dossier ".renommer" (Ex: photo1.jpg copiée dans le dossier renommer)
2) Attachement Extractor ouvre les PJ
3) On copie les PJ dans un autre dossier temporaire ".renomer2" (Ex: photo1.jpg dans les dossier .renommer et .renommer2)
4) On renomme les PJ du dossier temporaire n°2 = ".renommer2" en rajoutant la date (Ex: photo1.jpg toujours présente dans le dossier " .renommer" et dans le dossier ".renommer2" elle change de nom et s'appelle 2011_07_28_photo1.jpg. Comme photo1.jpg du dossier ".renommer" n'a pas changée ni de place ni de nom elle est toujours ouverte par Attachment Extractor)
5) On déplace toutes les photos du dossier ".renommer2" vers le dossier de destination "Photos" (Ex: photo1.jpg toujours dans le dossier ".renommer" et 2011_07_28_photo1.jpg dans le dossier "Photos" et le dossier ".renommer2" est maintenant vide.)

Enfin, voilà ce qui se passe si on reçoit un deuxième mail avec un autre PJ :
1) Attachement Extractor copie  la nouvelle pièce jointe photo2.jpg (Ex: dossier ".renommer" contient : "photo1.jpg" et" photo2.jpg" / ".renommer2"=vide / "Photos"=2011_07_28_photo1.jpg)
2) AE ouvre "photo2.jpg"
3) on copie les 2 PJ dans ".renommer2" (la nouvelle = photo2.jpg et l'ancienne = photo1.jpg encore présente dans ".renommer")
4) On renomme les PJ du dossier ".renommer2"  en rajoutant la date.
5) On déplace les 2 PJ dans le dossier "Photos" (Ex: dossier ".renommer2" = 2011_07_28_photo1.jpg + 2011_07_28_photo2.jpg et "Photos"=2011_07_28_photo1.jpg. Comme photo1 a le même nom dans le dossier ".renommer2" et "Photos" celle du dossier" .renommer2" remplace celle du dossier "Photos" et au final il n'y a qu'une copie de photo1 et 1 copie de photo2 dans le dossier "Photos".)

Enfin, au redémarrage de l'ordi on efface le contenu du dossier ".renommer"

RQ 1: je sais c'est pas un dessin, mais bon c'est pas facile à dessiner non plus!
RQ 2 : Dans ma tête ça avait l'air simple mais une fois écrit c'est une solution vraiment toute moche!

Alors comme un bout de code vaut mieux qu'un long discours :

Code pour copie des PJ et renommer:
#!/bin/bash
sleep 30
# sleep 30 permet d'attendre que toutes les PJ soit extraient

#on se place dans le dossier .renommer
cd ~/Photos/.renommer

#on copie toutes (*) les PJ du dossier .renommer dans .renommer2
cp * ~/Photos/.renommer2

#on se place dans le dossier .renommer2
cd ~/Photos/.renommer2
#et on renomme les photos avec la date
rename 's/^/use POSIX qw(strftime);strftime("%Y-%m-%d_", localtime(time))/e' *

#on déplace les différents types de fichiers dans les dossiers correspondants
mv *.wmv ~/Vidéo
mv *.avi ~/Vidéo
mv *.flv ~/Vidéo
mv *.mkv ~/Vidéo
mv *.mp4 ~/Vidéo
mv *.mpg ~/Vidéo
mv *.mpeg ~/Vidéo
mv *.mov ~/Vidéo
mv *.vob ~/Vidéo
mv *.asf ~/Vidéo

mv *.kml ~/Lieux
mv *.kmz ~/Lieux

mv * ~/Photos

exit 0;


Code pour effacer le dossier .renommer à chaque démarrage (à lancer par "Applications aux démarrage"):
#!/bin/bash

rm ~/Photos/.renommer/*

exit; 0

Ouf, maintenant ça à l'air de marcher!  Ca nécessite juste deux dossiers cachés qui servent comme dossiers temporaires.

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.

dimanche 27 mars 2011

Thunderbird - Gestion des pièces jointes - bis

Un problème se présente à l'utilisation : Comme mamie se sert bien de son e-mail et que c'est sympa de lui envoyer des photos par mail, tout le monde le fait! Résultat son dossier Photos est plein de photo rangées n'importe comment! (N.B: les photos reçues par mails sont copiées automatiquement dans son dossier "Photos" voir : Gestion des pièces jointes )

Or, quand mamie veut retrouver la dernière photo qu'on lui a envoyé, elle est obligée de parcourir tout le dossier pour tomber dessus. Ne trouvant pas ça très pratique, Mamie m'a demandé si c'était possible que les photos soit classées dans l'ordre où elle les reçoit.

Bon, avec Attachement Extractor, normalement il y a une possibilité pour renommer les pièces jointes mais ça n'a pas l'air de marcher. Et je ne sais pas si ça le fait avec la routine d'extraction automatique.
Donc, comme à chaque fois, si l'ordinateur ne fait pas ce qu'on veut, il suffit d'écrire un petit script bash pour le faire marcher à la baguette! 

- Oh non pas un script horrible de la mort qui tue qu'on comprends rien :-(
- Mais non, t'inquiète le script fait que 3 lignes
- Ah c'est cool alors :-)
- Mais non, t'inquiète, il y a une ligne qui est vraiment horrible! Gnak! Gnak! Gnak!!!
- Ca m'aurait étonné ...  :-(


Donc comme promis voici le petit script :
Code:
#!/bin/bash
sleep 30
cd ~/Photos/.renommer
rename 's/^/use POSIX qw(strftime);strftime("%Y-%m-%d_", localtime(time))/e' *
mv * ~/Photos
exit 0;

Explication :
1) Avec cd on se met dans le bon répertoire : les photos extraitent du mail sont envoyées dans le dossier caché .renommer
2) On utilise la fonction rename pour modifier le nom de la photo. C'est là que ça se complique :
rename 's/ancien nom/nouveau nom/' ficheràrenommer
Le changement de nom se fait avec une expression perl. Et là on fait appel à POSIX pour renvoyer la date du jour.
s permet de substituer l'ancien nom au nouveau nom
l'^ permet de prendre tout les noms en entier
use POSIX bla bla : j'ai pas tout compris, j'ai fait un peu au pif en m'inspirant de trucs trouvés sur internet.
strftime("%Y-%m-%d_", localtime(time) renvoie la date comme ça : 2011-03-27_
le e à la fin, je sais pas ce qu'il fout là
l'* permet d'appliquer le renommage à tous les fichiers contenus dans le dossier.

Au final ça donne nomphoto.jpg > 2011-03-27_nomphoto.jpg

3) mv (move)permet de déplacer la totalité des photos maintenant renommées dans le dossier photos.

Ce script est lancé par le script de notification d'arrivée d'un message sur thunderbird (Gestion des pièces jointes).

Et voilà, maintenant les pièces jointes extraites (photos) sont classées par jour de réception. Les nouvelles pièces jointes seront à la fin du dossier photos (ou au début si on classe le dossier par ordre décroissant ce qui est plus simple pour mamie = elle ouvre le dossier et voit tout en haut les dernières photos).


EDIT : Gérer les différents types de pièces jointes

Le fait de renommer les pièces jointes peut-être l'occasion de les redistribuer dans les différents dossiers de Mamie. En effet, plus ça va, plus les gens lui envoient des trucs différents : photos mais aussi diaporama ppt (ou libreoffice ;-) bien sûr!), vidéo, fichier google earth etc...

Je lui ai donc créé un dossier différent avec une icône différente pour chaque type de fichier. Mais c'est pas très pratique car toutes les pièces jointes arrivent dans le dossier photo.
Là solution est très simple ... si si, vraiment très simple :

Il suffit de rajouter au script précédent une ligne pour chaque type d'extension et utiliser la commande move (mv) pour envoyer chaque type de fichier dans le dossier correspondant.

Comme c'est pour les photos qu'il y a le plus d'extensions différentes, je gère les autres type d'extensions et à la fin j'envoie les fichiers restants dans le dossier photo = *.* ou tout simplement *

Pour le script ça donne ça maintenant :
Code:
#!/bin/bash
sleep 30
cd ~/Photos/.renommer
rename 's/^/use POSIX qw(strftime);strftime("%Y-%m-%d_", localtime(time))/e' *

mv *.wmv ~/Vidéo
mv *.avi ~/Vidéo
mv *.flv ~/Vidéo
mv *.mkv ~/Vidéo
mv *.mp4 ~/Vidéo
mv *.mpg ~/Vidéo
mv *.mpeg ~/Vidéo
mv *.mov ~/Vidéo
mv *.vob ~/Vidéo
mv *.asf ~/Vidéo

mv *.kml ~/Lieux
mv *.kmz ~/Lieux

mv * ~/Photos

exit 0;


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.

samedi 19 février 2011

2 mois après...

Ça y est! Ça fait bientôt 2 mois que mamie à l'ordi, et c'est la folie!

C'est incroyable comme cette ouverture au monde peut stimuler une personne âgée. Être en contact avec ses enfants, ses petits enfants, ses arrières petits enfants ... c'est une sacrée motivation pour apprendre. D'autant qu'une mamie, ça à quand même pas mal de temps libre.

Elle envoie même des mails à une cousine qui habite ... à 500m dans son patelin de 366 habitants !

Lors de mes appels réguliers à ma mamie, j'en profite pour faire un tour sur l'ordi voir si tout va bien. Et elle me demande d'elle même (!) de lui montrer des nouveaux trucs.

Dernièrement, elle n'était pas satisfaite d'écrire sans les majuscules ni les accents... ça y est, c'est intégré. Elle explore toute seule son disque dur et elle me demande comment faire pour naviguer dans les dossiers et trouver telle ou telle photo. Ça y est, c'est intégré aussi.

Bref, elle apprend à vitesse grand V, malgré l'arthrose des mains qui ne facilite pas le maniement de la souris.

En conclusion : pour l'apprentissage de l'ordi, ça va très vite à condition de pouvoir distiller l'information au fur et à mesure des besoins / demandes . Et pour ça la combinaison skype / VNC pour l'aide à distance est indispensable.

Astuce : il faut désactiver la vidéo sur skype (émission et réception) si on veut une connexion VNC correcte et il faut régler VNC sur 256 couleur. Moyennant cela même avec une connexion 1 Méga, c'est tout à fait administrable à distance!
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.

mercredi 26 janvier 2011

Une mamie sur internet !

Une fois l'ordi en main,  pour la mamie, c'est vraiment trop tentant d'aller sur internet !

Je ne pensais pas mettre en place internet tout de suite, alors je l'avais caché dans la barre des programmes. Mais j'avais préparé un "annuaire" simple pour aller sur internet :

Il suffit de configurer un peu speed-dial qui affiche comme chrome les sites préférés au démarrage avec une capture d'écran du site. J'ai ainsi pu mettre les choses vitales pour une mamie :

  • La météo dans son patelin (même si il suffit de regarder par la fenêtre !)
  • Plus belle la vie pour revoir les épisodes manqués
  • Le journal Ouest france
  • Le Pelerin magazine
  • Le blog de ses enfants
  • ... 
Je ne vous ai pas menti, ce sont les préoccupations existentielles de ma mamie, comme nombre d'autres mamies!

L'avantage c'est que c'est entièrement configurable et qu'on peut ajouter des cases au besoin. Mais au lieu d'un long discours ci dessous la capture d'écran (il faut cliquer pour agrandir) :



http://www.medinaresine.ma/   
Bon il y a encore du boulot avant qu'elle ne vienne lire ce blog et y écrire un commentaire mais on sait jamais...
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.

Premiers résultats

Ca y est, noël est passé ! Après l'étonnement de la mamie, bien obligée elle à essayée.

Pour l'instant, après 20 minutes de "cours" et des essais répétés chaque jours elle arrive au bout de 15 jours à :
  • Répondre à un appel sur skype
  • appeler qq en cliquant sur le téléphone vert
  • Appeler qq en double-cliquant sur son nom (quand elle arrive à faire le double clique sans bouger)
  • Mettre la vidéo en plein écran en double cliquant dessus et inversement (c'est bien la peine de se casser la tête à la mettre en 200% automatiquement!)
  • Raccrocher
  • Lire ses e-mail
  • Écrire des e-mail
  • Envoyer un document scanné par mail
  • Aller lire ouest-france sur internet !!! (cf prochain article)

Pour faciliter l'aprentissage de la manipulation de la souris (clique et double-clique) j'ai fait jouer ma mamie sur le logiciel gcompris.
C'est une suite logiciel pour les maternelles pour découvrir l'ordinateur. Les petits jeux avec la souris sont sympa et permettent de se familiariser rapidement avec les mouvements de la souris et les cliques.

Bref, pour l'instant c'est vraiment une réussite. La mamie parle sur skype tous les deux jours avec ses arrières-petits enfants au maroc, avec sa petite fille en Allemagne et bien sûr avec le reste de sa famille en France ... Et dans son petit patelin de cambrousse de 366 habitants c'est vraiment la sensation !
    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.

    jeudi 23 décembre 2010

    Thunderbird - Gestion des pièces jointes

    Pour une mamie, la toute petite icône en bas du mail qui montre la présence d'une pièce jointe est tout sauf fonctionnel.
    Déjà, moi je passe à côté une fois sur deux mais la mamie... je vous raconte pas!

    D'autre part, l'affichage des photos dans le corps du mail n'est pas très satisfaisant car on ne peut pas voir la photo en entier. Si on veut la voir en entier, on en reviens au même problème : il faut cliquer sur les toutes petites icônes.

    Enfin, lorsqu'on veut enregistrer la pièce jointe sur l'ordinateur il faut parcourir l'arborescence ce qui est tout sauf intuitif pour un novice, surtout si le novice à plus de 80 ans ...

    Si je savais programmer, j'aurai bien fait une extension pour thunderbird pour gérer ça, mais comme ce n'ai pas le cas je suis obliger d'utiliser celles existantes:


    1) Slideshow

    Cette petite extension sympa permet de cliquer sur une (trop) petite icône dans la barre des pièces jointes pour déclencher un diaporama.


    2) AttachmentExtractor

    Voici une deuxième extension vraiment très pratique et fonctionnelle qui permet d'automatiser certaines tâches.
    Dans la configuration, il y a un onglet "Extraction automatique" qui permet à l'arrivée du mail :
    • Sauvegarder automatiquement la pièce jointe dans un dossier pré-défini
    • Charger chaque pièce jointe avec l'application par défaut
    Comme ça, si il y a plusieurs photos et un film, ils s'ouvrent tous dans une application différente. Et quand la mamie à fini de voir la photo ou le film elle ferme l'application et voit la suivante.

    Et voilà, pour le moment....

    Noël approche et ça va être le moment de vérité ... voir si la mamie utilise son ordinateur!
    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.

    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.

    dimanche 12 décembre 2010

    Gestion des évènements - LE RETOUR !

    Accroche toi à ton siège petit scarabée, ça va envoyer du pâté!

    1) Objectif


    En cas d'appel manqué sur skype ou de mail arrivé je veux:
    Si mamie est devant l'ordi :
      Si mamie n'est pas devant l'ordi
    • que ça attende qu'elle revienne
    • que ça joue un son pour dire qu'elle à manqué un appel / qu'un mail est arrivé
    • que ça affiche le profil / affiche thunderbird

     2) Le script

    Le script est assez détaillé et commenté. Ci dessous le script pour skype. Celui pour Thunderbird est quasiment identique mais ce n'est pas le même son joué et c'est thunderbird qu'on affiche à la place du script d'évènement skype.

    #En bleu les lignes de commentaires et inutiles (genre echo)

    Code:
    #!/bin/bash
    
    #Vérifie si motion est déjà en marche
    MOTION=$(pidof motion)"0"
    echo "pid de motion=$MOTION"
    
    while [ "$MOTION" != "0" ]
    do
     #on attend que motion s'arrête
     sleep 3
     MOTION=$(pidof motion)"0"
     echo "pid de motion=$MOTION"
     if [ "$MOTION" = "0" ]; then
      {
      echo "motion vient de s'arrêter, qq est devant l'ordi"
      #on lance le script de notification SCRIPT EVENEMENT et on quitte
      sleep 5
      /home/mamie/.motion/motion-wait-phone.sh
      exit 0;
      }
     else
      {
      echo "on continu la boucle while"
      }
     fi
    done 
    #motion n'est pas en fonctionnement alors on continue
    
    
    #lancer motion
    #si un autre programme utilise déjà la cam alors motion attends
    #que la cam soit dispo et continu
    motion -c /home/mamie/.motion/motion-2.conf &
    
    sleep 15
    #on vérifie si quelqu'un est déjà devant l'ordi
    #si oui il y a des images dans le dossier /tmp/motion
    IMG=$(du /tmp/motion | cut -f1) 
    #efface le contenu du dossier temporaire
    rm /tmp/motion/*
    service motion stop
    
    if [ $IMG -gt 30 ]; then
    {
    echo "il y a du monde près de l'ordinateur !!!!!!!"
    #on vérifie maintenant si le screensaver est actif ou non 
    SCREEN=$(xscreensaver-command -time | cut -f3-4 -d " ")
    echo result = $SCREEN
    # résult peut être : screen blanked ou screen non-blanked
     if [ "$SCREEN" = "screen blanked" ] ; then
     {
     echo "le screensaver marche "
     #SCRIPT EVENEMENT
     #on désactive le screensaver
     xscreensaver-command -deactivate
     #on joue un son
     play /home/mamie/.son/phone-missed-skype.ogg &
     #on lance le clic sur l'évènement skype
     /home/mamie/.motion/click-event-skype.sh
     #/FIN SCRIPT EVENEMENT
     }
     else
     {
     echo "le screensaver marche pas"
     #on lance seulement le clic sur l'évènement skype
     /home/mamie/.motion/click-event-skype.sh
     }
     fi
    
    }
    else
    {
    echo "personne est devant l'ordi"
    #on lance la détection de mouvement qui déclenchera en cas de mouvement le SCRIPT EVENEMENT
    motion -c /home/mamie/.motion/motion-phone.conf &
    }
    fi
    
    exit 0;

    Et bien sûr dans le fichier motion-phone.conf , en cas d'évènement ça pointe vers le script suivant (qui est idem à SCRIPT EVENEMENT du code ci-dessus) :


    Code:
    #!/bin/bash
    
    #mamie est de retour devant l'ordi (script lancé par l'évènement configuré dans motion conf)
    # on désactive motion
    service motion stop &
    #on désactive le screensaver
    xscreensaver-command -deactivate
    #Vérifie si un son est déjà en marche (si plusieurs évènements)
    SON=$(pidof play)"0"
    echo "pid de son=$SON"
    while [ "$SON" != "0" ]
    do
     #on attend que le son en cours s'arrête
     sleep 3
     SON=$(pidof play)"0"
     echo "pid de son en cours=$SON"
    done 
    echo "le son a fini de jouer"
    #on joue un son
    play /home/mamie/.son/phone-missed-skype.ogg &
    #on lance le clic sur l'évènement skype
    /home/mamie/.motion/click-event-skype.sh
    rm /tmp/motion/*
    
    exit 0;


    Ce script permet en plus de gérer les situations si il y a plusieurs évènements qui se produisent pour les exécuter les uns après les autres quand mamie reviens devant l'ordi.

    Ca fait plaisir quand ça marche bien! Mais à écrire, ça fait mal à la tête!

    En tous cas, je suis épaté de la puissance des script shell qu'on peut écrire sous UBUNTU et du nombre de programme qui acceptent les lignes de commandes. Ca n'aurait pas été possible sur windows.


    Allez, promis si j'ai plus compliqué à faire, la prochaine fois je programme pour de vrai en python!
    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.

    Détection de présence devant l'ordinateur

    Comment faire pour savoir quand mamie est revenu dans la pièce pour l'informer d'un évènement?

    En fait ce n'est pas très compliqué si google est ton amis! J'ai trouvé un programme qui permet de faire de la vidéo-surveillance avec la webcam... j'ai nommé motion !
    Il suffit de vérifier quand le programme détecte du mouvement et lancer un script externe pour prévenir d'un évènement qui s'est produit en son absence!

    Il suffit de lancer motion avec le fichier de configuration motion.conf
    On peut créer plusieurs fichiers de configuration différent selon ce qu'on veut faire!

    Voici les lignes que j'ai modifiées dans motion.conf :

    Pour détecter plus rapidement le mouvement j'utilise 5fps :
    # Maximum number of frames to be captured per second.
    # Valid range: 2-100. Default: 100 (almost no limit).
    framerate 5

    je lance un script quand motion commence à détecter du mouvement :
    # Command to be executed when an event starts. (default: none)
    # An event starts at first motion detected after a period of no motion defined by gap
    on_event_start /chemin/vers/mon/script.sh %f


    Lorsque motion détecte du mouvement, il stocke les images dans /tmp/motion

    Pour vérifier si quelqu'un est devant l'ordinateur, il suffit de faire tourner motion 15 secondes (sans la ligne qui lance le script externe) et vérifier si il y a des images stockées dans /tmp/motion = dossier non vide.
    Si aucunes image n'est stocké dans motion, on coupe motion et on le relance avec la config qui va lancer le script de l'évènement en cas de mouvement.


    - C'est pas clair ton truc !
    - Ben si c'est clair, non?
    - Non! Sans le texte du script on comprends rien. Pourquoi t'as pas mis le script de détection de mouvement?
    - Ben parce-que là, c'est franchement plus compliqué ! 
    - M'en fous, j'veux comprendre!
    -Ok tu l'auras voulu!


    EDIT :  Configuration précise de motion

    Le problème avec les webcam de mauvaise qualité, c'est le" bruit" important créé par la webcam quand l'éclairage est faible ou si la pièce est grande. L'éclairage faible entraîne à la fois des artefacts (bruit) et une adaptation progressive de la luminosité et du contraste par la webcam qui est détecté comme des changement massifs de pixels et donc comme du mouvement. Par contre une fois mise au point effectuée, la détection du mouvement fonctionne très bien.
    Il faudrait trouver une solution pour attendre que la webcam soit mise au point avant d'enclencher la détection de mouvement.

    N'ayant pas réussit à le faire voici les paramètres optimisés :


    v4l2_palette 6
    framerate 2
    threshold 200
    switchfilter off   # le switchfilter ne fonctionnne pas
    minimum_motion_frames 2
    minimum_frame_time 0.5
    despeckle EedDl # on peut jouer avec ça pour diminuer le bruit mais ça ne change rien sur la mise au point
    lightswitch 100 # ça ne marche pas terrible (normalement ça ne tiens pas compte des changement de luminosité)
    noise_level 32
    noise_tune on
    brightness 145
    contrast 128
    saturation 64
    hue 0
    output_motion on #permet de voir seulement le mouvement
    output_normal on  #permet de voir l'image capturée en cas de mouvement

    Pour plus d'info il y a une super notice avec la fonction des paramètres très détaillée sur le site de motion : ici.

    En conclusion, je ne suis que moyennement satisfait de ce dispositif, mais dans 80% des cas ça marche bien.
    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.

    Gestion des évènements skype

    L'affichage des évènements sur skype est merdique, c'est un fait! Déjà, moi je sais jamais sur quoi cliquer pour faire disparaître la notification. Je clique sur l'icône dans la barre des notification mais ça ne fait qu'apparaître la fenêtre skype.

    Alors je me dit, que pour la mamie, ça va être compliqué. J'ai donc commencé par écrire un script qui, en cas d'appel manqué effacerait la notification et afficherai la fenêtre du contact qui à essayé d'appeler.

    A) Le premier script

    Pour ça j'ai d'abord utilisé le rigolo Sikuli :


    Commentaires : Je clique sur l'icône pour afficher le bureau, puis clique droit sur l'icône d'appel manqué, puis plusieurs fois Tab pour afficher le contact avec enter et enfin je clique sur la croix pour effacer les notifications.

    Au passage on voir sur la capture d'écran la souris ÉNORME pour la mamie ;-)


    Avantage : sikuli est relativement solide comme script car même si les choses bougent un peu, il retrouve l'image qui va bien pour cliquer au bon endroit.


    Inconvénient : Sikuli est très très lent à charger (environ 30 secondes avant qu'il commence les actions).


    B) Le second script

    Comme je trouvai sikuli trop lent à charger, j'ai écrit un script bash très simple grâce à la commande xdotool :

    Code:
    #!/bin/bash
    /home/mamie/.sikuli/bureau.sh
    xdotool mousemove 1268 490 click 3
    xdotool mousemove 1313 646 click 1
    xdotool mousemove 1574 497 click 1
    wmctrl -a profil
    exit 0;

    La première ligne lance le script qui affiche le bureau et skype, puis xdotool clique droit là ou il faut puis clique sur "Voir le profil" puis clique sur la croix pour fermer l'évènement.
    wmctrl -a profil donne le focus sur la fenêtre du profil du contact (c'est utile si le contact à essayé d'appeler plusieurs fois, car alors le profil est réduit).


    Avantage : Ce script est vraiment ultrarapide
    Inconvénient : Si la fenêtre skype change de place ou de taille ça ne fonctionne plus.

    Pour régler le problème de la position de la fenêtre skype, au démarrage comme lorsqu'on clique sur l'icône pour afficher le bureau, il y a la ligne de code suivante :

    Code:
    wmctrl -r nomutilisateurskype -e 0,1250,370,337,490

    Cette ligne permet de retailler la fenêtre skype à la bonne taille et de la positionner au bon endroit.
    Et comme le script de gestion d'évènement lance d'abord le script d'affichage du bureau, même si mamie à bouger la fenêtre, elle reviens à sa place avant que xdotool fasse son travail.

    Ce second script est à la fois très rapide, car très simple et solide.

    - bon, c'est super ton script pour afficher l'appel manqué, mais la mamie, elle va jamais savoir que quelqu'un à essayé de l'appeler si elle n'a pas entendu skype!
    - Minute papillon, il suffit de la prévenir quand elle reviendra dans la pièce !
    -Ah...bon?
    -Ben ouais!
    -Mais ... comment c'est possible ça???
    -Surprise !!!
    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.

    mardi 30 novembre 2010

    Scanner et envoyer un document par mail en un seul clic

    Eh oui! voilà à quoi ça sert d'envoyer un mail en ligne de commande avec une pièce jointe :  La mamie peut avoir besoin d'aide pour comprendre et remplir ses documents administratifs. Et comme les personnes susceptibles de l'aider sont à distance, le plus simple est d'envoyer une copie par mail. Enfin, le plus simple pour nous Homo sapiens informaticus, mais pas pour la mamie Homo sapiens sapiens !

    Alors j'ai eut l'idée de créer un script qui permet en un seul clic de scanner le document et de l'envoyer par mail. Il est toutefois nécessaire que la mamie allume le scanner et le branche à l'ordinateur...
    Il lui suffit donc de cliquer  sur l'icône de l'imprimante scanner qui est sur son bureau :

    ... et ça lance les scripts suivants :

    Code scan.sh :
    #!/bin/sh
    #On vérifie la présence du scanner
    sane-find-scanner >/home/mamie/.scan/testscan
    
    #On stocke dans la variable SCAN le résultat et on coupe
    #les caractères qui nous intéressent
    SCAN=$(grep "No USB" /home/mamie/.scan/testscan |cut -c5-18)
    echo $SCAN
    rm /home/mamie/.scan/testscan
    
    #Boucle de vérification
    #Si scan absent, on fait jouer un son et on quitte
    #Si scan présent on scan et on envoie par e-mail
    
    if [ "$SCAN" = "No USB scanner" ]
    then
    {
     # Lire fichier audio qui dit pas de scanner branché
     echo "pas de scanner branché"
     play /home/mamie/.scan/pas_de_scan.ogg
    }
    else
    {
    echo "super le scanner est branché"
    #Maintenant on effectue scan
    scanimage --progress --mode=Color >/home/mamie/.scan/document |
    (for x in 2 4 6 8 10 12 14 16 18 20 30 40 50 60 70 80 90 95 ; do echo $x ; sleep 1; done)|
    zenity --progress --auto-close --title "Scanner et envoie par mail" --text="Scanner en cours                                                      "
    #on bascule sur le script de vérification et d'envoie par mail
    /home/mamie/.scan/mail-scan.sh
    }
    fi
    
    echo "fin du script 1"
    
    exit 0;

    et
    Code mail-scan.sh:
    #!/bin/sh
    
    
    #on vérifie la taille du doc scanné pour savoir si ça a marché
    DOC=$(du /home/mamie/.scan/document | cut -f1) 
    echo  "$DOC"
    
    if [ $DOC -gt 2500 ]; then
    {
    # on envoie par mail
    echo "le scanner est pret et à fonctionné"
    #on converti en jpeg, grace à la commande convert du paquet imagemagick
    convert -quality 85 /home/mamie/.scan/document /home/mamie/.scan/document.jpg
    #on envoie le mail
    sleep 1
    mutt -H /home/mamie/.scan/mail -a /home/mamie/.scan/document.jpg &
    (for x in 5; do echo $x ; sleep 10; done)|
    zenity --progress --pulsate --auto-close --title "Scanner et envoie par mail" --text="Envoie par e-mail à Catherine en cours                                                      "
    #nettoyer les fichiers laissés par mutt et générés par le scan
    rm /home/mamie/sent
    rm /home/mamie/dead.letter
    rm /home/mamie/.scan/document
    play /home/mamie/.scan/success.ogg
    }
    elif [ $DOC -eq 0 ]; then
    {
    #scanner branché mais dysfonctionnement : message d'erreur et stop
    echo "le scanner ne marche pas, il faut le débrancher et le rebrancher"
    play /home/mamie/.scan/error_scan.ogg
    rm /home/mamie/.scan/document
    }
    else
    {
    # on attends que le scanner soit pret on recommence
    echo "Le scanner n est pas pret, on attends et on recommence"
    rm /home/mamie/.scan/document
    # on attends et on relance le sann
    sleep 18
    /home/mamie/.scan/scan.sh
    }
    fi
    rm /home/mamie/.scan/document.jpg
    
    exit 0;

    Je ne vais pas détailler tout le script surtout que je l'ai bien commenté (#en bleu) pour décrire ce qu'il fait. Mais grosso-modo :
    - On vérifie que le scanner est branché et sinon, on joue un fichier audio qui dit à mamie de brancher le scanner,
    - On scan le document et on bascule sur le script 2,
    - On vérifie que ça a marché. Si oui le document scanné fait une taille supérieure à 2500Ko, et alors on convertit en jpeg et on envoie par mail
    - Si le scanner à un problème de pilote (il est branché mais ne réponds pas) le document fait 0Ko. On préviens avec un fichier audio que ça n'a pas marché
    - Si le scanner est en train de s'initialiser (juste après être allumé) il ne scanne pas. Le document fait 4Ko (donc ni 0 ni >2500). Il suffit d'attendre la fin de l'initialisation et relancer le scan.

    En plus des messages audio, on utilise zenity pour afficher des fenêtres pop-up de progression du processus. Si vous avez lu le code attentivement vous aurez noté que la progression du scanner est fictive (c'est juste une implémentation d'une variable 10, 20 , 30, etc...). Ok, c'est moche mais la durée de scan est toujours la même, alors pourquoi s'arracher les cheveux à essayer de récupérer le pourcentage d'avancement de scanimage plutôt que de simuler....

    Et voilà, la magie de l'informatique à encore opérée : en un seul clique le papier de la mamie se transforme en document virtuel qui arrive dans la boîte mail de sa fille !
    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.

    jeudi 25 novembre 2010

    Envoyer un mail et une pièce jointe en ligne de commande

    Envoyer un mail en ligne de commande est relativement facile sous Ubuntu. Enfin, c'est l'impression qu'on a en parcourant le web ... tout est dans le relativement. Il faut chercher mais il y a plusieurs tuto sur internet :
    En utilisant ssmtp ou msmtp
    Ces deux commandes permettent de configurer une redirection des mails vers un serveur SMTP.

    Par contre, ce qu'on je n'avais pas compris tout de suite, c'est qu'une fois le smtp configuré, il faut une autre commande pour envoyer le mail.

    Mais ne brûlons pas les étapes :

    1) Configurer le SMTP
    J'ai utilisé le premier tuto pour configurer ssmtp et ça nous servira pour la suite. Lisez le tuto, c'est facile et bien expliqué. Ci dessous, mon fichier de configuration pour une adresse mail chez yahoo.fr  /etc/ssmtp/ssmtp.conf :

    Code:
    # Config file for sSMTP sendmail 
    # 
    # The person who gets all mail for userids < 1000 
    # Make this empty to disable rewriting. 
    root=nom.prenom@yahoo.fr 
    
    # Nom d’utilisateur du compte email avec lequel vous envoyer les mails 
    AuthUser=nom.prénom 
    
    # Mot de passe de ce même compte 
    AuthPass=motdepasse 
    
    # The place where the mail goes. The actual machine name is required no 
    # MX records are consulted. Commonly mailhosts are named mail.domain.com 
    mailhub=smtp.mail.yahoo.fr:465 
    #le port 465 c'est pour la connection smtp sécurisée
    
    # Where will the mail seem to come from? 
    rewriteDomain=yahoo.fr 
    
    # The full hostname 
    hostname=PC-Mamie 
    
    # Are users allowed to set their own From: address? 
    # YES - Allow the user to specify their own From: address 
    # NO - Use the system generated From: address 
    FromLineOverride=YES 
    
    # Utilisation d’une connexion sécurisée SSL/TLS (décommenter pour activer) 
    UseTLS=YES 
    #UseSTARTTLS=YES
    
    Attention par contre à l'installation du client mail, il ne faut pas installer xmail car il demande la désinstallation de ssmtp. Il vaut mieux installer mailutils. Dans notre cas, il est inutile d'installer l'un ou l'autre. Ceci ne nous permet que d'envoyer des mails mais sans pièces jointes. A toutes fins utiles pour envoyer un mail il suffit de taper la commande :
    Code:
    echo Contenu du message | mail -s "TEST" email@destinataire.com -a From:email@expediteur.com
    Si on ne remplis pas correctement le From: avec l'adresse e-mail de l'expéditeur, le programme envoie From:nomd'utilisateurd'UBUNTU (ici From:PC-mamie) et la boîte mail renvoie une erreur 553 = adresse de l'expéditeur non reconnue.


    2) Installer un client mail

    Comme dit juste au dessus, il faut bien choisir le client mail. Et pour gérer les pièces jointe, ce qui nous intéresse, il faut un client complet . J'ai nommé :


    C'est vraiment horrible, comment des gens ont pus avoir l'idée de faire ce truc là? C'est un client mail complet, uniquement en ligne de commande. L'interface c'est le terminal, et dans le terminal, vous pouvez écrire votre mail, mettre les adresses, joindre des fichiers etc... Franchement il faut être taré pour utiliser ça plutôt qu'un client mail avec une vrai GUI (Graphical user interface = interface graphique ) genre Thunderbird.

    Mais pour mon problème, il est bien utile quand même. On rédige le mail dans Mutt, on met la pièce jointe et mutt fait suivre à ssmtp qui envoie le mail au serveur SMTP distant (ici yahoo).

    Mes premiers essais m'ont renvoyé toujours la même erreur 553. Pour contourner le problème il suffit de créer un fichier de mise en page type des mail, qui contient le From: + éventuellement le sujet et le corps du mail.
    Pour utiliser cette mise en page par défaut il suffit d'utiliser la commande :
    Code:
    mutt -H /chemin_vers/monfichier.txt 
     Et voici le contenu de mon fichier texte :

        from:nom.prenom@yahoo.fr
        to:nomdu.destinataire@yahoo.com
        subject:truc de la mamie

       Ci-joint le document scanné par mamie.

     Dans la commande mutt il n'est même pas la peine de définir un destinataire car c'est celui du fichier ci dessus qui est utilisé.

     Mais alors, ça sert à quoi d'envoyer un mail en ligne de commande avec une pièces jointe? C'est pas la mamie qui va ouvrir le shell et gérer ses mails dans mutt, si?

    ... Ah, Ah, suite au prochain épisode!
    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.

    mardi 23 novembre 2010

    Gnome et nautilus

    Le but est d'alléger l'interface pour ne pas perdre la mamie dans des milliards de menus, d'options et d'onglets.
    Par contre, c'est à faire au dernier moment car pour celui qui configure l'ordinateur, c'est pas très pratique après.

    1. Alléger le tableau de bord

    L'écran étant 16/9ème il y a plus de place en largeur et en haut de l'écran il y a souvent les menus des programmes, c'est pourquoi j'ai choisi un tableau de bord sur le côté gauche.
    Le tableau de bord en haut de l'écran avec l'accès aux programmes, aux paramètres etc... est supprimé (et réinstallé pour la maintenance) .

    Sur le nouveau tableau de bord latéral, il n'y a que la zone de notification, pour skype, l'arrivée d'un nouveau mail et les programmes utiles ou en cours d'utilisation.

    2. Configurer le bureau

    Sur le bureau, le stricte minimum : un raccourci vers le dossier personnel et les photos, les lanceurs pour ouvrir la boîte mail ou écrire un mail et une bonne grosse horloge à aiguille : le widget cairo-clock pour que la mamie retrouve quelque chose qu'elle connaît.

    Pour le dossier personnel, le dossier photo et le raccourcis vers le bureau, j'ai modifié les icones pour que ce soit plus parlant :
    Icône du Bureau :

    Icône dossier images :

    Icône dossier personnel :

    Bien sûr ces icones s'affichent en plus petit sur le bureau.

    J'ai aussi mis le curseur de la souris en très gros 48px (système>préférences>apparences>thèmes>personnaliser>curseur). J'ai essayé de mettre un curseur différent (curseur "hand" ou "aero") grâce au programme gcursor, mais il semble qu'il y ait un conflit sur ma machine et gnome ne prends pas en compte ces modification. Ben tant pis, une grosse flèche c'est déjà bien.

    3. Configurer le dossier personnel

    Dans le dossier personnel, j'ai tout effacé sauf le dossier bureau et un dossier photo. Tous les dossiers de configuration sont cachés, et j'ai aussi caché mes dossier perso d'administration de l'ordinateur. Pour ça il suffit de changer le nom du dossier en .mondossier , le point (.) cache le dossier. Pour faire apparaître les fichiers et dossiers cachés il suffit de taper ctrl + h (pour hide).


    4. Alléger nautilus

    J'ai désactiver l'affichage de toutes les barres (latérale, outils, liens, état etc...). J'ai aussi configuré l'ouverture des fichiers et des dossiers en un seul clique ce qui est beaucoup plus intuitif pour un débutant.

    J'ai mis l'affichage des dossiers et fichier à 200% comme ça, pour la mamie, il y a des grandes icônes facile à cliquer dessus.

    5. Gestion des fenêtres dans le tableau de bord

    Pour la gestion des fenêtres ouvertes et des lanceurs d'application utiles j'ai utilisé l'applet talika.
    J'aurai bien installé dockbarx mais ça n'a pas l'air de marcher sur l'architecture 64bits.
    toutefois, talika remplis très bien son rôle et semble stable (c'est pourtant une béta). Il affiche les applications ouvertes par une grosse icône sans texte, permet la prévisualisation quand on passe la souris dessus et permet d'épingler les programmes pour les avoir tout le temps sur le tableau de bord.

    6. Création du raccourcis vers le bureau

    Ben pourquoi? Il existe déjà? Oui mais l'applet "Afficher le bureau" du tableau de bord est moche, pas représentatif du bureau, et il affiche seulement le bureau.
    Alors qu'il soit moche et pas représentatif ok mais qu'il affiche le bureau c'est bien ce qu'on lui demande ! Mais qu'est-ce que tu raconte???

    En fait, ce que je voulais, c'est que quand on clique dessus, il affiche le bureau mais avec le widget cairo-clock ouvert (la grosse horloge qui va beaucoup plaire à ma mamie) et la fenêtre de skype ouverte pour voir les contacts.

    Donc j'ai remplacé cet applet par un lanceur perso qui lance le script bash suivant :

    Code:
    #!/bin/sh
    wmctrl -k on
    clockpid=`pidof cairo-clock`
    kill -9 $clockpid
    cairo-clock &
    xdotool mousemove 25 87 click 1
    exit 0;
    wmctrl -k on affiche le bureau
    pidof récupère le n° du process de cairo-clock (pid) et le stock dans la variable "clockpid"
    kill -9 arrête le process
    Ensuite on relance cairo-clock
    xdotool permet de déplacer physiquement la souris pour cliquer sur l'icône de skype et afficher la fenêtre des contacts.

    L'intérêt de ce script est d'afficher le bureau mais avec l'horloge et skype ouvert (donc d'éffacer toutes les fenêtres sauf ces deux là).
    Je n'ai pas trouvé d'autre moyen pour faire réapparaître l'horloge et skype que ce qui est fait ci-dessus.
    Si vous connaissez un moyen d'interagir directement avec skype et de demander l'ouverture de la fenêtre quand il est minimisé dans la barre des tâches je suis preneur!
    De même pour cairo-clock, mais comme le prog est très léger, c'est aussi rapide de l'éteindre et le relancer.

    J'ai donc mis un lanceur vers ce script dans la barre des taches avec l'icône "bureau" personnalisé. J'ai aussi remplacé le lien vers le dossier bureau du dossier perso par ce lanceur ce qui est plus logique et compréhensible que d'afficher le contenu du dossier bureau à mon sens.

    EDIT : J'ai trouvé sur le forum skype-linux une solution pour afficher skype sans lancer une deuxième instance de skype.

    Il suffit d'utiliser le script suivant (pas de moi) :
    Code skype-sigle-instance:
    #!/usr/bin/env python
    import dbus
    import sys
    import os
    
    try:
        # Try and set skype window to normal
        remote_bus = dbus.SessionBus()
        out_connection = remote_bus.get_object('com.Skype.API', '/com/Skype')
        out_connection.Invoke('NAME mySkypeController')
        out_connection.Invoke('PROTOCOL 5')
        #out_connection.Invoke('SET WINDOWSTATE MAXIMIZED')
        out_connection.Invoke('SET WINDOWSTATE NORMAL')
        out_connection.Invoke('FOCUS')
    except:
        os.system("skype")
        sys.exit() 


    Et donc, à la place de la ligne "xdotool mousemove 25 87 click 1" dans le script pour afficher le bureau, je lance le script ci-dessus. Merci les gens qui programment en Python!

    EDIT 2 : J'ai encore allégé le script d'affichage du bureau. C'était stupide de fermer l'horloge puis de la redémarrer. J'ai juste utilisé un " wmctrl -a Horloge" pour mettre l'horloge au premier plan. C'est encore plus rapide :

    Code bureau.sh :
    #!/bin/sh
    wmctrl -k on
    wmctrl -a Horloge
    /home/mamie/.Skype/skype-single-instance
    wmctrl -r nomutilisateurskype -e 0,1250,370,337,490
    exit 0;


    7. Rendu

    http://www.medinaresine.ma/     
    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.

    lundi 22 novembre 2010

    Skype - login automatique

    Skype, le retour : Pourquoi faire simple quand on peut faire compliqué?

    Dans l'épisode précédant, j'avais bien joué avec les scriptes sikuli pour créer une action de login automatique si par malheur ma mamie se déconnectait. Comme ça elle n'a pas à taper le mot de passe.

    Mais il faut dire, sikuli aussi génial et rigolo soit-il est très lent et pompe des ressources. Surtout quand on peut faire la même chose en une seule ligne de commande :
    Code:
    echo nomdutilisateur motdepasse | skype --pipelogin
     Alors exit mon joli scripte sikuli qui simule les cliques souris et tape le mot de passe comme un vrai utilisateurs physique.
    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.

    dimanche 21 novembre 2010

    Messagerie : Thunderbird

    La messagerie intégrée à gnome par défaut est évolution. Elle à l'avantage d'être bien intégrée mais c'est un client de messagerie lourd (pleins de fenêtre, multicompte par défaut, calendrier etc...).

    J'ai donc choisi un client de messagerie léger : Mozilla Thunderbird. Mais comme tout, il faut l'adapter à la mamie!


    1) Intégration à gnome

    Ça c'est assez facile, il y a un module complémentaire qui le fait et qui marche très bien : FireTray
    La configuration est simple. Il y a juste la gestion des icônes de notifications que j'ai modifiée. Je voulais qu'il m'affiche à la fois le nombre de mail non lus et un joli icône enveloppe avec une étoile bien visible. J'ai donc cocher la case "Afficher le nombre de messages non lus" et fabriqué l'icône suivant (à partir de l'icône gnome existant, j'ai remplacé le fond transparent par le gris du tableau de bord) :


    Par contre le petit inconvénient de Firetray est que la fonction "A démarrage placer le programme dans la zone de notification" ne fonctionne pas pour l'instant. Et c'est très embêtant à la fois pour l'ergonomie ainsi que pour le log-in automatique de skype par le script sikuli (qui a donc besoin de voir la fenêtre de skype, cachée par Thunderbird).
    Problème résolu par Xdotool (cf. ci-dessous)

    Sinon, Thunderbird se réduit tout seul dans la zone de notification quand on le ferme ou le minimise, ce qui est très ergonomique.


    2) Notification sonore

    Dans les préférences de Thunderbird j'ai aussi cliqué sur "jouer un son" quand un nouveau message arrive et pour cela j'ai créé un son spécial. C'est la voix de son petit fils qui dit "Mamie, Mamie, tu viens de recevoir un nouvel e-mail". Je trouve ça plutôt, rigolo pas vous?

    Par contre pour que ça marche il faut absolument installer le paquet esound-common et esound-client sinon pas de son. La gestion du son sous ubuntu est un vrai sac de noeuds !
    Il suffit de taper ça pour s'en rendre compte  :
    Code:
    dpkg -l | grep -e sound -e alsa | grep ^i

    EDIT : Gestion d'évènement en cas d'absence

    J'ai aussi ajouté le module "Gnome intégration", mais j'en ai détourné l'usage:
    Lorsqu'un nouveau mail arrive, au lieu de laisser la commande de notification pointer vers la notification système d'UBUNTU, je pointe vers un script perso : cf article sur les notifiications.
    
    
     
     
    3) Lancer Thunderbird depuis le bureau

    Bien sûr, il suffit de cliquer dans la zone de notification sur le bel icône de Thunderbird pour ouvrir la boîte de réception.
    Mais je suspecte que la mamie ne réfléchit pas comme tout le monde. Alors je lui ait fait un beau lanceur sur le bureau avec la commande thunderbird .

    Je lui ai aussi fait un accès direct pour écrire ses mails avec la commande thunderbird. Et pour différencier les 2 icônes, j'ai modifié l'icône de base téléchargeable ici : http://ubuntu.globalvision.ch/mozilla_icons_dapper.tar.bz2

    Et comme un dessin vaut mieux qu'un long discours l'icône c'est :

    Et sur le bureau ça donne ça :


    4) Lancer Thunderbird minimisé au démarrage

    Voilà la petite manip pour faire ce que FireTray est sensé faire mais qui ne marche pas. Après avoir écumé le web, je n'ai pas trouvé de solution simple pour lancer Thunderbird dans la zone de notification.
    Alors j'ai utilisé la ligne de commande Xdotool qui permet de bouger la souris, simuler des cliques, et taper du texte...  Tiens, ça me rappel quelque chose!
    Par rapport à  SIKULI :
    • Avantages : C'est beaucoup plus rapide, on peut lancer des actions en lignes de commande
    • Inconvénients : C'est moins résistant (si la fenêtre à changée de place ça ne marche plus) et c'est beaucoup moins convivial (ligne de commande oblige).
    Alors voici le petit script pour lancer Thunderbird, et le minimiser dans la zone de notification :

    Code:
    #!/bin/sh
    thunderbird -mail &
    sleep 10
    xdotool mousemove 1532 18 click 1
    exit 0;
    Commentaires:
    Le sleep 10 permet à Thunderbird de se lancer avant de cliquer sur la case minimiser
    la commende se décompose en : xdotool action (=mousemove x y pour les coordonées) action2 (clique bouton 1)
     Le scripte démarre thunderbird, attends 10 secondes et clique sur le bouton :

     Et voili, il ne reste plus qu'à lancer ce scripte au démarrage et le tour est joué!

    EDIT : suite à l'amélioration du script d'affichage du bureau, j'ai changé le script ci-dessus par celui là :


    Code:
    #!/bin/sh
    sleep 5
    thunderbird -mail &
    echo nomskype motdepasseskype | skype --pipelogin &
    #on attend par le test suivant que skype soit connecté
    TEST=0
    while [ "$TEST" != "nomskype" ]
    do
     sleep 1
     TEST=$( wmctrl -l |grep nomskype |cut -f5 -d " ")
     echo $TEST
    done
    #on resize la fenêtre à la bonne taille
    wmctrl -r nomskype -e 0,1250,370,337,490
    #on affiche le bureau + l'horloge avec le script bureau
    cairo-clock &
    /home/mamie/.sikuli/bureau.sh
    exit 0;

    On lance thuderbird, puis skype, puis on attends que skype soit lancé. Ensuite on retaille la fenêtre skype (pour qu'elle soit toujours au même endroit et à la même taille) et on réutilise le script qui affiche le bureau, l'horloge et skype (comme ça, on réduit thunderbird).
    http://www.medinaresine.ma/           
    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.

    samedi 20 novembre 2010

    Skype

    Eh oui, c'est quand même pour ça qu'on prépare l'ordinateur pour la mamie.

    Alors, skype sous GNU/Linux c'est un logiciel propriétaire (bouhhh! c'est moche) et en plus en Béta ! A priori comme ça, il y a de quoi prendre peur. Mais en fait ça marche plutôt bien. Une fois les contacts enregistrés, il suffit de configurer quelques paramètres:
    • Connecter skype au démarrage
    • Commencer l'appel quand je double clique
    • Décocher "Autoriser l'affichage de mon statu sur le web"
    • Activer vidéo et démarrer automatiquement
    • Recevoir et montrer la vidéo des personnes autorisées
    • Désactiver les mise à jour automatique (dès fois qu'une mise à jour vers une version stable soit moins stable que la béta...)
    Et voilà, le mot de passe enregistré, skype fonctionne. La webcam et le micro intégré du   Compaq Presario CQ71-403SF sont parfaitement gérés par Ubuntu grâce à l'application Camorama.

    Question : Et si la mamie, par un grand hasard arrive à déconnecté skype. Comment elle fait pour se re-connecter?

    Réponse :
    Deux solutions, soit lui donner le mot de passe, qu'elle va oublier et ne pas savoir taper au bonne endroit, soit automatiser la connexion au démarrage. Et là on dit merci qui? Merci SIKULI !

    C'est un outil génial de programmation visuelle pour les nuls. Il y a très peu de code à entrer, et avec des images de références il simule les cliques de la souris et les frapes claviers.
    Ce qui est génial aussi c'est qu'il est fonctionne sous Win, OSX, et Linux!

    Voici le code utilisé pour vérifier si skype est connecté et sinon pour mettre le mot de passe automatiquement :

    Avec le "if" on vérifie si skype est déconnecté, puis on simule le clique dans la boîte mot de passe, on tape le mot de passe. Ensuite on coche "me connecter quand skype démarre" et on clique sur connexion.

    Il faut remarquer l'emploi de "paste()" et non "type()", car avec le clavier modifier, si sikuli simule la frappe des touche, comme caps-lock est désactivé à la place de 1234567, il tape &é"'(-è. Pour contourner se problème avec notre config perso de clavier, il suffit de faire "paste()" qui copie et colle le texte dans le presse papier. Ca marche même avec les caractères hindous ou chinois! Trop cool!

    Bien sûr si skype est déjà connecté, il ne fait rien.

    Il faut noter la simplicité de la fenêtre de programmation qui permet en un seul clique de lancer la capture d'écran de la zone à cliquer et d'écrire le texte.
    Attention toutefois, la programmation reste du python donc attention aux tabulation des lignes.

    Dans un prochain épisode la configuration des notifications de skype pour lancer des scripts et réveiller la mamie de la sieste quand on lui écrit un petit message...
    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.