<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook V3.1-Based Variant V1.0//EN">
<book lang="fr">
<bookinfo>
<title>Le manuel de Konsole</title>
<authorgroup>
<author>
<surname>Lars Dölle,
</surname><affiliation>
<address><email><ulink url="mailto:lars.doelle@on-line.de">lars.doelle@on-line.de</ulink></email></address>
</affiliation>
</author>
</authorgroup>
<date>Version 0.0.1, 06 Jun 1998</date>
<releaseinfo><!-- Traduction chdioux@club-internet.fr 03/02/2000 --></releaseinfo>
<revhistory>
<revision>
<revnumber></revnumber>
<date></date>
</revision>
</revhistory>
<abstract>
<para>Ce document décrit Konsole version 0.8.6.
Veuillez noter que ce document est en cours de rédaction.</para>
<para>(Traduction française&nbsp;: Ch. Dioux, février 2000)</para>
<para></para><!-- Merge this with the previous paragraph; it comes from <META NAME="description" CONTENT="..."> --></abstract>
</bookinfo>
<chapter id="Introduction">
<title>Introduction</title>
<para>Konsole est un émulateur de terminal X pour l'environnement de bureau K.</para>
<para>Dans le contexte d'une interface graphique pour l'utilisateur,
le but d'un émulateur de terminal est de fournir un dispositif
d'affichage aux applications initialement destinées à fonctionner sur
un ordinateur auquel est attaché un terminal en mode caractères.</para>
<para> Pour donner une rapide classification des terminaux X libres, il y en
a deux principales sortes&nbsp;: xterm, qui est l'original, écrit un
mois ou deux avant X lui-même, et xvt, un clone léger sur lequel sont
basés la plupart des autres clones disponibles (notamment
eterm). Après une dizaine d'années, Konsole est le premier à être
entièrement réécrit. Alors que xterm a été compliqué à l'extrême
pendant ce temps (sa documentation (README) commence par les mots
"Abandonnez tout espoir, vous qui entrez ici"), Konsole offre un
nouveau départ, utilisant les technologies et les conceptions de X les
plus modernes.</para>
</chapter>
<chapter id="Apercu">
<title>Aperçu</title>

<para>Lorsqu'elle est invoquée, Konsole lance l'application cliente
(qui, par défaut, est le shell) et affiche ses sorties dans la fenêtre
tout en lui transmettant les appuis de touches et les clics de souris.</para>

<para>Ainsi, l'essentiel du comportement de Konsole est véritablement
contrôlé par l'application qui fonctionne en son sein. Konsole n'y
ajoute que quelques fonctionnalités spéciales. Ces fonctionnalités
supplémentaires sont suffisamment habituelles pour que l'essentiel de
la description qui va suivre puisse s'appliquer également à tout bon
émulateur de terminal.</para>

<variablelist>
<varlistentry>
<term>Tampon d'historique</term>
<listitem>

<para> Le texte qui sort de l'écran est conservé dans un tampon
d'historique afin de pouvoir être consulté plus tard. A l'heure
actuelle, au maximum 100 lignes sont conservées. Bien qu'il soit 
impossible de modifier le texte qui a été stocké dans le tampon, on peut
le consulter et le recopier partiellement ou entièrement dans le
presse-papier.</para>

</listitem>
</varlistentry>
<varlistentry>
<term>Clavier</term>
<listitem>
<para>Les combinaisons "majuscule-page supérieure", "majuscule-page
inférieure", "majuscule-flèche haut" et "majuscule-flèche bas"
permettent de faire défiler le contenu du tampon d'historique. Toutes
les autres frappes de touches sont transmises à l'application qui
fonctionne dans l'émulateur. Notez qu'il peut s'agir de touches
mortes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Souris</term>
<listitem>
<para>Une souris à trois boutons vous sera nécessaire pour utiliser pleinement le terminal. Les boutons ont différentes fonctions&nbsp;:</para>
<para><variablelist>
<varlistentry>
<term>Bouton de gauche</term>
<listitem>
<para>
Un clic sur le bouton de gauche est transmis en tant qu'événement à
l'application qui fonctionne dans l'émulateur si elle supporte cette
fonction. Si un programme est capable de réagir aux clics de souris,
Konsole l'indique en donnant au curseur la forme d'une flèche. Dans le
cas contraire, un curseur en forme de barre verticale est
affiché.</para>
<para>
Conserver le bouton de gauche enfoncé en déplaçant la souris dans
l'écran lorsqu'une application ne gérant pas la souris fonctionne dans
le terminal marquera une région du texte. Le texte ainsi marqué sera
affiché en vidéo inversée. Dès que le bouton est relâché, le texte
marqué est copié dans le presse-papier pour utilisation ultérieure
dans Konsole ou dans une autre application.</para>
<para>
Normalement, les caractères "nouvelle ligne" sont insérés à la fin de
chaque ligne sélectionnée. C'est habituellement mieux pour
copier-coller du code source ou les sorties d'une commande
particulière. Pour du texte ordinaire, les sauts de ligne ne sont
généralement pas importants. Quelqu'un peut souhaiter que le texte
prenne la forme d'une simple suite de caractères qui sera
automatiquement reformatée lorsqu'elle sera copiée dans une autre
application. Pour sélectionner du texte de cette manière, enfoncez la
touche "contrôle" tout en sélectionnant normalement.</para>
<para>
Dès que le bord supérieur ou inférieur de la zone de texte est
atteint, Konsole le fait défiler vers le haut ou vers le bas,
affichant ainsi le cas échéant le contenu du tampon d'historique. Le
défilement cesse dès que vous cessez de déplacer la souris.</para>
<para>
Dès que vous relâchez la souris, Konsole essaye de maintenir la
sélection visible en la conservant en vidéo inversée. La zone ainsi
marquée revient à un affichage normal dès que le contenu du
presse-papier change, que le texte dans la zone marquée est modifié ou
que vous cliquez sur le bouton gauche.</para>

<para>
Pour marquer du texte dans une application qui gère les événements de
souris, il faut presser la touche "majuscule" pendant qu'on clique.</para>

</listitem>
</varlistentry>
<varlistentry>
<term>Bouton central</term>
<listitem>
<para>Appuyer sur le bouton du milieu copie le texte présent dans le
presse-papier. Ceci fonctionnera exactement comme si le contenu du
presse-papier était tapé au clavier, et l'application en cours de
fonctionnement dans l'émulateur réagira en conséquence.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Bouton de droite</term>
<listitem>
<para>
Le bouton de droite fait apparaître le menu de configuration. De plus,
les touches "majuscules" et "contrôle" peuvent être utilisées en
combinaison avec ce bouton pour accéder à d'autres parties du menu.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Sessions</term>
<listitem>
<para>
Konsole permet de lancer plusieurs sessions (programmes) à la fois. De
nouvelles sessions peuvent être lancées en utilisant le menu
"Fichier". On peut changer de session grâce au menu "Sessions". Ces
deux menus sont également disponibles avec le bouton de droite de la
souris, avec les touches "majuscules" et "contrôle" comme
modificateur.</para>
<para>
Le menu "Sessions" peut être librement configuré en fonction des
besoins locaux. (Il manque encore une section à ce sujet dans cette
documentation, consultez /opt/kde/share/apps/Konsole pour avoir
quelques exemples.)</para>
</listitem>
</varlistentry>
</variablelist>

</chapter>
<chapter id="Configuration">
<title>Configuration</title>
<para>
Le menu "options" permet de contrôler l'essentiel de l'apparence de
Konsole. On peut l'atteindre soit en utilisant la barre de menu, soit
en cliquant dans la fenêtre de Konsole avec le bouton de droite de la
souris.</para>
<variablelist>
<varlistentry>
<term>Barre de menu</term>
<listitem>
<para>
Lorsque cette option est cochée, une barre de menu apparaît au sommet
de la fenêtre. A la différence du comportement habituel, la barre de
menu ne comporte pas de raccourcis-clavier afin d'éviter de rendre
certaines combinaisons de touches inaccessibles à l'application
cliente.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Cadre</term>
<listitem>
<para>Détermine l'affichage ou non d'une bordure.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ascenseur</term>
<listitem>
<para>
L'ascenseur offre un autre moyen de contrôler le tampon
d'historique. Ne confondez pas cette fonctionnalité avec le défilement
à l'intérieur de l'application cliente, même si souvent elle peut (et
doit) y ressembler.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Police</term>
<listitem>
<para> Le menu "police" permet deux ajustements complètement
différents. D'abord une collection de police de différentes tailles,
afin de choisir une police qui convienne à la fois à la résolution et
à la taille de la fenêtre. Ensuite, une police "Linux"
additionnelle, qui diffère des précédentes par son encodage. Il est
nécessaire d'utiliser cette police lorsqu'on lance une émulation de
console Linux.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Taille</term>
<listitem>
<para>
Bien que la taille de la fenêtre soit librement ajustable par les
moyens habituels, on peut parfois souhaiter fixer la taille de la
fenêtre de la console pour se conformer aux exigences des vieux
programmes qui ne prenaient pas en compte cette possibilité.
Le menu "taille" présente les tailles de consoles les plus courantes.
Si aucune d'elles ne convient, redimensionnez l'écran selon vos
besoins. Lorsque la taille est modifiée, Konsole l'affiche dans le
titre pour vous aider à l'ajuster.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Modèle</term>
<listitem>
<para>Cette option permet de choisir un modèle de couleurs. (Il manque
une section détaillant cela, consultez /opt/kde/share/apps/Konsole
pour voir quelques exemples.)</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Pour des raisons historiques, la touche d'effacement arrière
(backspace) ne va pas renvoyer le code CTRL-H sous Linux. (La seule
application que je connaisse qui dépende véritablement de ce
comportement spécial est "emacs", dans lequel CTRL-H signifie
"aide"). Bien que chaque application soit configurable, et tout un chacun
peut  configurer emacs afin qu'il accepte F1 comme
touche d'aide, cette utilisation inhabituelle des codes du clavier a
été entérinée. Ne vous inquiétez pas de cela, vérifiez simplement que
l'option
<itemizedlist>
<listitem>
<para>BS envoie DEL</para>
</listitem>
</itemizedlist>
est cochée.</para>
<para>Dans ce cas, Konsole envoie le caractère DEL (hex 7F) lorsqu'on appuie
sur la touche d'effacement arrière à la place du caractère normal BS
(hex 08). La touche d'effacement normal (delete) renvoie aussi quelque
chose de différent du caractère DEL dans ce cas.
</para>
<para>Toutes ces indications prennent effet immédiatement mais
seulement pour la session courante. Pour rendre les ajustements
permanents, cliquez sur l'option&nbsp;:
<itemizedlist>
<listitem>
<para>Enregistrer les options</para>
</listitem>
</itemizedlist>
</para>
</chapter>
<chapter id="Installation">
<title>Installation</title>
<para>Konsole fait actuellement partie du
paquetage kdenonbeta et doit être compilé et installé comme indiqué
dans le répertoire principal de ce paquetage.</para>
<para>Si vous rencontrez des difficultés en faisant cela, merci de
vous référer à la rubrique <link linkend="probPack">problèmes
d'installation</link> ci-dessous.</para>
</chapter>
<chapter id="BoguesEtFAQ">
<title>Bogues et FAQ</title>
<para>Avant d'envoyer des rapports de bogue, merci de vérifier dans un
autre terminal X s'il s'agit ou pas d'un bogue spécifique à "Konsole".</para>
<sect1 id="probPack">
<title>Problèmes liés à l'installation</title>
<para>
Konsole requiert des polices spécifiques qui sont livrées avec sa
distribution mais qui ne sont pas installées du fait que les auteurs
ont préféré ne pas exiger les privilèges de superutilisateur durant le
processus d'installation. Vous devrez donc le faire
manuellement. Lisez le fichier README.linux.console pour plus de
détails.</para>
</sect1>
<sect1 id="probAppl">
<title>Problèmes liés à l'application</title>
<para>Quelques programmes rencontrent des problèmes lorsqu'ils sont
lancés dans une console X.</para>
<sect2>
<title>MC (midnight commander 4.1.21)</title>
<para><itemizedlist>
<listitem>
<para>Ce n'est que lorsque l'émulateur s'appelle "xterm" que mc réagit
aux événements de redimensionnement (avant qu'une touche soit pressée)
et aux événements de souris (xterm). Notez que les événements de
souris dans xterm ne sont pas du tout spécifiques, c'est à dire que la
console Linux les produit aussi.
</para>
</listitem>
<listitem>
<para> Après CTRL-O (qui affiche l'écran secondaire) mc ne propage
pas les événements de redimensionnement à son sous-shell. Essayez avec
xterm, ou n'importe quel autre émulateur de terminal.
</para>
</listitem>
<listitem>
<para> Il semblerait qu'il fasse des choses plus étranges encore avec
son sous-shell. Quand on redimensionne la fenêtre alors que le paneau
de mc est affiché, l'écran secondaire en est quelque peu affecté (par
des prompts réels ou fictifs). C'est encore pire quand une application
tourne pendant qu'on le fait.
</para>
</listitem>
<listitem>
<para> Le moins qu'il fasse est d'envoyer des nouvelles lignes, mais souvent
il se passe encore plus de choses lorsqu'on redimensionne alors que le panneau
est affiché.
</para>
</listitem>
<listitem>
<para> En cas de trafic important, il arrive que des parties du texte
soient perdues. Essayez "ripple" dans le répertoire de test jusqu'à ce
que vous remarquiez une chute. Bien que j'aie pu reproduire le bogue avec
kvt, rxvt et xterm, et vérifié aussi que les données sont déjà perdues
en read(3), il se pourrait que je sois tombé sur quelque chose de
différent dans ce cas. Puisque je n'ai réussi à reproduire cet effet
qu'en lançant mc, je suis à peu près certain que c'est le sous-shell
de mc qui en est la cause.
</para>
</listitem>
<listitem>
<para> Le redimensionnement ne fonctionne pas bien dans l'émulation de
console Linux. En particulier, mc ne répercute pas l'information de
redimensionnement à son sous-shell. Il n'est plus non plus sensible à
la souris.
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2>
<title>Vim 4.6</title>
<para><itemizedlist>
<listitem>
<para> Envoie une nouvelle ligne en se fermant, produisant ainsi une
image étrange sur l'écran secondaire lorsqu'il est lancé avec mc comme
éditeur par défaut.
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2>
<title>dselect (frontal du gestionnaire de paquetages Debian)&nbsp;:</title>
<para><itemizedlist>
<listitem>
<para> Présume un arrière-plan noir. Il faut donc utiliser le modèle
de couleur "Blanc-sur-noir" lorsqu'on l'utilise. Lorsqu'il est lancé
dans l'émulateur de console linux, il n'accepte pas bien les
événements de redimensionnement (segfault).
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
<sect1 id="terminfo">
<title>Broken Termcap et Bases de données Terminfo</title>
<para>Veuillez noter que beaucoup d'applications (celles qui utilisent
ncurses) basent leur connaissance de la manière dont elles doivent
communiquer avec un émulateur de terminal sur l'information contenue
dans une base de données. Ceci peut ne pas fonctionner. Ici aussi,
vous rencontreriez problablement les mêmes problèmes avec d'autres
émulateurs.</para>
<para>Ainsi, par exemple &nbsp;:
<itemizedlist>
<listitem>
<para>debian 1.3.1 (Bo) oublie l'entrée kdch1, ce qui fait que la
touche DELETE semble ne pas fonctionner correctement. D'autres touches
pourraient également manquer.
</para>
</listitem>
<listitem>
<para>la distribution mc 4.1.21 contient un xterm.ti avec des entrées hpa,
vpa fautives (<literal remap="tt">[</literal> manque après <literal
remap="tt">ESC</literal>). Plus étrange encore, xterm fonctionne
pourtant grâce à une caractéristique qui accepte ces séquences
erronées dans certaines circonstances (<literal remap="tt">ESC Pn
C</literal> est considéré comme <literal remap="tt">ESC [ Pn
C</literal>, où <literal remap="tt">C</literal> n'est pas un
chiffre).
</para>
</listitem>
<listitem>
<para>Pour cette raison, j'ai inclus un xterm.ti. (A compiler avec tic).</para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 ID="touches">
<title>Problèmes avec les touches "effacement arrière" (BACKSPACE), "effacement" (DELETE) et similaires.</title>
<para> Il était une fois un terminal qui n'avait pas de touche
d'effacement. Ce problème a été perpétué avec Linux et est toujours un
éternel cauchemar. Il a été résolu séparément par tous les programmes
qui avaient besoin de ces touches et qui ont fini par devenir
configurables à volonté, ce qui a pour résultat qu'il sont souvent mal
configurés au démarrage. Konsole ne fait pas exception.</para>
<para>Konsole envoie DEL (0x7F) pour la touche BS et ESC[3 pour la
touche DEL si l'option "BS envoie DEL" est activée, et ainsi se
comporte comme une console Linux typique. Ctrl-H (0x08) est alors
laissé à la disposition des applications, par exemple l'aide de emacs
dans sa configuration habituelle.</para>
<para>Quand cette option n'est pas validée, la touche BS envoie BS (0x08) et
la touche DEL envoie DEL (0x7f), comme dans les normes VT100s and IBM
PCs do.</para>
<para>(Comme tout programme peut être configuré de telle sorte que
BS=BS et que DEL=DEL, et que le pauvre terminal sans touche
d'effacement n'existe plus aujourd'hui que dans la légende, l'auteur se
demande bien pourquoi on utilise encore toutes ces complications à propos de
BS.)</para>
<para>ctrl-&circ; == ctrl- == ctrl-` ==
RS == 0x1e ne peut pas être tapé avec une configuration de clavier européenne,
puisque ces trois caractères de base sont des préfixes (c'est à dire qu'ils
peuvent être suivis d'un autre caractère). X11 est connu pour posséder de
telles touches mortes.</para>

</sect1>
<sect1 ID="couleurs">
<title>Modèles de couleurs</title>
<para>A la suite d'une montagne de plaintes à propos des couleurs,
Konsole offre à présent des modèles de couleurs configurables. Il
reste à écrire un document qui expliquera tout cela.</para>
</sect1>
<sect1 ID="polices">
<title>Polices</title>
<para>(Légèrement dépassé, vérifiez dans README.linux.console)</para>
<para><itemizedlist>
<listitem>
<para>Les polices VGA utilisent un codage différent des autres, et, pour
cette raison, n'afficheront pas les caractères graphiques ou nationaux
lorsqu'elles sont utilisées avec TERM=xterm. Elles sont plus adaptées
à dos(1) et fonctionneront aussi avec TERM=linux. Veuillez noter que
l'utilisation de ces polices dans Konsole est encore expérimentale.</para>
</listitem>
<listitem>
<para> Il apparaît que les polices autres que celles que j'ai incluses ne sont pas utilisables pour les applications de terminaux. Ceci n'est pas tant du à leur pitch variable (que j'ai implanté de manière expérimentale) qu'à leur absence de jeu graphique. Essayez xfd(1x) pour étudier ceci de plus près.
</para>
</listitem>
<listitem>
<para> D'une manière générale, il semble qu'il manque une famille de polices
pour terminaux. Si vous connaissez une famille de polices
proportionnelles pour terminaux, merci de m'envoyer un mot.</para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 ID="securite">
<title>Sécurité</title>
<para>Bien que Konsole puisse être installé suid-root, il n'est pas prévu
pour cela. Ne le faites pas. Konsole abandonne les privilèges juste
après avoir été lancé. Le clavier sécurisé (X11) n'est pas mis en
oeuvre, ce qui signifie que d'autres applications peuvent récupérer
les frappes de touches en provenance de Konsole si elles le
souhaitent. Attention aux chevaux de Troie.</para>

<para>Konsole n'utilise pas fchown(2) sur le pseudo tty. Cela signifie
que, dans un environnement multi-utilisateurs quelqu'un peut espionner
votre session root. Avec les noyaux Linux récents (2.1/2.2), Konsole
interdira de telles tentatives. Pour vérifier si c'est possible ou
non, essayez ceci à l'intérieur de Konsole&nbsp;:</para>
<para><programlisting>    $ tty
    /dev/ttyp3</programlisting>
</para>
<para>Sous l'identité d'un autre utilisateur (non-root), essayez&nbsp;:</para>
<para><literal remap="verb">    $ echo 'test' &gt; /dev/ttyp3</literal></para>
<para>Si vous recevez la chaîne dans la session Konsole, cette session n'est
pas sûre.</para>
<para> Pour les autres UNIX, le trou de sécurité sera bientôt refermé,
mais la solution nécessitera que Konsole soit installé suid/root. Je
sais bien que cela ne sera pas possible sur tous les systèmes, mais je
n'y peux rien.</para>
</sect1>
<sect1 ID="bogues">
<title>Bogues connus (Konsole-0.8.6)</title>
<para><itemizedlist>
<listitem>
<para> Les touches du pavé numérique n'ont aucun effet si numlock
n'est pas activé. Ceci reflète exactement ce que je reçois de
Qt. Toutes les touches arrivent sous la forme &num;ffff. Pensez que
cela vient du filtre d'événements que j'ai du installer pour
intercepter les frappes de touches.</para>
</listitem>
<listitem>
<para> Consultez également TODO pour les bogues dus à des fonctions
manquantes.</para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 ID="jamais">
<title>Fonctions qui ne seront pas mises en oeuvre.</title>
<para><variablelist>
<varlistentry>
<term>Entrées utmp.</term>
<listitem>
<para>Utmp est une base de données qui indique qui est actuellement logué.
Elle est utilisée par des programmes comme who, finger, wall, talk,
etc. pour lister les utilisateurs présents sur un système et pour les
contacter.</para>
<para>Ca n'aurait aucun sens de l'utiliser avec un terminal X, puisqu'il
n'existe personne qui pourrait se nommer _le_; terminal, et
à qui on pourrait envoyer des messages.</para>
<para>La bonne solution serait de modifier l'utmp avec le gestionnaire
de session xdm/kdm. Mieux encore, un programme de notification et de
discussion pourrait être lancé automatiquement quand la session X
démarre (ktalk&nbsp;?) afin qu'un canal de communication soit ouvert
avec la personne qui travaille à la console.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>
</chapter>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->







