OVH Cloud OVH Cloud

Clavier

24 réponses
Avatar
Stéphane Witzmann
Bonsoir

J'ai remarqué que, sous FreeBSD, la touche "suppr" produit, sous
xterm/konsole ou en mode console, des hiéroglyphes immondes (en fait un ~),
bref, rien de ce que l'on voudrait que ce soit. Parallèlement, cette même
touche fonctionne "normalement" sous Linux Slackware (je sors...).
S'agit-il d'un mauvais bind dans un fichier de configuration du shell ou
alors d'un problème plus profond ? Comment peut-on y remèdier ?

Au passage, j'ai essayé NetBSD il y a peu, et j'avais un problème similaire,
mais avec plus de touches (pgup, pgdown, certaines flèches...). Ce n'est
effectivement pas user-friendly, mais pas trop administrator-friendly
non-plus. Là aussi, comment faire pour que celà fonctionne "normalement" ?

Merci d'avance.

S.W.

10 réponses

1 2 3
Avatar
Olivier Cherrier
In article <3ff4c09a$0$7129$, Stéphane Witzmann wrote:
J'ai remarqué que, sous FreeBSD, la touche "suppr" produit, sous
xterm/konsole ou en mode console, des hiéroglyphes immondes (en fait un ~),
bref, rien de ce que l'on voudrait que ce soit. Parallèlement, cette même
touche fonctionne "normalement" sous Linux Slackware (je sors...).
S'agit-il d'un mauvais bind dans un fichier de configuration du shell ou
alors d'un problème plus profond ? Comment peut-on y remèdier ?

Au passage, j'ai essayé NetBSD il y a peu, et j'avais un problème similaire,
mais avec plus de touches (pgup, pgdown, certaines flèches...). Ce n'est
effectivement pas user-friendly, mais pas trop administrator-friendly
non-plus. Là aussi, comment faire pour que celà fonctionne "normalement" ?


Mais, à quoi servent toutes ces touches ?
Solution : prendre une tronçonneuse et couper le clavier entre la touche
'enter' et 'insert' ... et puis, jeter la partie de droite ...

Avatar
manu
Stéphane Witzmann wrote:

J'ai remarqué que, sous FreeBSD, la touche "suppr" produit, sous
xterm/konsole ou en mode console, des hiéroglyphes immondes (en fait un ~),
bref, rien de ce que l'on voudrait que ce soit. Parallèlement, cette même
touche fonctionne "normalement" sous Linux Slackware (je sors...).
S'agit-il d'un mauvais bind dans un fichier de configuration du shell ou
alors d'un problème plus profond ? Comment peut-on y remèdier ?


Essaye ca:
stty erase <appuie sur backspace><retrun>
Si ca ne suffit pas, il y a peut être une definition de termcap à
corriger, c'est plus compliqué.

Au passage, j'ai essayé NetBSD il y a peu, et j'avais un problème similaire,
mais avec plus de touches (pgup, pgdown, certaines flèches...). Ce n'est
effectivement pas user-friendly, mais pas trop administrator-friendly
non-plus. Là aussi, comment faire pour que celà fonctionne "normalement" ?


Comme je l'explique page 57 de mon bouquin sur BSD: set -o emacs en ksh
et tu as les touches flechées.

--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3


Avatar
Karim Belbachir
On 2004-01-02, Stéphane Witzmann wrote:
Bonsoir

J'ai remarqué que, sous FreeBSD, la touche "suppr" produit, sous
xterm/konsole ou en mode console, des hiéroglyphes immondes (en fait un ~),
bref, rien de ce que l'on voudrait que ce soit. Parallèlement, cette même
touche fonctionne "normalement" sous Linux Slackware (je sors...).
S'agit-il d'un mauvais bind dans un fichier de configuration du shell ou
alors d'un problème plus profond ? Comment peut-on y remèdier ?


Sous xterm, la touche suppr produit la séquence de 4 caractères: ^[[3~
comme tu peux le voir en lançant cat -v (le premier ^[ est en fait un
seul caractère, ESC). Quand il reçoit ^[[3, ksh reçoit le caractère
ESC et donc cherche si une commande est attachée à cette séquence de
caractères. Comme par défaut, aucune n'est attaché, il produit un bip.
Ensuite, il affiche ~ sans traitement. Malheureusement, ksh n'est pas
capable de faire un "bind" sur plus de 3 caractères. Voilà pourquoi,
sous xterm, il est impossible de définir la touche suppr de manière
simple. J'imagine que bash n'a pas cette limitation et que cela explique
pourquoi tu n'as jamais eu ce problème sous Linux.

--
Karim Belbachir


Avatar
Laurent Lefevre
Karim Belbachir writes:

simple. J'imagine que bash n'a pas cette limitation et que cela explique
pourquoi tu n'as jamais eu ce problème sous Linux.


C'est ce qu'il y a de bien avec les unix gratuits, ils sont fournis
avec un shell avec lequel on ne peut rien faire.
Et quand il y a X, on a droit à un wm avec lequel on ne peut rien
faire non plus....

--
Laurent

Avatar
Stéphane Witzmann
Olivier Cherrier wrote:

In article <3ff4c09a$0$7129$, Stéphane Witzmann
wrote:
J'ai remarqué que, sous FreeBSD, la touche "suppr" produit, sous
xterm/konsole ou en mode console, des hiéroglyphes immondes (en fait un
~), bref, rien de ce que l'on voudrait que ce soit. Parallèlement, cette
même touche fonctionne "normalement" sous Linux Slackware (je sors...).
S'agit-il d'un mauvais bind dans un fichier de configuration du shell ou
alors d'un problème plus profond ? Comment peut-on y remèdier ?

Au passage, j'ai essayé NetBSD il y a peu, et j'avais un problème
similaire, mais avec plus de touches (pgup, pgdown, certaines
flèches...). Ce n'est effectivement pas user-friendly, mais pas trop
administrator-friendly non-plus. Là aussi, comment faire pour que celà
fonctionne "normalement" ?


Mais, à quoi servent toutes ces touches ?
Solution : prendre une tronçonneuse et couper le clavier entre la touche
'enter' et 'insert' ... et puis, jeter la partie de droite ...


Je peux pas, j'ai déjà eu à racheter un clavier la semaine dernière après
tentative de tronçonnage des touches Win****. Et puis, le pavé numérique
sert à jouer à Q3A, Wolfenstein...


Avatar
manu
Emmanuel Dreyfus wrote:

Essaye ca:
stty erase <appuie sur backspace><retrun>
Si ca ne suffit pas, il y a peut être une definition de termcap à
corriger, c'est plus compliqué.


Bon, là j'ai un peu mélangé un problème de X et un problème de pas X.

Comme Karim Belbachir le fait remarquer, le problème est du à
l'incapacité de ksh à aliaser plus de 3 caractères.

Un bind -m '^[[3~'='^H' fait presque l'affaire: ^[[3 est aliasé en
backspace, le caractère précédent est donc effacé, puis remplacé par un
~, qui lui n'est pas aliasé puisque c'est le 4eme caractère et que ksh
s'arrete à 3.

Une solution que je viens de tester, qui fonctionne sur NetBSD avec le
ksh livré d'origine, c'est tout simplement de remapper le backspace sur
le caractère ^H au niveau du serveur X:

xmodmap -e "keysym Delete = 0x08"

Il suffit de lancer cette commande magique une fois par session X. Les
fichiers d'initialisations de X via xinit ou startx semblent le bon
endroit.

Bon, ca marche mais je sens que je l'aurai oublié le jour où j'en aurai
besoin. Faudra que je pense à caser ce truc quelque part dans une
eventuelle future seconde edition de mon bouquin pour pouvoir le
retrouver.

La grande question que je me pose, c'est pourquoi ce caractère ^[[3~ est
généré au lieu d'un ^H. Quelqu'un sait?

--
Emmanuel Dreyfus
Un bouquin en français sur BSD:
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3


Avatar
Laurent Lefevre
(Emmanuel Dreyfus) writes:

xmodmap -e "keysym Delete = 0x08"

Il suffit de lancer cette commande magique une fois par session X. Les
fichiers d'initialisations de X via xinit ou startx semblent le bon
endroit.


Une solution propre pourrait être de creer $HOME/.Xmodmap.new contenant
la ligne:

keysym Delete = 0x08

et de placer l'appel du fichier dans son .xinitrc :

usermodmap=$HOME/.Xmodmap.new

--
Laurent

Avatar
Stéphane Witzmann
Laurent Lefevre wrote:

(Emmanuel Dreyfus) writes:

xmodmap -e "keysym Delete = 0x08"

Il suffit de lancer cette commande magique une fois par session X. Les
fichiers d'initialisations de X via xinit ou startx semblent le bon
endroit.


Une solution propre pourrait être de creer $HOME/.Xmodmap.new contenant
la ligne:

keysym Delete = 0x08

et de placer l'appel du fichier dans son .xinitrc :

usermodmap=$HOME/.Xmodmap.new



Je viens de tester ça (sous FreeBSD-CURRENT). Effectivement, le caractère
"suppr" produit un backspace dans konsole. Comment aurait-il fallu faire
pour avoir le "vrai" suppr (suppression de ce qu'il y a devant, pas
derrière) ?

D'autre part, cette solution n'est pas satisfaisante car, bien qu'elle fasse
marcher konsole (et probablement xterm par la même occasion), la touche
"suppr" ne fonctionne plus sous les autres applications X (j'ai testé sous
KWrite).


Avatar
manu
Laurent Lefevre wrote:

Une solution propre pourrait être de creer $HOME/.Xmodmap.new contenant
la ligne:

keysym Delete = 0x08

et de placer l'appel du fichier dans son .xinitrc :

usermodmap=$HOME/.Xmodmap.new


Oui, sauf que comme tous les usagers vont vouloir ce reglage, il n'y a
pas vraient d'interet à ne pas le rendre global.

--
Emmanuel Dreyfus
Publicité subliminale: achetez ce livre!
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3


Avatar
manu
Stéphane Witzmann wrote:

D'autre part, cette solution n'est pas satisfaisante car, bien qu'elle fasse
marcher konsole (et probablement xterm par la même occasion), la touche
"suppr" ne fonctionne plus sous les autres applications X (j'ai testé sous
KWrite).


Ca donne quoi?

--
Emmanuel Dreyfus
Un bouquin en français sur BSD:
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3


1 2 3