/usr/share/doc/HOWTO/fr-html/Visual-Bell.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Bip visuel mini-Howto (Visual bell mini-Howto)</title>
</head>
<body>
<h1>Bip visuel mini-Howto (Visual bell mini-Howto)</h1>
<h2>Alessandro Rubini, <code>rubini@linux.it</code><br>
Traduction Jean-Albert Ferrez,
<code>Jean-Albert.Ferrez@epfl.ch</code></h2>
v2.2, 11 Novembre 1997
<hr>
<em>Ce document explique comment utiliser termcap pour configurer
un bip visuel sur son système et comment désactiver
à la demande le bip sonore.</em>
<hr>
<h2><a name="s1">1. Introduction</a></h2>
<p>La console Linux émet un bip sonore lorsqu'un
caractère BEL (code ASCII 7) est produit. Bien que ce soit
un choix raisonnable dans la plupart des cas, bien des utilisateurs
n'aiment pas que leur ordinateur fasse du bruit. Ce mini-howto est
censé expliquer comment indiquer aux applications de ne pas
produire de caractère BEL. Il explique également
comment faire en sorte que le noyau et le serveur X Window ne
sonnent pas en présence d'un caractère BEL. Notez que
la plupart de ce document concerne la console texte, étant
donné que la configuration du serveur X est triviale pour
ceux qui travaillent dans un environnement graphique.</p>
<p>A mon avis, la meilleure attitude à adopter face à
un ordinateur bruyant consiste à opérer au niveau du
matériel, le mien n'a même pas de haut-parleur.</p>
<h2><a name="s2">2. "Spekearectomy", ablation du
haut-parleur</a></h2>
<p>L'ablation du haut-parleur est de loin la solution la plus
brillante au problème du bip sonore. Comme son nom
l'indique, elle consiste à supprimer le bip à la
source. L'opération est simple, elle ne nécessite pas
d'anesthésie.</p>
<p>Les PC sont habituellement équipés d'un bouton
ridicule servant à réduire la fréquence du
CPU. Ce bouton n'est jamais utilisé dans un environnement
multitâche, puisque l'on n'a jamais besoin de ralentir la
machine pour utiliser des jeux basés sur des boucles de
temporisation. Malheureusement, on ne peut pas utiliser ce bouton
pour augmenter la fréquence du CPU, mais on peut l'utiliser
pour activer/désactiver le haut-parleur. Parfois, ce dernier
est utile même si vous préférez un ordinateur
silencieux, par exemple pour signaler la fin d'une longue
compilation. Pour modifier la fonction de ce bouton, il suffit de
le déconnecter de la carte-mère et de le brancher en
série avec le haut-parleur.</p>
<p>Cela dit, les possesseurs de portables n'ont pas accès au
haut-parleur, pas plus qu'ils ne disposent d'un bouton inutile
à réassigner. La solution pour ces utilisateurs
réside dans la configuration de leurs logiciels, comme
indiqué ci-dessous.</p>
<h2><a name="s3">3. Configuration du bip console par
console</a></h2>
<p>Depuis la version 1.3.43, Martin Mares a modifié
<code>console.c</code>, y ajoutant la possibilité de
configurer la hauteur et la durée du bip. Chaque console
peut être configurée pour avoir un bip de hauteur
et/ou durée différente. Ce but est atteint au moyen
de séquences d'échappement interprétées
par le gestionnaire de la console. Vous pouvez configurer vos
fichiers <code>~/.profile</code> ou <code>~/.login</code> pour
choisir un bip particulier pour chaque console (ou, le cas
échéant, pas de bip du tout).</p>
<p>Les séquences d'échappement fonctionnent comme
suit :</p>
<ul>
<li>ESC-<code>[10;</code>xx<code>]</code> sélectionne la
hauteur du bip en Hertz. La valeur doit être dans la plage
21-32766, sinon le résultat est indéterminé.
Si l'argument `xx' manque (ESC-<code>[10]</code>), la valeur par
défaut est 750 Hz.</li>
<li>ESC-<code>[11;</code>xx<code>]</code> sélectionne la
durée du bip en millisecondes. Au delà de 2 secondes,
la valeur par défaut de 125 ms est appliquée. Cette
dernière est également utilisée si l'argument
'xx' manque.</li>
</ul>
<p>Pour avoir par exemple un bip à 50Hz durant une seconde,
faites "<code>echo -e "\\33[10;50]\\33[11;1000]"</code>" avec
<code>bash</code> (le "-e" signifie `digère les
séquences d'échappement'. Avec <code>tcsh</code> la
commande devient "<code>echo
"\\033[10;50]\\033[11;1000]"</code>".</p>
<p>Bien que je ne connaisse aucune version de la commande
<code>setterm</code> qui supporte une telle configuration, il est
possible qu'une version future offre une option permettant de
configurer le bip.</p>
<p>Si vous utilisez Linux-1.3.43 ou plus récent, vous pouvez
vous contenter des séquences d'échappement et
interrompre votre lecture ici. Si votre noyau est plus vieux, ou si
vous désirez un bip visuel, vous aller aimer le reste de ce
document.</p>
<h2><a name="s4">4. Concepts de base au sujet de Termcap et
Terminfo</a></h2>
<p>Le fichier <code>/etc/termcap</code> est un fichier texte
contenant les "<code>term</code>inal <code>cap</code>abilities"
(capacités des terminaux, N.d.T.). Plusieurs applications
utilisent les informations de <code>termcap</code> pour
déplacer le curseur sur l'écran ou d'autres actions
en relation avec ce dernier. <code>tcsh</code>, <code>bash</code>,
<code>vi</code> et toutes les applications basées sur
<code>curses</code> utilisent la base de données
<code>termcap</code>.</p>
<p>La base de données décrit plusieurs types de
terminaux. La variable d'environnement <code>TERM</code>
sélectionne le comportement correct lors de
l'exécution en indiquant aux applications quelle
entrée de <code>termcap</code> utiliser.</p>
<p>Dans la base de données, chaque capacité d'un
terminal est représentée par un code de deux lettres
et une représentation de la séquence
d'échappement permettant d'obtenir l'effet
désiré. Les deux-points ":" servent de
séparateur entre les différentes capacités.
Par exemple, le bip sonore dont le code est "bl" apparaît
généralement sous la forme "<code>bl=^G</code>", ce
qui signifie que le bip est obtenu en "affichant" le
caractère control-G, correspondant au code ASCII BEL.</p>
<p>En plus de <code>bl</code>, la capacité <code>vb</code>
est reconnue. Elle est utilisée pour représenter le
"bip visible". <code>vb</code> est généralement
absent de l'entrée <code>linux</code> du fichier
<code>termcap</code>.</p>
<p>La plupart des applications et librairies modernes utilisent la
base de données <code>terminfo</code> au lieu de
<code>termcap</code>. Cette base de données utilise un
fichier par type de terminal et est située dans
<code>/usr/lib/terminfo</code>; pour éviter de trop grands
répertoires, les descriptions de chaque type de terminal
sont stockées dans un répertoire nommé
d'après la première lettre : ainsi,
l'entrée <code>linux</code> se situe dans
<code>/usr/lib/terminfo/l/linux</code>. Pour construire une
entrée <code>terminfo</code> il faut "compiler" une
description <code>termcap</code>, voir le programme
<code>tic</code> et sa page de manuel.</p>
<h2><a name="s5">5. Mise sur pied d'un bip visible</a></h2>
<p>Vous pouvez ajouter une entrée pour la capacité
<code>vb</code> dans votre fichier <code>termcap</code>, si ce
n'est pas déjà fait. Dennis Henriksen (duke@diku.dk)
a suggéré la ligne suivante dans l'entrée
<code>linux</code> (appelée <code>console</code> dans les
anciennes distributions) du fichier <code>termcap</code> :</p>
<blockquote>
<pre>
<code>:vb=\E7\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l\E8:\
</code>
</pre></blockquote>
<p>Le backslash final sert à cacher le retour à la
ligne dans la base. Le code de Dennis fonctionne comme suit (selon
ses propres mots) :</p>
<ul>
<li>Sauvegarde de la position du curseur (par
précaution).</li>
<li>Bascule du fond d'écran plusieurs fois entre normal et
inversé.</li>
<li>Restauration de la position du curseur.</li>
</ul>
<h2><a name="s6">6. Désactivation du bip sonore dans la
console texte</a></h2>
<p>Si vous désirez imposer le bip visuel dans la console,
vous pouvez utiliser l'entrée "<code>bl</code>" dans la
<code>termcap</code> et lui donner la même valeur que pour
"<code>vb</code>" ci-dessus. Cette aproche est pratique si vous ne
voulez pas configurer chaque application (cela est de toutes
façons décrit ci-dessous). J'utilise cette solution
sur toutes les machines sur lesquelles j'utilise Linux sans pouvoir
déconnecter le haut-parleur.</p>
<h2><a name="s7">7. Empêcher les applications
d'émettre des bips</a></h2>
<p>Ceci est une liste incomplète d'applications qui peuvent
être configurées pour utiliser l'entrée
<code>vb</code> pour le type de terminal utilisé (utilisant
soit <code>termcap</code> soit <code>terminfo</code>) :</p>
<ul>
<li>Le serveur X : utilisez la commande "<code>xset b</code>"
pour sélectionner le comportement du bip. Elle prend trois
arguments numériques : volume, hauteur et durée.
"<code>xset -b</code>" désactive complètement le bip.
La configuration du serveur affecte toutes les applications
tournant dessus.</li>
<li><code>xterm</code> : xterm peut convertir chaque bip soit
en un signal visuel soit en un signal sonore. Si vous utilisez un
bip sonore, il obéit à la configuration issue de
"<code>xset</code>". Par défaut <code>xterm</code> utilise
un bip sonore, mais l'option "<code>-vb</code>" sur la ligne de
commande ainsi que la ressource "<code>xterm*visualBell:
true</code>" le remplace par un flash visuel. Vous pouvez passer de
l'un à l'autre en cours d'exécution au moyen du menu
obtenu par control-clic-bouton-gauche. Si vous travaillez sous X
vous n'avez probablement pas besoin des informations qui
suivent.</li>
<li><code>tcsh</code> (6.04 et ultérieurs) : "<code>set
visiblebell</code>". Cette instruction peut être
placée dans <code>.cshrc</code> ou exécutée
directement. Pour rétablir le bip sonore, "<code>unset
visiblebell</code>". Pour n'avoir ni l'un ni l'autre, utilisez
"<code>set nobeep</code>".</li>
<li><code>bash</code> (n'importe quel bash, pour autant que je
sache) : Mettez "<code>set bell-style visible</code>" dans
votre <code>~/.bashrc</code>. Les autre valeurs possibles sont
"none" et "audible".</li>
<li><code>bash</code> (avec <code>readline</code>, ainsi que
d'autres applications basées sur
<code>readline</code>) : Mettez "<code>set
prefer-visible-bell</code>" dans <code>~/.inputrc</code>.</li>
<li><code>nvi</code> et <code>elvis</code> : Mettez "<code>set
flash</code>" dans <code>~/.exrc</code> ou faites "<code>:set
flash</code>" directement. (notez les deux points). Pour
désactiver le bip visuel, utilisez <code>noflash</code> au
lieu de <code>flash</code>.</li>
<li><code>emacs</code> : Mettez "<code>(setq visible-bell
t)</code>" dans votre <code>~/.emacs</code>. Pour la
désactiver : "<code>(setq visible-bell
nil)</code>".</li>
<li><code>less</code> : Utilisez l'option "<code>-q</code>"
sur la ligne de commande pour avoir un bip visuel, utilisez
"<code>-Q</code>" pour n'avoir aucun bip. Pour avoir l'une ou
l'autre de ces options par défaut, mettez-les dans la
variable d'environnement "<code>LESS</code>".</li>
<li><code>screen</code> : Faites "Ctrl-A - Ctrl-G". Cela
change le comportement de tous les écrans virtuels. Voyez la
page du manuel sous "CUSTOMIZATION" pour fixer le comportement par
défaut.</li>
</ul>
<h2><a name="s8">8. La face cachée du
problème</a></h2>
<p>La mauvaise nouvelle est que toutes les applications n'utilisent
pas <code>termcap</code> ou <code>terminfo</code>. La plupart des
petits programmes ont le caractère 'backslash-a' (l'alarme)
dans le code source C. Le code "alarme" devient un caractère
ASCII BEL dans les chaînes de caractère du code
binaire. Les vraies applications ne sont en principe pas de ce
type, mais méfiez-vous des débutants en C qui vous
donnent leurs programmes. Les pires, je vous assure, sont les
étudiants en informatique.</p>
<p>La seule manière de réduire ces applications au
silence est de procéder à une "spekearectomy", ou
d'utiliser les séquences d'échappement dues à
Martin Mares.</p>
</body>
</html>
|