Le lundi 31 mai, à 16h23 (+0200), Patrick Begou a écrit :
> Je suis sous Red-Hat 5.2 avec X11. La touche Backspace fait tres bien
> son travail dans les xterms mais ne fonctionne pas correctement
> avec ftp (dans un xterm) ni netscape communicator....
Essaye ça :
echo <control>-V <backspace> | od -c
et tu verras la séquence ASCII engendrée par ta touche backspace. Tu
peux faire de même pour la touche delete ou une autre touche :
\b = BS
177 = DEL
033 = ESC
(cf man ascii).
Fais ensuite dans ton xterm
stty -a | grep erase
pour voir quel est le caractère qui permet d'effacer le dernier
caractère entré :
^H = BS
^? = DEL
(toujours man ascii : la touche contrôle, notée « ^ » te fait passer à
la colonne d'en face). Le caractère marqué comme « erase » sera
interprété par le noyau comme caractère d'effacement du dernier
caractère rentré, du moins si le terminal est en mode canonique. Les
programmes ayant une interface un peu subtile (bash est plus subtile que
ftp) n'utilisent pas le mode canonique et ils gèrent ça eux mêmes.
Tu peux aussi lancer xev pour voir si ta touche sous X produit le keysym
Delete ou le keysym BackSpace.
Tu peux modifier la traduction des touches à plusieurs niveaux :
- La traduction touche -> keysym est faite par le serveur X, ça se
règle avec xmodmap.
- La traduction keysym -> séquence ASCII est faite par xterm, ça se
règle par la ressource backarrowKey de xterm.
- La traduction séquence ASCII -> erase est faite par le pilote de
terminal du noyau, ça se règle avec stty ou la ressource ttyModes de
xterm.
Pour ce qui est de Netscape, je n'ai pas trouvé la page de man. Je
suppose que la seule solution est de lui envoyer le keysym qu'il veut.
BackSpace pour effacer le caractère derrière le curseur, Delete pour
celui qui est devant. Tu n'as plus qu'à te mettre une touche BackSpace
avec xmodmap...
Au fait, mon clavier Sun a, au dessus de la touche Return, une touche
BackSpace _et_ une touche Delete. Ça peut être pratique des fois.
--
Edgar Bonet Orozco
Lab. Louis Néel -- CNRS Tel : +33 476-88-90-89
BP 166 Fax : +33 476-88-11-91
38042 Grenoble cedex 9 e-mail : bonet@???