Re: konsole: mauvais fonctionnement de certaines touches ( Home , End )
Patrick Carabin <Patrick.Carabin-spam@pro.tiscali.be> - Thu, Aug 05, 2004:
> Je ne sais pas si le « SHELLOPTS » est correct
> il y a là un mot qui m'inquiète : «emacs»
C'est le mode de saisie de commandes, lorsque tu tapes une commade,
tu peux être dans un mode d'édition de la ligne (ou des lignes) qui
_ressemble_ à emacs, certains shell propose des modes vi.
> Peut-être devrais-je changer la valeur de «SHELLOPTS»
> pour que ça fonctionne de façon normale ? Qu'as-tu?
Les paramètres shell sont beaucoup plus riches que les options que tu
vois dans SHELLOPTS, par exemple on peut dire au shell de faire
certaines actions lorsqu'on presse certaines touches.
Je n'utilise normalement pas bash, mais voici les options SHELLOPTS
que j'ai par défaut :
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history: \
interactive-comments:monitor
> Personnellement, je ne pense pas avoir modifié qqch, mais il y a
> des programmes qui modifient les fichiers sans prévenir
> l'utilisateur...
As-tu des fichiers de configuration bash dans ton home ? As tu
modifié les fichiers de configuration bash dans /etc ?
Chez moi, bash dans xterm fonctionne normalement.
> Le mainteneur de konsole ( contacté en premier ), m'a répondu que
> c'était un problème termcap/terminfo [?] et qu'il fallait
> contacter Debian...:
Oui, j'ai lu sa réponse la première fois. Je ne suis pas sûr du tout
que ce soit le cas, puisque tu utilise TERM=xterm dans un xterm et que
ça ne fonctionne pas alors que chez moi ça fonctionne.
> Après installation de xterm, j'ai tapé « xterm » et l'écran dans
> lequel je me retrouve fonctionne comme konsole ( Home et End ne
> fonctionnent pas, l'écran explose en rouge... )
Tu constates par toi-même que le problème dépasse konsole/xterm,
c'est un problème de ton shell.
Si tu souhaites continuer les investigations, essaie avec un autre
shell (par exemple tcsh, csh, ksh, ou zsh).
Pour info, la valeur de TERM est ajustée par le terminal X que tu
utilises pour refléter le type de terminal qu'il émule aux yeux des
applications qui fonctionnent dedans (par débaut bash).
Lorsque tu presses la touche "Home" sous X sur un xterm, c'est xterm
qui comprend que la touche X Home a été pressée et décide de simuler un
événement au niveau du terminal qu'il émule, il peut par exemple
décider d'envoyer la touche "SuperToucheDeLaMort" à bash si le terminal
utilisé dispose d'une telle touche. En général, les terminaux, et en
particulier le terminal TERM=xterm, disposent d'une touche Home eux
aussi.
Ensuite intervient la base termcap/terminfo (termcap est l'ancien
nom, et terminfo la nouvelle structure qui remplace termcap) qui
fournit la séquence d'octets qui sert à interagir avec un terminal :
pour "Home" dans le terminal "xterm", il faut envoyer les octets 0x1b,
0x5b, 0x48, c'est à dire les caractère échappement, "[", et "H".
Ensuite l'application qui reçoit ces caractères va chercher dans la
base à quoi correspond cette séquence, et interpréter la séquence.
Si au lieu de bash tu lances "cat", tu verras la séquence à l'écran
interprétée par cat, qui n'interprète pas Home.
J'espère que ça t'aidera à comprendre.
--
Loïc Minier <lool@dooz.org>
Reply to: