This file is indexed.

/usr/share/doc/HOWTO/fr-html/Xterm-Title.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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Comment changer le titre d'un xterm</title>
</head>
<body>
<h1>Comment changer le titre d'un xterm</h1>
<h2>Ric Lister, <code>ric@giccs.georgetown.edu</code><br>
traduction Jean-Albert Ferrez,
<code>Jean-Albert.Ferrez@epfl.ch</code></h2>
Derni&egrave;re modification&nbsp;: 22.11.1999, v2.0
<hr>
<em>Ce document explique comment utiliser des s&eacute;quences
d'&eacute;chappement pour modifier dynamiquement le titre de la
fen&ecirc;tre et de l'ic&ocirc;ne d'un xterm. Des exemples sont
donn&eacute;s pour plusieurs shells, et l'annexe donne les
s&eacute;quences pour d'autres types de terminaux.</em>
<hr>
<h2><a name="s1">1. O&ugrave; trouver ce document</a></h2>
<p>Ce document fait d&eacute;sormais partie des <a href=
"http://sunsite.unc.edu/LDP/HOWTO/">HOWTOs Linux</a> et peut
&ecirc;tre trouv&eacute; &agrave;&nbsp;: <a href=
"http://sunsite.unc.edu/LDP/HOWTO/mini/Xterm-Title.html">http://sunsite.unc.edu/LDP/HOWTO/mini/Xterm-Title.html</a>.</p>
<p>La derni&egrave;re version en date se trouve &agrave;&nbsp;:
<a href=
"http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/">http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/</a>.</p>
<p>Ce document remplace le howto initial &eacute;crit par Winfried
Tr&uuml;mper.</p>
<p>Ndt&nbsp;: La version fran&ccedil;aise de ce document se trouve
&agrave;&nbsp;: <a href=
"http://www.freenix.fr/linux/HOWTO/mini/Xterm-Title.html">http://www.freenix.fr/linux/HOWTO/mini/Xterm-Title.html</a></p>
<h2><a name="s2">2. Titres statiques</a></h2>
<p>Les titres des &eacute;mulateurs de terminaux xterm, color-xterm
ou rxvt peuvent &ecirc;tre donn&eacute;s sur la ligne de commande
avec les options -T et -n&nbsp;:</p>
<blockquote>
<pre>
<code>xterm -T "Le titre de mon XTerm" -n "Le titre de son ic&ocirc;ne"
</code>
</pre></blockquote>
<h2><a name="s3">3. Titres dynamiques</a></h2>
<p>Bon nombre de personnes trouvent utile de faire appara&icirc;tre
dans le titre de leur terminal une information qui change
dynamiquement, telle que le nom du serveur sur lequel on est
connect&eacute;, le r&eacute;pertoire courant, etc.</p>
<h2><a name="ss3.1">3.1 Les s&eacute;quences d'&eacute;chappement
xterm</a></h2>
<p>On peut changer le titre de la fen&ecirc;tre et de l'ic&ocirc;ne
dans un xterm lanc&eacute; en utilisant les s&eacute;quences
d'&eacute;chappement XTerm. Les s&eacute;quences suivantes sont
utiles dans ce but&nbsp;:</p>
<ul>
<li><code>ESC]0;<b>nom</b>BEL</code> -- Change le titre de la
fen&ecirc;tre et de l'ic&ocirc;ne</li>
<li><code>ESC]1;<b>nom</b>BEL</code> -- Change le titre de
l'ic&ocirc;ne</li>
<li><code>ESC]2;<b>nom</b>BEL</code> -- Change le titre de la
fen&ecirc;tre</li>
</ul>
<p>o&ugrave; ESC est le caract&egrave;re escape
(&eacute;chappement, \033), et BEL est le caract&egrave;re bell
(bip, \007).</p>
<p>Afficher l'une de ces s&eacute;quences dans un xterm causera le
changement du titre de la fen&ecirc;tre ou de l'ic&ocirc;ne.</p>
<p><b>Note</b>: Ces s&eacute;quences fonctionnent &eacute;galement
avec la plupart des d&eacute;riv&eacute;s de xterm, tels que
nxterm, color-xterm et rxvt. D'autres &eacute;mulateurs de
terminaux utilisent d'autres s&eacute;quences&nbsp;; quelques
exemples sont donn&eacute;s en annexe. La liste compl&egrave;te des
s&eacute;quences d'&eacute;chappement est donn&eacute;e dans le
fichier <a href=
"http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/ctlseq2.txt">
ctlseq2.txt</a> de la distribution de xterm, ou dans le fichier
<a href=
"http://www.giccs.georgetown.edu/~ric/howto/Xterm-Title/xterm.seq">xterm.seq</a>
de la distribution de <a href="http://www.rxvt.org/">rxvt</a>.</p>
<h2><a name="ss3.2">3.2 Afficher les s&eacute;quences
d'&eacute;chappement</a></h2>
<p>Pour les informations qui ne changent pas au cours de
l'&eacute;x&eacute;cution du shell, telles que le serveur et le nom
d'utilisateur, il suffit d'afficher les s&eacute;quences depuis le
fichier rc du shell&nbsp;:</p>
<blockquote>
<pre>
<code>echo -ne "\033]0;${USER}@${HOST}\007"
</code>
</pre></blockquote>
devrait donner un titre du genre <code>nom@serveur</code>, pour
autant que les variables <code>$USER</code> et <code>$HOST</code>
soient correctes. Les options requises pour echo peuvent
d&eacute;pendre du shell (cf ci-dessous).
<p>Pour les informations qui peuvent changer au cours de
l'ex&eacute;cution du shell, telles que le r&eacute;pertoire
courant, ces s&eacute;quences doivent vraiment &ecirc;tre
donn&eacute;es lors de chaque changement de l'invite. De cette
fa&ccedil;on, le titre est mis &agrave; jour lors de chaque
commande et peut ainsi refl&eacute;ter des informations telles que
le r&eacute;pertoire en cours, le nom d'utilisateur, le nom du
serveur, etc. Certains shells offrent des fonctions
sp&eacute;ciales pour y parvenir, d'autres pas&nbsp;: il faut dans
ce cas ins&eacute;rer la cha&icirc;ne directement dans le texte de
l'invite.</p>
<h2><a name="s4">4. Exemples pour quelques shells</a></h2>
<p>Nous donnons ci-dessous des exemples pour les shells les plus
courants. Nous commen&ccedil;ons avec <code>zsh</code> car il offre
des possibilit&eacute;s qui facilitent grandement notre
t&acirc;che. Nous progresserons ensuite vers des exemples de plus
en plus difficiles.</p>
<p>Dans tous les exemples ci-dessous, on teste la variable
d'environnement TERM pour &ecirc;tre certain de n'appliquer ces
s&eacute;quences que si l'on est dans un xterm (ou
d&eacute;riv&eacute;). Le test est fait sur TERM=xterm*, de
mani&egrave;re &agrave; inclure au passage les variantes telles que
TERM=xterm-color (d&eacute;fini par rxvt).</p>
<p>Encore une remarque au sujet des d&eacute;riv&eacute;s du C
shell tels que <code>tcsh</code> et <code>csh</code>. Dans ces
shells, les variables non-d&eacute;finies causent des erreurs
fatales. Il est d&egrave;s lors n&eacute;cessaire avant de tester
la valeur de la variable <code>$TERM</code>, de tester si elle
existe pour ne pas interrompre un shell non-interactif. Pour y
parvenir, il faut inclure les exemples ci-dessous dans quelque
chose du genre&nbsp;:</p>
<blockquote>
<pre>
<code>  if ($?TERM) then
      ...
  endif
</code>
</pre></blockquote>
(&Agrave; notre avis, il s'agit d'une raison parmi beaucoup
d'autres de ne pas utiliser les C shells. Voir <i><a href=
"http://language.perl.com/versus/csh.whynot">Csh Programming
Considered Harmful</a></i> pour une discussion utile).
<p>Pour utiliser les exemples suivants, placez-les dans le fichier
d'initialisation du shell apropri&eacute;, c'est-&agrave;-dire un
fichier lu lors du lancement d'un shell interactif. Le plus souvent
il s'agit de <code>.<i>shell</i>rc</code> (ex&nbsp;:
<code>.zshrc</code>, <code>.tcshrc</code>, etc.)</p>
<h2><a name="ss4.1">4.1 zsh</a></h2>
<p>On utilise quelques fonctions et codes offerts par
<code>zsh</code>&nbsp;:</p>
<blockquote>
<pre>
<code>precmd ()   fonction ex&eacute;cut&eacute;e juste avant chaque invite
chpwd ()    fonction ex&eacute;cut&eacute;e lors de chaque changement de r&eacute;pertoire
\e          code du caract&egrave;re escape (ESC)
\a          code du caract&egrave;re bip (BEL)
%n          code remplac&eacute; par $USERNAME
%m          code remplac&eacute; par le hostname jusqu'au premier '.'
%~          code remplac&eacute; par le r&eacute;pertoire, avec '~' &agrave; la place de $HOME
</code>
</pre></blockquote>
De nombreux autres codes sont disponibles, voir 'man zshmisc'.
<p>Ainsi, le code suivant, mis dans ~/.zshrc, affiche
"nom@serveur:r&eacute;pertoire" dans le titre de la fen&ecirc;tre
(et de l'ic&ocirc;ne).</p>
<blockquote>
<pre>
<code>case $TERM in
   xterm*)
       precmd () {print -Pn "\e]0;%n@%m: %~\a"}
       ;;
esac
</code>
</pre></blockquote>
On arrive au m&ecirc;me r&eacute;sultat en utilisant
<code>chpwd()</code> au lieu de <code>precmd()</code>. La commande
interne <code>print</code> fonctionne comme <code>echo</code>, mais
donne acc&egrave;s aux s&eacute;quences <code>%</code>.
<h2><a name="ss4.2">4.2 tcsh</a></h2>
<p><code>tcsh</code> offre des possibilit&eacute;s similaires
&agrave; celles de <code>zsh</code>&nbsp;:</p>
<blockquote>
<pre>
<code>precmd ()   fonction ex&eacute;cut&eacute;e juste avant chaque invite
chpwd ()    fonction ex&eacute;cut&eacute;e lors de chaque changement de r&eacute;pertoire
%n          code remplac&eacute; par $USERNAME
%m          code remplac&eacute; par le hostname jusqu'au premier '.'
%~          code remplac&eacute; par le r&eacute;pertoire, avec '~' &agrave; la place de $HOME
</code>
</pre></blockquote>
<p>Malheureusement, il n'y a pas d'&eacute;quivalent &agrave; la
fonction print de <code>zsh</code> qui permette d'utiliser les
codes de l'invite dans la cha&icirc;ne du titre&nbsp;; le mieux que
l'on puisse faire est d'utiliser les variables du shell (dans
<code>~/.tcshrc</code>)&nbsp;:</p>
<blockquote>
<pre>
<code>switch ($TERM)
   case "xterm*":
       alias precmd 'echo -n "\033]0;${HOST}:$cwd\007"'
       breaksw
endsw
</code>
</pre></blockquote>
mais on obtient alors le chemin complet du r&eacute;pertoire, sans
'~'. Par contre, on peut mettre la cha&icirc;ne dans
l'invite&nbsp;:
<blockquote>
<pre>
<code>switch ($TERM)
   case "xterm*":
       set prompt="%{\033]0;%n@%m:%~\007%}tcsh%# "
       breaksw
   default:
       set prompt="tcsh%# "
       breaksw
endsw
</code>
</pre></blockquote>
ce qui donne "<code>tcsh%</code> " comme invite, et
"<code><i>nom</i>@<i>serveur</i>: <i>r&eacute;pertoire</i></code>"
dans le titre (et l'ic&ocirc;ne) de xterm. Les "%{...%}" doivent
&ecirc;tre plac&eacute;s autour des s&eacute;quences
d'&eacute;chappement (et ne peuvent pas &ecirc;tre le dernier
&eacute;l&eacute;ment de l'invite, 'man tcsh' donne plus de
d&eacute;tails).
<h2><a name="ss4.3">4.3 bash</a></h2>
<p><code>bash</code> offre la variable <code>PROMPT_COMMAND</code>
qui contient une commande &agrave; ex&eacute;cuter avant d'afficher
l'invite. Ce code (ins&eacute;r&eacute; dans
<code>~/.bashrc</code>) affiche <code>nom@serveur:
r&eacute;pertoire</code> dans le titre de la fen&ecirc;tre (et de
l'ic&ocirc;ne).</p>
<blockquote>
<pre>
<code>PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
</code>
</pre></blockquote>
o&ugrave; <code>\033</code> est le caract&egrave;re
<code>ESC</code> et <code>\007</code> <code>BEL</code>.
<p>Il convient de noter que les guillemets jouent un r&ocirc;le
important&nbsp;: les variables entre <code>"..."</code> sont
&eacute;valu&eacute;es, alors que celles entre <code>"..."</code>
ne le sont pas. Ainsi, <code>PROMPT_COMMAND</code> re&ccedil;oit
bien le nom des variables, ces derni&egrave;res &eacute;tant
&eacute;valu&eacute;es lorsque <code>PROMPT_COMMAND</code> est
invoqu&eacute;e.</p>
<p>Cependant, <code>$PWD</code> donne le r&eacute;pertoire complet.
Si l'on veut utiliser le raccourci <code>~</code>, il faut placer
toute la s&eacute;quence d'&eacute;chappement dans l'invite pour
avoir acc&egrave;s aux codes suivants&nbsp;:</p>
<blockquote>
<pre>
<code>\u          est remplac&eacute; par $USERNAME
\h          est remplac&eacute; par le hostname jusqu'au premier '.'
\w          est remplac&eacute; par le repertoire, avec '~' &agrave; la place de $HOME
\[...\]     signale une suite de caract&egrave;re non-imprimables
</code>
</pre></blockquote>
<p>Ainsi le code suivant produit l'invite <code>bash$</code> , et
place <code>nom@serveur: r&eacute;pertoire</code> dans le titre (et
l'ic&ocirc;ne) de xterm.</p>
<blockquote>
<pre>
<code>case $TERM in
   xterm*)
       PS1="\[\033]0;\u@\h: \w\007\]bash\$ "
       ;;
   *)
       PS1="bash\$ "
       ;;
esac
</code>
</pre></blockquote>
L'utilisation de <code>\[...\]</code> signale &agrave;
<code>bash</code> la pr&eacute;sence de caract&egrave;res
non-imprimables, information dont il a besoin lorsqu'il calcule la
longueur de l'invite. Sans cette pr&eacute;caution, les commandes
d'&eacute;dition de ligne ne savent plus tr&egrave;s bien o&ugrave;
placer le curseur.
<h2><a name="ss4.4">4.4 ksh</a></h2>
<p><code>ksh</code> n'offre pas grand chose en terme de fonctions
et codes, il faut donc mettre notre cha&icirc;ne dans l'invite pour
qu'elle soit mise &agrave; jour dynamiquement. L'exemple suivant
produit l'invite <code>ksh$</code> , et place <code>nom@serveur:
r&eacute;pertoire</code> dans le titre (et l'ic&ocirc;ne) de
xterm.</p>
<blockquote>
<pre>
<code>case $TERM in
   xterm*)
       HOST=`hostname`
       PS1='^[]0;${USER}@${HOST}: ${PWD}^Gksh$ '
       ;;
   *)
       PS1='ksh$ '
       ;;
esac
</code>
</pre></blockquote>
Cependant, <code>$PWD</code> donne le r&eacute;pertoire complet. On
peut &ocirc;ter le pr&eacute;fixe <code>$HOME/</code> en utilisant
la construction <code>${...##...}</code>. De m&ecirc;me, on peut
tronquer le nom du serveur &agrave; l'aide de
<code>${...%%...}</code>.
<blockquote>
<pre>
<code>HOST=`hostname`
HOST=${HOST%%.*}
PS1='^[]0;${USER}@${HOST}: ${PWD##${HOME}/}^Gksh$ '
</code>
</pre></blockquote>
Les caract&egrave;res <code>^[</code> et <code>^G</code>
d&eacute;signent <code>ESC</code> et <code>BEL</code> (ils peuvent
&ecirc;tre saisis dans emacs &agrave; l'aide de <code>C-q
ESC</code> et <code>C-q C-g</code>).
<h2><a name="ss4.5">4.5 csh</a></h2>
<p>C'est assez difficile &agrave; r&eacute;aliser avec
<code>csh</code>. On finit par mettre ce qui suit dans le
~/.cshrc&nbsp;:</p>
<blockquote>
<pre>
<code>switch ($TERM)
   case "xterm*":
       set host=`hostname`
       alias cd 'cd \!*; echo -n "^[]0;${user}@${host}: ${cwd}^Gcsh% "'
       breaksw
   default:
       set prompt='csh% '
       breaksw
endsw
</code>
</pre></blockquote>
Il a fallu faire un alias de la commande <code>cd</code> pour
mettre &agrave; jour l'invite. Les caract&egrave;res
<code>^[</code> et <code>^G</code> d&eacute;signent
<code>ESC</code> et <code>BEL</code> (ils peuvent &ecirc;tre saisis
dans emacs &agrave; l'aide de <code>C-q ESC</code> et <code>C-q
C-g</code>).
<p>Notes&nbsp;: sur certains syst&egrave;mes <code>hostname
-s</code> peut &ecirc;tre utilis&eacute; pour obtenir le nom de la
machine au lieu du nom qualifi&eacute;. Les utilisateurs ayant des
liens symboliques sur des r&eacute;pertoires trouveront
<code>`pwd`</code> plus pr&eacute;cis que <code>$cwd</code>.</p>
<h2><a name="s5">5. Afficher le nom de la commande en cours
d'ex&eacute;cution</a></h2>
<p>Souvent un utilisateur lance une longue commande en avant plan
telle que <code>top</code>, un &eacute;diteur, un lecteur de
courrier &eacute;lectronique, etc, et voudrait que le nom de cette
commande figure dans le titre de la fen&ecirc;tre. C'est un
probl&egrave;me d&eacute;licat qui n'est facile &agrave;
r&eacute;soudre qu'avec <code>zsh</code>.</p>
<h2><a name="ss5.1">5.1 zsh</a></h2>
<p><code>zsh</code> offre une fonction id&eacute;ale pour cet
objectif&nbsp;:</p>
<blockquote>
<pre>
<code>preexec()   fonction ex&eacute;cut&eacute;e juste avant qu'une commande soit ex&eacute;cut&eacute;e
$*,$1,...   arguments pass&eacute;s &agrave; preexec()
</code>
</pre></blockquote>
On peut donc ins&eacute;rer le nom de la commande de la
mani&egrave;re suivante&nbsp;:
<blockquote>
<pre>
<code>case $TERM in
    xterm*)
      preexec () {
        print -Pn "\e]0;$*\a"
      }
    ;;
esac
</code>
</pre></blockquote>
Note: la fonction <code>preexec()</code> est apparue vers la
version 3.1.2 de <code>zsh</code>, vous devrez peut-&ecirc;tre
mettre &agrave; jour votre ancienne version.
<h2><a name="ss5.2">5.2 Autres shells</a></h2>
<p>Ce n'est pas facile avec les autres shells qui n'ont pas
l'&eacute;quivalent de la fonction <code>preexec()</code>. Si
quelqu'un a des exemples, merci de les communiquer par email
&agrave; l'auteur.</p>
<h2><a name="s6">6. Annexe&nbsp;: s&eacute;quences
d'&eacute;chappement pour d'autres &eacute;mulateurs de
terminaux</a></h2>
<p>De nombreux &eacute;mulateurs de terminaux modernes sont des
d&eacute;riv&eacute;s de <code>xterm</code> ou <code>rxvt</code> et
acceptent les s&eacute;quences d'&eacute;chappement que nous avons
utilis&eacute;es jusqu'ici. Certains terminaux propri&eacute;taires
fournis avec les diverses variantes d'unix utilisent leur propres
s&eacute;quences.</p>
<h2><a name="ss6.1">6.1 <code>aixterm</code> d'IBM</a></h2>
<p><code>aixterm</code> reconna&icirc;t les s&eacute;quences
d'&eacute;chappement de <code>xterm</code>.</p>
<h2><a name="ss6.2">6.2 <code>wsh</code>, <code>xwsh</code> et
<code>winterm</code> de SGI</a></h2>
<p>Ces terminaux d&eacute;finissent <code>$TERM=iris-ansi</code> et
utilisent&nbsp;:</p>
<ul>
<li><code>ESCP1.y<i>texte</i>ESC\ Pour le titre de la
fen&ecirc;tre</code></li>
<li><code>ESCP3.y<i>texte</i>ESC\ Pour le titre de
l'ic&ocirc;ne</code></li>
</ul>
La liste compl&egrave;te des s&eacute;quences est donn&eacute;e
dans la page man <code>xwsh(1G)</code>.
<p>Les terminaux d'Irix supportent &eacute;galement les
s&eacute;quences de <code>xterm</code> pour d&eacute;finir
individuellement le titre de la fen&ecirc;tre et de l'ic&ocirc;ne,
mais pas celle pour d&eacute;finir les deux en m&ecirc;me
temps.</p>
<h2><a name="ss6.3">6.3 <code>cmdtool</code> et
<code>shelltool</code> de Sun</a></h2>
<p><code>cmdtool</code> et <code>shelltool</code>
d&eacute;finissent <code>$TERM=sun-cmd</code> et
utilisent&nbsp;:</p>
<ul>
<li><code>ESC]l<i>texte</i>ESC\ Pour le titre de la
fen&ecirc;tre</code></li>
<li><code>ESC]L<i>texte</i>ESC\ Pour le titre de
l'ic&ocirc;ne</code></li>
</ul>
Ce sont des programmes vraiment horribles, il vaut mieux utiliser
autre chose.
<h2><a name="ss6.4">6.4 CDE dtterm</a></h2>
<p><code>dtterm</code> d&eacute;finit <code>$TERM=dtterm</code>. Il
semble qu'il reconnaisse &agrave; la fois les s&eacute;quences
<code>xterm</code> standard ainsi que celles du
<code>cmdtool</code> de Sun (test&eacute; sur Solaris 2.5.1,
Digital Unix 4.0, HP-UX 10.20).</p>
<h2><a name="ss6.5">6.5 HPterm</a></h2>
<p><code>hpterm</code> d&eacute;finit <code>$TERM=hpterm</code> et
utilise les s&eacute;quences suivantes&nbsp;:</p>
<ul>
<li><code>ESC&amp;f0k<i>longueur</i>D<i>texte</i> Donne le texte
<i>texte</i> de longueur <i>longueur</i> comme titre de
fen&ecirc;tre</code></li>
<li><code>ESC&amp;f-1k<i>longueur</i>D<i>texte</i> Donne le texte
<i>texte</i> de longueur <i>longueur</i> comme nom de
l'ic&ocirc;ne</code></li>
</ul>
<p>Un programme C simple pour calculer la longueur et afficher la
bonne s&eacute;quence ressemble &agrave;&nbsp;:</p>
<blockquote>
<pre>
<code>#include &lt;string.h&gt;
int main(int argc, char *argv[])
{
    printf("\033&amp;f0k%dD%s", strlen(argv[1]), argv[1]);
    printf("\033&amp;f-1k%dD%s", strlen(argv[1]), argv[1]);
    return(0);
}
</code>
</pre></blockquote>
<p>On peut &eacute;galement &eacute;crire un shell-script
&eacute;quivalent, utilisant <code>${#string}</code>
(<code>zsh</code>, <code>bash</code>, <code>ksh</code>) ou
<code>${%string}</code> (<code>tcsh)</code> pour obtenir la
longueur d'une cha&icirc;ne. L'exemple suivant est pour
<code>zsh</code>&nbsp;:</p>
<blockquote>
<pre>
<code>case $TERM in
    hpterm)
        str="\e]0;%n@%m: %~\a"
        precmd () {print -Pn "\e&amp;f0k${#str}D${str}"}
        precmd () {print -Pn "\e&amp;f-1k${#str}D${str}"}
        ;;
esac
</code>
</pre></blockquote>
<h2><a name="s7">7. Annexe&nbsp;: exemples dans d'autres
langages</a></h2>
<p>Il peut &ecirc;tre utile d'&eacute;crire des bouts de codes pour
changer le titre de la fen&ecirc;tre &agrave; l'aide des
s&eacute;quences <code>xterm</code>. Voici quelques
exemples&nbsp;:</p>
<h2><a name="ss7.1">7.1 C</a></h2>
<blockquote>
<pre>
<code>#include &lt;stdio.h&gt;

int main (int argc, char *argv[]) {
  printf("%c]0;%s%c", '\033', argv[1], '\007');
  return(0);
}
</code>
</pre></blockquote>
<h2><a name="ss7.2">7.2 Perl</a></h2>
<blockquote>
<pre>
<code>#!/usr/bin/perl
print "\033]0;@ARGV\007";
</code>
</pre></blockquote>
<h2><a name="s8">8. Cr&eacute;dits</a></h2>
<p>Merci aux personnes suivantes pour leur contribution &agrave; ce
document.</p>
<p>Paul D. Smith <code>&lt;psmith@BayNetworks.COM&gt;</code> et
Christophe Martin <code>&lt;cmartin@ipnl.in2p3.fr&gt;</code> ont
tous les deux remarqu&eacute; que j'avais interverti les guillemets
dans le <code>PROMPT_COMMAND</code> pour <code>bash</code>. Les
avoir dans le bon ordre garantit que les variables sont
&eacute;valu&eacute;es dynamiquement.</p>
<p>Paul D. Smith <code>&lt;psmith@BayNetworks.COM&gt;</code> a
propos&eacute; de prot&eacute;ger les caract&egrave;res
non-imprimables dans l'invite de <code>bash</code>.</p>
<p>Christophe Martin <code>&lt;cmartin@ipnl.in2p3.fr&gt;</code> a
donn&eacute; la solution pour ksh.</p>
<p>Keith Turner <code>&lt;keith@silvaco.com&gt;</code> a
donn&eacute; les s&eacute;quences d'&eacute;chappement pour les
<code>cmdtool</code> et <code>shelltool</code> de Sun.</p>
<p>Jean-Albert Ferrez <code>&lt;ferrez@dma.epfl.ch&gt;</code> a
signal&eacute; un manque de coh&eacute;rence dans l'utilisation de
"<code>PWD</code>" et "<code>$PWD</code>", ainsi que de
"<code>\</code>" et "<code>\\</code>".</p>
<p>Bob Ellison <code>&lt;papillo@hpellis.fc.hp.com&gt;</code> et
Jim Searle <code>&lt;jims@broadcom.com&gt;</code> ont test&eacute;
<code>dtterm</code> sur HP-UX.</p>
<p>Teng-Fong Seak <code>&lt;seak@drfc.cad.cea.fr&gt;</code> a
sugg&eacute;r&eacute; l'option <code>-s</code> de
<code>hostname</code>, l'utilisation de <code>`pwd`</code>, et de
<code>echo</code> sous <code>csh</code>.</p>
<p>Trilia <code>&lt;trilia@nmia.com&gt;</code> a
sugg&eacute;r&eacute; les exemples dans d'autres langages.</p>
<p>Brian Miller <code>&lt;bmiller@telstra.com.au&gt;</code> a
fourni les s&eacute;quences d'&eacute;chappement et les exemples
pour <code>hpterm</code>.</p>
<p>Lenny Mastrototaro <code>&lt;lenny@click3x.com&gt;</code> a
expliqu&eacute; l'utilisation des s&eacute;quences xterm dans les
&eacute;mulateurs de terminaux Irix.</p>
<p>Paolo Supino <code>&lt;paolo@init.co.il&gt;</code> a
sugg&eacute;r&eacute; l'utilisation de <code>\\$</code> dans le
prompt de <code>bash</code>.</p>
</body>
</html>