Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

#1 Le 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)