EDU - AMC Utilisation Accessible de MC 1. EDU - AMC 2. POUR COMMENCER 3. L'ACCESSIBILITÉ EN QUELQUES POINTS OU L'HUMANISATION DE MC 4. REMARQUES SUR LA COPIE 5. CONCLUSION 6. TELECHARGER AMC - ACCESSIBLE MIDNIGHT COMMANDER 7. FICHIER INI TEMPLATE POUR AMC Midnight Commander, abrégé MC, est l'équivalent GNU/Linuxien de NC, Norton Commander (DOS). Cette fiche décrit la méthode que j'ai découverte afin de permettre son utilisation par des non-voyants: POUR COMMENCER A première vue, MC semble bel et bien une application pour les voyants, ne serait-ce que par sa présentation complexe. Elle est, en effet, constituée de différents cadres. En voici une rapide description: 1ère ligne: barre de menu Puis un grand cadre divisé en 2 panneaux, TAB permet de passer d'un panneau à l'autre, nous verrons l'unique intérêt, qui est de taille, de ce cadre pour les non-voyants. Juste en-dessous du cadre, une ligne. C'est la plus importante pour l'accessibilité de MC: comme le curseur ne se positionne pas sur les fichiers, il faut bloquer son écran tactile sur cette ligne et lire. Elle indique la position du curseur (Ex.: .., NomRep, NomFich où NomRep est le nom du répertoire où se situe le curseur, NomFich, idem). Pour les liens symboliques, on vérifie le nom du lien dans le cadre, en se basant par rapport aux fichiers au-dessus ou en-dessous, car dans la ligne sous les panneaux est écrit directement le fichier vers lequel pointe le lien. De même lorsqu'on fais une sélection, la ligne sous les panneaux indique la taille en octets des fichiers sélectionnés, faisant disparaître le défilement. Enfin, un prompt, où on tape les commandes. L'ACCESSIBILITÉ EN QUELQUES POINTS OU L'HUMANISATION DE MC Je ne décrirai pas ici tout MC, car la page de manuel est bien faite pour cela. Elle vous permettra d'approfondir ce qui est dit ici. Mais voici quelques astuces pour l'adapter aux besoins des non-voyants. Pour ma part, il a remplacé tout le prompt, car en le configurant correctement, on a (en Français) la puissance de Linux et l'aisance de Windows. Pas mal non? :-) Tout d'abord, démarrez mc avec l'option -a pour que les bords des cadres apparaissent effectivement, et non avec des ? dans BRLTTY. Afin de rendre cela automatique, dans .bashrc, faites un alias du type: alias mc="mc -a" Menu Gauche: -mode de listage: choisir Définie par l'Utilisateur. En-dessous, indiquez les informations que vous désirez voir sur les fichiers. Voilà à quoi ressemble ma ligne sous Définie par l'Utilisateur: type name mark | size | perm owner Ce qui donne dans le panneau gauche 1ère ligne: | Nom |Taille |PermissionPropriét| et dans la ligne sous les panneaux (celle dont on a besoin): NomFichier.Extension (si besoin), | 722|-rw-------jp | On a bien les permissions, la taille et les propriétaires. D'autres info peuvent être ajoutées et la présentation personnalisée (voir la page de manuel ( man mc )). NB: si mark est avant ou après name, l'astérisque (*) indiquant que le fichier est sélectionné apparaîtra au début ou sur la fin de la ligne contenant le nom du fichier, avant la fin du cadre des noms, donc avant celle des tailles. Noter au passage que la sélection d'un élément se fait par Insertion. Quand on a appuyé sur cette touche, le curseur se déplace à l'élément situé dessous. Donc, pour sélectionner 2 fichiers l'un en-dessous de l'autre, on fais 2 fois insertion, et non insertion flèche bas insertion, la flùche entraînerait le déplacement au fichier après celui en-dessous. De même dans l'autre sens, si on va de bas en haut, on fait Insertion sur le premier puis deux fois Flèche Haut et Insertion, pour sélectionner le fichier juste au-dessus, car une flèche haut sélectionnerait le même fichier, donc ne ferait rien. -Ordre de tri: à vous de voir si vous préférez un tri alphabétique ou un autre. Pour mes besoins spécifiques, j'ai demandé un tri par date de modification, avec Tri inversé pour que le plus récent soit en haut. -F2: Menu utilisateur. L'inconvénient d'avoir mc en permanence est que, si on a des aliases dans le bash, il ne les prend pas en compte. Ex.: un alias google pour "links www.google.fr" ne marche pas sous mc. Il faudra taper toute la commande. En revanche, le menu remplace cela. Mais je conseille de modifier manuellement, en tant que root, le fichier /etc/mc/mc.menu Contrairement aux apparences, sa syntaxe est simple. Je vous suggère d'ailleurs de tout supprimer, sauf les deux premières lignes. Ces 2 premières lignes ressemblent à: shell_patterns=0 + ! t t Remplacez le reste par des lignes du type: X Intitulé commande Détail commande X: Lettre à taper pour activer le menu rapidement Intitulé commande: nom que vous voulez donner à la commande, au raccourci, qui sera affiché dans le Menu utilisateur. Commande: commande à exécuter sans guillemets (Ex.: links www.google.fr). En 2 lignes vous avez un alias, pas besoin de séparer les groupes de 2 lignes, mc comprend que celles commençant par une lettre ou un chiffre correspondent à ce qu'il doit afficher, celles avec une tabulation avant la commande lui indiquent ce qu'il doit faire. La casse est respectée, de sorte que vous pouvez avoir un A et un a pour deux commandes. Quand Mc.menu est modifié, dans Menu utilisateur, vous aurez des lignes du type: A Google Et, en vous positionant dessus, puis en tapant Entrée on en tapant directement A, vous exécuterez la commande. Ex.: dans mon mc.menu j'ai: D Monter disquette mount /floppy Dans Menu utilisateur j'ai: D Monter disquette Si je tape D, la disquette se monte. NB: il est envisageable d'avoir, sur la 2ème ligne, des commandes complexes du type "commande1&&commande2; commande1|commande2" voir plus complexes (voir la page de manuel). -édition des Extensions de fichier: grâce à ce fichier, quand vous êtes sur un fichier et faites Entrée, il l'ouvre avec l'application adéquate. On peut le modifier de diverses façons mais elles me semblent complexes, voici celle que j'ai retenue, qui me semble la plus simple: se placer dans la bonne section, (Ex.: ### Documents ### contient toutes les extensions de documents et les programmes à exécuter). Dans la section, rajouter une ligne ou remplacer celle existante par: shell/.xxx Open=application %f xxx=extension (txt, mp3, wav...) application=noms de l'application %f est important car cela dit à l'application qu'elle doit ouvrir le fichier. Pour info, shell/.mp3 signifie *.mp3, mais mc remplace *.mp3 par shell/.mp3. La même chose en concret: remarquant que MC ne lisait ni mes MP3 ni mes WAV avec le fichier mc.ext original, et qu'il n'ouvrait pas Emacs sur mes fichiers TXT et sans extension, j'ai: Modifié la section ### Sound files ### en supprimant les quatre premières lignes, et en les remplaçant par les quatre suivantes: shell/.wav Open=play %f shell/.mp3 Open=mpg321 %f Dans ### Play lists ###, j'ai remplacé les 2 premières lignes par: shell/.m3u Open=mpg321 -Z@ %f Dans ### Documents ###, section # html, j'ai mis: shell/.html Open=links %f View=%view{ascii} lynx -dump -force_html %f shell/.htm Open=links %f J'ai remplacé les lignes originales. Section ### Default ###, j'ai ajouté et modifié les choses ainsi: shell/*.txt Open=emacs %f View= shell/*. Open=emacs %f C'est moins élaboré, mais efficace. Quand je fais Entrée sur un mp3, il lance mpg321; sur un m3u idem, sur Wav il lance play, sur txt il ouvre emacs... A vous de voir pour d'autres extensions suivant vos besoins. -Menu Options - Configuration: Section Pause après l'exécution..., mettre Toujours, car sinon on n'a pas les messages du bash lorsqu'on tape une commande sur le prompt de mc. Alors que la pause nous invite à taper une touche, laissant le temps de lire les messages. Section Autres Options: j'ai désactivé l'option MEnus autos, car sinon dès que mc se lance, on a le Menu utilisateur. Ca m'ennuyait, mais certains peuvent apprécier. A vous de voir. Je vous suggère aussi de laisser active Utiliser l'éditeur interne et Utiliser la vue interne, car au moins sur un fichier, Entrée vous l'ouvre avec votre éditeur favori, et F4 avec celui de mc, bien inférieur à Emacs mais en Français. Viennent ensuite 2 étapes importantes: -Menu Options, Présentation. Comme pour un non-voyant, il est assez malaisé de gérer deux cadres, quoique cela doit être possible mais peu commode, voici mes suggestions: Désactiver l'option "Séparer en deux parties égales" En-dessous, arrangez-vous pour laisser la taille maximum au cadre gauche et minimum à celui de droite (celui de droite ne nous intéresse pas, autant laisser un maximum de place à celui de gauche, pour qu'il affiche les noms de fichiers en entiers). La touche Espace vous le permet en vous positionnant à gauche ou à droite, Vous faites monter la valeur d'un cadre et baisser celle de l'autre. Comme on ne peut cliquer avec les routine-curseur sur la barre de menu, désactivez-la, ça fera gagner de la place. De toute façon, seule F9 permet de l'exploiter. A vous de choisir ensuite ce que vous voulez qui soit affiché. -Etape essentielle: quand vous avez fini de faire vos sélections dans Options Configuration ou Options Présentation, cliquez sur Enregistrer. Valider ne laissera les options actives que pour la session, et il faudra recommencer à chaque nouvelle session. De même, pour les paramètres définis dans le menu Gauche, afin qu'ils ne soient pas à refixer à chaque nouvelle session, allez dans Options Enregistrer la configuration pour qu'ils soient pris en compte dans ~/.mc/ini Si vous souhaitez faire des tests, Valider et le non-enregistrement peuvent être intéressant. Enfin, pour ceux que j'ai convaincus, j'espère qu'il y en aura, vous pouvez même lancer mc dès que vous êtes logué en ajoutant dans .bash_profile la ligne: /usr/bin/mc Au passage, en tapant startx vous lanceriez X-Window dès que vous êtes logué, ce qui peut être intéressant pour un voyant! Ou pour nous-même à l'avenir! REMARQUES SUR LA COPIE Je finirai en expliquant rapidement l'unique intérêt pour un non-voyant, à mon avis, du cadre droit. En deux mots, il évite de taper le chemin complet de l'endroit où on veut copier/déplacer un fichier. Pour simplifier, prenons un exemple. Supposons que je veuille copier essai.txt du home affiché dans le cadre gauche dans un répertoire Linux. On peut le faire de 3 façons: 1. cp essai.txt Linux Aucun intérêt alors d'avoir Midnight Commander. 2. F5 puis Linux Mais dans le cas où il y a une grande arborescence avec beaucoup de sous-répertoires, c'est fastidieux. 3. Faire TAB. Dans le cadre droit, se rendre dans le dossier Linux, donc là où on veut copier le fichier. Les noms de fichier restent lisibles malgré la petitesse du panneau droit. Puis TAB pour revenir au panneau ge gauche et F5. Vous verrez dans le champ Copier vers le chemin /home/xx/Linux. C'est très intéressant si on a des copies à faire, comme moi, dans des répertoires ressemblant à /home/jp/cours/annee/...... ça s'allonge parfois. De même pour renommer, si le cadre gauche et droit sont dans le même répertoire, F6 vous permet de renommer. Sinon, il va le copier là où est le panneau droit, à moins que vous ne tapiez le même chemin mais un nom de fichier différent, au quel cas il renommera. NO`E: le tout s'applique aussi au déplacement de fichier (mv). CONCLUSION Et voilà. D'autres commandes sont, à mon avis, à éviter quand on n'y voit pas et qu'on dépend d'une ligne sous les panneaux, comme celle pour Echanger les panneaux. Elle me semble plus gènante qu'utile pour nous, non-voyants. Cela paraît complexe à mettre en place mais ensuite c'est un vrai plaisir. Pour les ex-Windowsiens, je trouve qu'on est pas loin de l'explorateur Windows et Jaws, mais en plus performant puisqu'on peut y entrer les commandes Linux. Les opérations classiques de manipulation de fichiers sur Linux en sont simplifiées (cf. Menu Fichier, les deux commandes se substituant à chmod et chown. Mais grâce à ces petites adaptations, mc devient, selon moi, assez accessible et intéressant, car on peut avoir tout linux en mode texte mais convivial, sans restriction puisqu'on peut taper des commandes si besoin. Pour finir, je préciserai juste que si je me suis concentré sur le cadre Gauche en choisissant de réduire au maximum le panneau de droite, c'est parce que sur une plage, on accède au panneau de gauche systématiquement, alors que celui de droite nous oblige à aller le chercher, donc il faut aller chercher les informations sur les fichiers, ce qui prend davantage de temps. Mais vous pouvez, si vous le souhaitez, inverser les choses en privilégiant le panneau de droite. TELECHARGER AMC - ACCESSIBLE MIDNIGHT COMMANDER Le tarball d'AMC est disponible à l'URL: http://www.mistigri.org/~yan/projs/amc/ FICHIER INI TEMPLATE POUR AMC Le fichier ini de mc/amc doit obligatoirement s'appeler "ini" et être situé dans le répertoire .mc sous votre home, en résumé: /home/user/.mc/ini Voici ce à quoi pourrait ressembler ce fichier ini: # ----- Début du template ----- [Midnight-Commander] show_backups=0 show_dot_files=0 verbose=1 mark_moves_down=1 pause_after_run=2 shell_patterns=1 auto_save_setup=1 auto_menu=1 use_internal_view=1 use_internal_edit=1 clear_before_exec=1 mix_all_files=0 fast_reload=0 fast_reload_msg_shown=0 confirm_delete=1 confirm_overwrite=1 confirm_execute=0 confirm_exit=0 safe_delete=0 mouse_repeat_rate=100 double_click_speed=250 use_8th_bit_as_meta=0 confirm_view_dir=0 mouse_move_pages=1 mouse_move_pages_viewer=1 fast_refresh=0 navigate_with_arrows=1 drop_menus=1 wrap_mode=0 old_esc_mode=0 cd_symlinks=1 show_all_if_ambiguous=1 have_fast_cpu=0 max_dirt_limit=10 torben_fj_mode=0 use_file_to_guess_type=1 alternate_plus_minus=0 only_leading_plus_minus=1 show_output_starts_shell=0 panel_scroll_pages=1 xtree_mode=0 num_history_items_recorded=60 file_op_compute_totals=1 vfs_timeout=60 ftpfs_directory_timeout=1800 use_netrc=1 ftpfs_retry_seconds=30 ftpfs_always_use_proxy=0 ftpfs_use_passive_connections=1 ftpfs_use_unix_list_options=1 ftpfs_first_cd_then_ls=0 editor_word_wrap_line_length=0 editor_key_emulation=1 editor_tab_spacing=8 editor_fill_tabs_with_spaces=0 editor_return_does_auto_indent=1 editor_backspace_through_tabs=0 editor_fake_half_tabs=1 editor_option_save_mode=0 editor_option_save_position=1 editor_option_backup_ext_int=-1 editor_option_auto_para_formatting=0 editor_option_typewriter_wrap=0 editor_edit_confirm_save=1 editor_syntax_highlighting=1 nice_rotating_dash=1 horizontal_split=0 [Layout] equal_split=1 first_panel_size=40 message_visible=0 keybar_visible=1 xterm_title=1 output_lines=0 command_prompt=1 menubar_visible=0 show_mini_info=1 permission_mode=0 filetype_mode=1 [Dirs] other_dir=/floppy current_is_left=1 [Misc] ftpfs_password=anonymous@ ftp_proxy_host=gate display_codepage=Other_8_bit [New Left Panel] display=listing reverse=1 case_sensitive=0 sort_order=time list_mode=user user_format=full mark name size | perm | owner group user_status0=half type name | size | perm user_status1=half type name | size | perm user_status2=half type name | size | perm user_status3=half type name | size | perm user_mini_status=0 [New Right Panel] display=listing reverse=1 case_sensitive=1 sort_order=time list_mode=full user_format=half type name | size | perm user_status0=half type name | size | perm user_status1=half type name | size | perm user_status2=half type name | size | perm user_status3=half type name | size | perm user_mini_status=0 [Panelize] Rechercher les *.orig après un patch=find . -name \*.orig -print Rechercher les programmes SUID et SGID=find . \( \( -perm -04000 -a -perm +011 \) -o \( -perm -02000 -a -perm +01 \) \) -print Trouver les déchets de patches=find . -name \*.rej -print # ----- Fin du template ----- JPH Mengual - 22/03/2005 Publié aux conditions de la FDL free documentation license Relu et mis en page par O. La rosa - rev. 30-11-2005.