Pages : 1
#1 Le 24/08/2010, à 10:42
- Compte supprimé
Aide à la navigation Nautilus
Je propose ici un autre moyen de naviguer dans Nautilus grâce à deux scripts.
Le but est de permettre la lecture de l'élément sélectionné que ce soit un fichier ou un dossier, pratique pour les utilisateurs ayant une faible vision.
Voici pour l'instant les possibilités qu'offre cette méthode:
Navigation
Ouverture
Tabulation
Suppression
Dossier Parent
Taper du texte dans un champ
Répéter le nom de l'élément sélectionner
Copier
Coller
Couper
Fermer la fenêtre en cours
Pour commencer, installer le script de diction du nom de l'élément sélectionné.
Pour cela, copier et rendre exécutable le script suivant, sans oublier de configurer l'emplacement des voix Mbrola.
#!/bin/bash
PLACE=`echo $(basename "$1")`
VOIX=/opt/mbrola/fr4/fr4
TYPE=mb/mb-fr4
if [ ! -z $(ps -A | grep mbrola | awk '{ print $1 }' ) ]; then
kill $(ps -A | grep mbrola | awk '{ print $1 }' ) && sleep 2
fi
espeak -v $TYPE -s 130 -p 30 "$PLACE" | mbrola $VOIX - -.au | aplay
Pour l'exemple, le script ci-dessus sera nommé "name.sh"
Installer nautilus-action, lancer le via Préférences>Configuration des actions nautilus.
Créer une nouvelle action.
Puis dans l'onglet action, champ "context label" nommé l'action _name (sans oublier le _) cocher les deux premières cases.
Ensuite, se rendre dans l'onglet "Command", champ "Path", indiquer le chemin du script name.sh et remplir le champ "Parameters", par %m
Enregistrer et quitter nautilus-actions.
Voilà, la configuration de nautilus-action est terminée et vous pouvez maintenant lancer ce premier script avec le raccourci Menu+n.
Maintenant, installer le paquet "xdotool".
Ensuite, copier dans un nouveau document le script suivant et le rendre exécutable, ne pas oublier de configurer l'emplacement des voix Mbrola pour votre configuration.
Il faut également bien faire attention au raccourci invoqué par xdotool tout au long du script.
En effet, pour l'exemple, j'ai nommé l'action _name et je la lance avec Menu+n donc si vous changer le nom de l'action, par exemple _diction, pensez à modifier ce second script en changeant à chaque fois Menu+n en Menu+d ou tout autre lettre qui constituerait l'initial de l'action que vous avez crée.
#!/bin/bash
############################################################
# Auteur : benoitfra #
# Contributeur : draco31 #
# Version : 1.2 #
# Licence : GPL v3 #
# Fonction :module d'assistance vocale pour Nautilus #
# Shell : bash #
# Paramètres : aucun #
# Dépendance : espeak, mbrola, zenity, xdotool, notify-send #
# script diction du nom #
############################################################
###### Configuration de la voix ######
VOIX=/opt/mbrola/fr4/fr4
TYPE=mb/mb-fr4
###### fin de la configuration de la voix ######
###### Enregistre les instructions de navigation dans un fichier temporaire ######
echo "La navigation s'effectue au clavier et ne nécessite de connaître que quelques touches qu'il vous suffira d'appuyer lorsque la boîte de dialogue "Navigation" s'affichera à votre écran.
Voici les instructions de navigation dont vous aurez besoin pour utiliser le module d'assistance vocale.
z: aller en haut
s: aller en bas
q: aller à gauche
d: aller à droite
a: relire l'élèment sélectionné
e: sortir du module d'assistance
c: copier
v: coller
x: couper
o: ouvrir
p: atteindre le dossier parent
t: tabulation
slach: supprimer l'élèment sélectionné
tiret bas: tapez du texte
point d'exclamation: fermer la fenêtre en cours
Pour toutes remarques, je vous conseil de vous rendre sur le fil déficient visuel et ubuntu à l_adresse http://forum.ubuntu-fr.org/viewtopic.php?pid=3682023#p3682023 " >> /tmp/instruction.txt
###### Signal d'ouverture à l'utilisateur ######
espeak -v $TYPE -s 130 -p 30 "Démarrage du module d'aide à la navigation" | mbrola $VOIX - -.au | aplay &
notify-send -i "/usr/share/icons/hicolor/48x48/apps/ax-applet.png" "Démarrage du module d'aide à la navigation" &&
###### Phase de diction des instructions de Navigation ######
# Variable pour la lecture des instructions (donne la valeur par défaut si pas de fichier de conf)
INSTRUCTION_NAVIGATION=oui
# Si fichier de conf existe, on le lit pour charger les paramètres (remplace la valeur de INSTRUCTION_NAVIGATION)
[ -r $HOME/.config_synthese_vocale ] && source $HOME/.config_synthese_vocale
# Si l'utilisateur n'avait pas choisit "non" précédemment ...
if [ "$INSTRUCTION_NAVIGATION" != "non" ] ; then
espeak -v $TYPE -s 130 -p 30 "Voulez-vous connaître les instructions de navigation?" | mbrola $VOIX - -.au | aplay &
zenity --question --title "Voulez vous savoir comment naviguer?" --text "dicter les instructions ?"
INFO=$?
case $INFO in
0 ) espeak -v $TYPE -s 130 -p 30 -f "/tmp/instruction.txt" | mbrola $VOIX - -.au | aplay & /
zenity --text-info --title=instruction --filename=/tmp/instruction.txt ;;
# Sauvegarder le choix de ne plus lire les instrcutions
1 ) echo "INSTRUCTION_NAVIGATION=non" >> $HOME/.config_synthese_vocale ;;
esac;
fi
rm "/tmp/instruction.txt"
####### Fin de la phase de diction ######
####### Boucle de Navigation ######
while true
do
{
choix=`zenity --entry --title "Navigation" --text "Appuyez sur une touche"`
###### Définition des fonctions disponibles ######
case $choix in
z ) xdotool key "Up" ; xdotool key "Menu+n" ;; # aller en haut
s ) xdotool key "Down" ; xdotool key "Menu+n" ;; # aller en bas
q ) xdotool key "Left" ; xdotool key "Menu+n" ;; # aller à gauche
d ) xdotool key "Right" ; xdotool key "Menu+n" ;; # aller à droite
a ) xdotool key "Menu+n" ;; # répéter
e ) notify-send -i "/usr/share/icons/hicolor/48x48/apps/ax-applet.png" "Fermeture du module d'aide à la navigation" & espeak -v $TYPE -s 130 -p 30 "Fermeture du module d'aide à la navigation" | mbrola $VOIX - -.au | aplay ; exit ;; # sortir
"") ;; # vous n'avez rien tapez
c ) xdotool key "Menu+n" ; xdotool key "ctrl+c" ; espeak -v $TYPE -s 130 -p 30 "copier" | mbrola $VOIX - -.au | aplay ;; # copier
v ) xdotool key "ctrl+v" ; xdotool key "Menu+n" ; espeak -v $TYPE -s 130 -p 30 "coller" | mbrola $VOIX - -.au | aplay ;; # coller
x ) xdotool key "Menu+n" ; xdotool key "ctrl+x" ; espeak -v $TYPE -s 130 -p 30 "couper" | mbrola $VOIX - -.au | aplay ;; # couper
p ) xdotool key "BackSpace" & espeak -v $TYPE -s 130 -p 30 "Dossier parent" | mbrola $VOIX - -.au | aplay ;; # retour arrière
/ ) xdotool key "Delete" & espeak -v $TYPE -s 130 -p 30 "Suppression" | mbrola $VOIX - -.au | aplay ;; # supprimer
o ) xdotool key "Return" & espeak -v $TYPE -s 130 -p 30 "Entrée" | mbrola $VOIX - -.au | aplay ;; # ouvrir
t ) xdotool key "Tab" & espeak -v $TYPE -s 130 -p 30 "tab" | mbrola $VOIX - -.au | aplay ;; #tabulation
_ ) texte=`zenity --entry --title="tapez votre texte" --text="ceci sera copié dans le champ"` ; xdotool type "$texte" & espeak -v $TYPE -s 130 -p 30 "$texte" | mbrola $VOIX - -.au | aplay ;; #tapez du texte
! ) xdotool key "alt+F4" & espeak -v $TYPE -s 130 -p 30 "fermeture" | mbrola $VOIX - -.au | aplay ;; #fermer la fenêtre
esac;
}
done
exit
Attribuer ensuite un racccourci afin de lancer rapidement le second script.
Si tout ce passe bien, vous devriez avoir une petite zenity à votre écran dans lequel vous n'aurez qu'à taper quelques touches.
Si vous avez des idées concernants les fonctions à ajouter, des améliorations possible du script faite le savoir...
J'espère que les explications sont claires, faite le savoir si vous ne comprenez pas...
Dernière modification par benoitfra (Le 27/08/2010, à 15:46)
#2 Le 26/08/2010, à 18:11
- draco31.fr
Re : Aide à la navigation Nautilus
Je pense que dans les instructions, il faut préciser que le premier script doit être associé au raccourcis "Menu+n" (et pas un autre), sinon le second script ne fonctionnera pas.
Hors ligne
#3 Le 26/08/2010, à 19:46
- Compte supprimé
Re : Aide à la navigation Nautilus
Merci draco31 pour la remarque, j'ai modifié mon post.
Edit: Voilà la dernière version du second script, j'ai opté pour un affichage de l'aide (diction allait trop vite, c'était incompréhensible)
J'ai ajouté la possibilité d'accéder à l'aide à la navigation à tout moment.
#!/bin/bash
############################################################
# Auteur : benoitfra #
# Contributeur : draco31 #
# Version : 1.2 #
# Licence : GPL v3 #
# Fonction :module d'assistance vocale pour Nautilus #
# Shell : bash #
# Paramètres : aucun #
# Dépendance : espeak, mbrola, zenity, xdotool, notify-sen #
# script diction du nom #
############################################################
###### Configuration de la voix ######
VOIX=/opt/mbrola/fr4/fr4
TYPE=mb/mb-fr4
###### fin de la configuration de la voix ######
###### Enregistre les instructions de navigation dans un fichier temporaire ######
INSTRU="<big><b>Instructions de navigation</b></big>
<small>Voici les touches à presser lorque la boite "Navigation" s'affiche.</small>
<big><b>
z: aller en haut
s: aller en bas
q: aller à gauche
d: aller à droite
a: relire l'élèment sélectionné
e: sortir du module d'assistance
c: copier
v: coller
x: couper
o: ouvrir
p: atteindre le dossier parent
t: tabulation
h: afficher l'aide
/: supprimer l'élèment sélectionné
_: taper du texte
!: fermer la fenêtre en cours</b></big>
<small>Pour toutes remarques, rendez vous à l'adresse
<u>http://forum.ubuntu-fr.org/viewtopic.php?pid=3682023#p3682023</u> </small> "
###### Signal d'ouverture à l'utilisateur ######
notify-send -i "/usr/share/icons/hicolor/48x48/apps/ax-applet.png" "Démarrage du module d'aide à la navigation" & espeak -v $TYPE -s 130 -p 30 "Ouverture du module" | mbrola $VOIX - -.au | aplay &&
###### Phase d'affichage des instructions de Navigation ######
# Variable pour la lecture des instructions (donne la valeur par défaut si pas de fichier de conf)
INSTRUCTION_NAVIGATION=oui
# Si fichier de conf existe, on le lit pour charger les paramètres (remplace la valeur de INSTRUCTION_NAVIGATION)
[ -r $HOME/.config_synthese_vocale ] && source $HOME/.config_synthese_vocale
# Si l'utilisateur n'avait pas choisit "non" précédemment ...
if [ "$INSTRUCTION_NAVIGATION" != "non" ] ; then
espeak -v $TYPE -s 130 -p 30 "Voulez-vous connaître les instructions de navigation?" | mbrola $VOIX - -.au | aplay &
zenity --question --title "Voulez vous savoir comment naviguer?" --text "Afficher les instructions ?"
INFO=$?
case $INFO in
0 ) zenity --info --title=Instruction --text "$INSTRU" ;;
# Sauvegarder le choix de ne plus lire les instrcutions
1 ) echo "INSTRUCTION_NAVIGATION=non" >> $HOME/.config_synthese_vocale ;;
esac;
fi
####### Fin de la phase d'affichage ######
####### Boucle de Navigation ######
while true
do
{
choix=`zenity --entry --title "Navigation" --text "Appuyez sur une touche"`
###### Définition des fonctions disponibles ######
case $choix in
z ) xdotool key "Up" ; xdotool key "Menu+n" ;; # aller en haut
s ) xdotool key "Down" ; xdotool key "Menu+n" ;; # aller en bas
q ) xdotool key "Left" ; xdotool key "Menu+n" ;; # aller à gauche
d ) xdotool key "Right" ; xdotool key "Menu+n" ;; # aller à droite
a ) xdotool key "Menu+n" ;; # répéter
e ) notify-send -i "/usr/share/icons/hicolor/48x48/apps/ax-applet.png" "Fermeture du module d'aide à la navigation" & espeak -v $TYPE -s 130 -p 30 "Fermeture du module d'aide à la navigation" | mbrola $VOIX - -.au | aplay ; exit ;; # sortir
"") ;; # vous n'avez rien tapez
c ) xdotool key "Menu+n" ; xdotool key "ctrl+c" ; espeak -v $TYPE -s 130 -p 30 "copier" | mbrola $VOIX - -.au | aplay ;; # copier
v ) xdotool key "ctrl+v" ; xdotool key "Menu+n" ; espeak -v $TYPE -s 130 -p 30 "coller" | mbrola $VOIX - -.au | aplay ;; # coller
x ) xdotool key "Menu+n" ; xdotool key "ctrl+x" ; espeak -v $TYPE -s 130 -p 30 "couper" | mbrola $VOIX - -.au | aplay ;; # couper
p ) xdotool key "BackSpace" & espeak -v $TYPE -s 130 -p 30 "Dossier parent" | mbrola $VOIX - -.au | aplay ;; # retour arrière
/ ) xdotool key "Delete" & espeak -v $TYPE -s 130 -p 30 "Suppression" | mbrola $VOIX - -.au | aplay ;; # supprimer
o ) xdotool key "Return" & espeak -v $TYPE -s 130 -p 30 "Entrée" | mbrola $VOIX - -.au | aplay ;; # ouvrir
t ) xdotool key "Tab" & espeak -v $TYPE -s 130 -p 30 "tab" | mbrola $VOIX - -.au | aplay ;; #tabulation
_ ) texte=`zenity --entry --title="tapez votre texte" --text="ceci sera copié dans le champ"` ; xdotool type "$texte" & espeak -v $TYPE -s 130 -p 30 "$texte" | mbrola $VOIX - -.au | aplay ;; #tapez du texte
! ) xdotool key "alt+F4" & espeak -v $TYPE -s 130 -p 30 "fermeture" | mbrola $VOIX - -.au | aplay ;; #fermer la fenêtre
h ) espeak -v $TYPE -s 130 -p 30 "ouverture de l'aide à la navigation" | mbrola $VOIX - -.au | aplay & zenity --info --title=Instruction --text "$INSTRU" ;; # afficher l'aide
esac;
}
done
exit
Comme, les deux scripts ne sont pas formellement identiques je ne supprime pas l'ancien.
Dernière modification par benoitfra (Le 27/08/2010, à 15:42)
Pages : 1