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.

Economiseur d'écran

Pour une mamie, l'important c'est de voir ses petits enfants! Alors exit l'économiseur d'écran de gnome avec un petit (dans la console of course): sudo apt-get remove gnome-screensaver
Il n'est pas assez configurable, car pour des raisons de simplicité ils ont fait disparaître les options de configuration. Son avantage est qu'il est pourtant complètement intégré à gnome, mais tant pis.

Il ne reste plus qu'à installer xscreensaver :

Code:
sudo apt-get install xscreensaver
Toutefois, il est possible de conserver gnome-screensaver et Xscreensaver en même temps, mais j'aime bien quand c'est propre...


Ensuite il suffit de choisir GLSlideshow qui est bien configuré par défaut. Il y a juste à pointer vers le dossier où sont enregistrées les images (/home/mamie/Photos) et le tour est joué.

L'ordinateur portable qui permet à notre mamie-geek de se connecter au monde, se transforme en cas d'inactivité en super cadre photo numérique.


D'ailleurs dans un épisode précédent, le cadre photo numérique fut la première entrée dans le monde numérique de ladite mamie. Souvenirs, souvenirs...


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 18 novembre 2010

Configuration du clavier

Ça y est, après 3 jours entiers à m'arracher les cheveux et à écumer les forums ubuntu et autre, à lire des trucs en anglais, j'ai enfin réussit à configurer le clavier de l'ordinateur.

Le configurer? Mais pour quoi faire?

Ben c'est simple, je suppose qu'une mamie ça peut appuyer sur pleins de touches sans comprendre comment ce que ça fait. Alors j'ai voulu :
  • Désactiver Caps-lock
  • Désactiver inser
  • Désactiver num-lock
  • Désactiver la touche logo windows
Le problème c'est qu'en modifiant la config du clavier ça bug sous VNC (changement de config clavier, je ne sais pas pourquoi).

Pour supprimer la touche caps-lock et windows, il suffit d'aller dans Système>Préférences>Clavier>Agencement>Options>
>Comportement de la touche Verrouillage majuscule (et cocher désactiver)
>Comportement de la touche Compose (et cocher touche logo de gauche)
Et enfin, cliquer sur Appliquer à l'ensemble du système.
Par contre moi ça ne marche plus avec les modifs décrites ci-dessous.

Pour les autres touches, en effet, c'est plus compliqué!
Ma source principale d'information sur le sujet est l'excellente page : http://wiki.mandriva.com/fr/Personnaliser_le_clavier

Après de nombreux essais avec xmodmap qui induisent des bugs, j'ai utiliser les options de configuration décrites ici : Réaffecter des touches avec Xkb

Il suffit de lire le tuto, créer son propre clavier dans sudo gedit ~/.clavier_mamie/mamie_fr.

Pour supprimer la touche ins il suffit d'affecter au nom de touche <INS> le keysym F13 (création d'une touche de fonction n°13 fictive)

Pour désactiver la touche verrouillage numérique c'est encore un peu plus compliqué. C'est une touche géré au niveau du noyau du système (ou quelque chose comme ça) et elle fait changer les mod du clavier : passage du mod 1 au mod 2.
En mod 1 les touches du pavé numérique sont désactivées (elles servent alors de touches de direction) et en mod 2 elles sont activés.
Comme il est difficile de changer le fonctionnement des mod à cause des répercussions sur le reste du clavier, il est plus facile d'affecter le même fonctionnement aux touches du pavé numérique que ce soit en mod 1 ou en mof 2.


Il suffit d'affecter au nom de touche <KBnuméro> la touche {numéro, numéro, numéro, numéro}

Ci dessous mon fichier de configuration personnalisé du clavier mamie_fr :

//Table 0 commentée
// nom de la table de clavier par défaut ("mamie_fr") :
default xkb_keymap "mamie_fr" {

// inclusion de parties de fichiers du répertoire keycodes :
// inclusion de la section default du fichier evdev
// et de la section azerty du fichier aliases
xkb_keycodes { include "evdev+aliases(azerty)" };
// inclusion de parties de fichiers des rép. types et compat :
// section default du fichier complete des 2 répertoires
xkb_types { include "complete" };
xkb_compat { include "complete" };

// inclusion de sections de fichiers du répertoire symbols :

// configuration des touches du clavier numérique pour afficher le chiffre qu'il y ait num lock ou non et désactivé touche ins

//désactivé la touche caps-lock et la touche logo windows gauche

    xkb_symbols   { include "pc+fr(oss)+inet(evdev)"
            key <KP0> { [KP_0, KP_0, KP_0, KP_0      ] };   
            key <KP1> { [KP_1, KP_1, KP_1, KP_1      ] };
            key <KP2> { [KP_2, KP_2, KP_2, KP_2      ] };   
            key <KP3> { [KP_3, KP_3, KP_3, KP_3      ] };
            key <KP4> { [KP_4, KP_4, KP_4, KP_4      ] };   
            key <KP5> { [KP_5, KP_5, KP_5, KP_5      ] };
            key <KP6> { [KP_6, KP_6, KP_6, KP_6      ] };   
            key <KP7> { [KP_7, KP_7, KP_7, KP_7      ] };
            key <KP8> { [KP_8, KP_8, KP_8, KP_8      ] };   
            key <KP9> { [KP_9, KP_9, KP_9, KP_9      ] };
            key <KPDL> { [period, period, period, period      ] };
            key <INS> { [F13, F13, F13      ] };
            key <NMLK> { [Num_Lock, Num_Lock, Num_Lock, Num_Lock      ] };
            key <CAPS> { [Shift_L, NoSymbol, Shift_L      ] };
            key <LWIN> { [F13, NoSymbol, F13      ] };
            };

// inclusion de la section pc105 du fichier pc du rép. geometry :
xkb_geometry { include "pc(pc105)" };
// la définition qui commençait le fichier se termine ci-dessous :
};



Maintenant, il n'y à plus qu'à lancer automatiquement cette config au démarrage de l'ordi. J'ai créé un script qui lance le clavier (à écrire dans un fichier clavier_mamie.sh)  :

#!/bin/sh
# script clavier mamie 1
# le sleep permet à la config perso de se charger APRES la config par défaut
sleep 10
xkbcomp -w 0 -R/usr/share/X11/xkb/ $HOME/.clavier_mamie/mamie_fr $DISPLAY
exit 0;


Enfin il ne reste plus qu'à lance ce script au démarrage de l'ordi : Système>Préférences>Application au démarrage>Ajouter


sh /home/mamie/.clavier_mamie/clavier_mamie.sh


Et voili... Facile non?


EDIT : 

Suite à un débat avec la famille,  je me demandais si il ne serait pas plus simple pour la mamie d'avoir un clavier ABCDEF que AZERTY :


Pour cela il suffit de démonter toutes les touches de caractères et de les remonter dans l'ordre souhaité. Et avec une manip similaire à ci-dessus, réaffecter les touches.
Je pense que la modification de la configuration du clavier doit porter sur le fichier aliases de la ligne des keycodes :
xkb_keycodes { include "evdev+aliases(azerty)" };

et créer une nouvelle section (abcdef) en plus des sections (azerty) et (qwerty). Si besoin, pour retrouver la configuration azerty, il suffit de lancer le clavier par défaut.
Par contre, je n'ai pas testé l'interaction avec VNC...

Comme vous l'avez peut-être compris, le débat familiale à conclu qu'il valait mieux garder AZERTY et que la mamie, soit elle n'utiliserai pas le clavier, soit elle s'y ferait... Affaire à suivre !

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.

Aide à distance

Bien sûr, l'ordi n'est pas encore configuré qu'il faut déjà penser au dépannage !

Ca, c'est facile, sur UBUNTU le serveur VNC est déjà installé (vino). Il n'y a qu'à  aller dans Système>Préférences >Bureau à distance et configurer le mot de passe. Penser à autoriser le contrôle du bureau et à désactiver la confirmation de session.


Après, il suffit d'utiliser un client VNC :
Ca y est, on pourrait presque donner l'ordi à la mamie à cette étape là sauf que les test de configuration de gnome nécessitent parfois une présence physique pour corriger les erreurs induites...
Comme on dit : "l'erreur est toujours située entre la chaise et le clavier" alors quand on est en VNC je vous dis pas le bordel !

Après, il reste juste à configurer le modem et ouvrir des ports dédiés.

Par contre, je n'ai jamais réussit à configurer X11VNC pour accéder à l'ordinateur en VNC-java avec un navigateur internet. Si vous voulez m'aider, j'ai posté un message sur le forum UBUNTU désespérément sans réponse... A votre bon cœur !

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.

Choix de l'OS

C'est un choix assez facile pour une mamie! Comme elle n'y connaît rien et qu'elle n'a jamais touché à un ordi elle n'aura aucun a-priori sur le fonctionnement.
Il faut un OS :
  • Simple (ça c'est très dur)
  • Stable et incassable même avec une fausse manip de la mamie (donc pas Windows)
  • Paramétrable à volonté

Pour ces raisons, et après avoir un peu écumé le web sur le sujet, mon choix s'est porté sur Ubuntu , que je connais un peu, qui est simple d'utilisation et paramétrable.

Pourquoi pas Windows :
  • Trop compliqué, pas intuitif pour un débutant
  • Instable, vulnérable aux virus
  • Pas assez paramétrable
Pourquoi pas Mac
  • Je connais pas assez
  • Trop cher
  • Pas assez paramétrable
J'ai installé Ubuntu 10.10 avec le bureau gnome, tout simplement car j'ai commencé en octobre (10.10= version d'octobre 2010 pour les non ubuntunophiles).

J'ai essayé le bureau ubuntu netbook editon mais il n'est pas assez paramétrable! A sa décharge, c'est une toute première mouture, et probablement que les prochaines éditions seront plus évolués et malléables.

J'ai fait une installation en dual-boot avec win7 fourni sur le pc (on sait jamais, ça peut servir), et j'ai créer une partition spéciale pour /home (le dossier racine de l'utilisateur) car en cas de problème ou de réinstallation et formatage, aucun fichier de configuration n'est perdu.


 
Comme on peut constater, widows 7 a vide occupe 22 Gio alors que ubuntu moins de 6Gio et encore là il est plein de programmes!
 
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.

Choix de l'ordinateur

L'ordinateur doit répondre à plusieurs critères :
  • Un grand écran pour une bonne lisibilité (17'  au moins)
  • Un clavier avec pavé numérique 
  • Des hauts parleurs intégrés
  • Une web-cam intégrée
  • Wifi intégré pour se connecter facilement
  • Ne pas prendre trop de place
  • Pas trop cher
  • Et avoir un proc. qui envoie des briques, une GPU dernier cri, 16Go de RAM et le tout overclocké à mort ... ah bah non, pas la peine.
Le choix s'est donc porté sur un ordinateur portable  Compaq Presario CQ71-403SF + une souris

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.

Il était une fois...

Il était une fois, une mamie, 85 ans, qui sait tout juste faire marcher sa télé et mettre un DVD dans son lecteur de salon.


Cette mamie à :
  • Des enfants à 300km
  • Des petits enfants et arrières petit enfants dans un autre pays d'Europe
  • Des petits enfants et arrières petit enfants sur un autre continent
  • et moi ... un geek à mes heures perdues.
Or cette mamie voudrait pouvoir parler à sa descendance au téléphone et et les voir en même temps, recevoir des photos et vidéos, montrer des papiers administratif qu'elle n'arrive pas à comprendre etc...

... D'où l'idée ambitieuse de lui fournir un ordinateur et de lui apprendre à s'en servir!

RECETTE :

  1. Une personne âgée. Ici, ce sera "Mamie"
  2. Un ordinateur
  3. Un OS adapté
  4. Une connexion internet
  5. Un geek dévoué (ça c'est moi)
  6. Une femme de geek très (très, très ...)  patiente
  7. Beaucoup de temps
Mélanger tous les ingrédients, faire mijoter plusieurs mois, et servez bien chaud au repas de noël.
  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.