J'utilise un clavier qwerty modèle réduit très pratique, avec touche
control et meta bien placées. J'ai un fichier modmap qui défini
correctement toutes ces touches. Pour écrire des textes avec des
caractères accentués j'ai pris l'habitude d'utiliser le modificateur
Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la
configuration de xmodmap :
! Mode_shift + e donne "é" par exemple
keycode 26 = e E egrave Egrave
...
! Meta_L est la touche diamand de gauche
keycode 131 = Meta_L
...
! Mode_shift est sur la même touche
keysym Meta_L = Mode_switch Meta_L
...
! OpenBox utilise mod1, utiliser Alt_L pour cela
add mod1 = Alt_L
Bref, mon clavier et moi vivions heureux comme ça depuis des années,
lorsque soudain l'envie me pris d'installer emacs pour apprendre le lisp
(j'utilise vi comme éditeur d'habitude).
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis
sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche
sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
Bon, c'est pas grave, j'ai bien tapper sur Esc.
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il
affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h]
(selon [C-h l]).
Je n'y comprend rien ! J'ai essayé pendant des heures de changer ma
configuration clavier sous X mais rien n'y fait. Quelqu'un peut-il
m'aider à comprendre ce qui se passe entre mon clavier et emacs ?
Informations complémentaires : emacs est la version 21, compilée sans
X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai
essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org,
avec la configuration de xmodmap décrite ci-dessus, en locales C.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
writes:
Bonjour !
J'utilise un clavier qwerty modèle réduit très pratique, avec touche control et meta bien placées. J'ai un fichier modmap qui défini correctement toutes ces touches. Pour écrire des textes avec des caractères accentués j'ai pris l'habitude d'utiliser le modificateur Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la configuration de xmodmap :
! Mode_shift + e donne "é" par exemple keycode 26 = e E egrave Egrave ... ! Meta_L est la touche diamand de gauche keycode 131 = Meta_L ... ! Mode_shift est sur la même touche keysym Meta_L = Mode_switch Meta_L ... ! OpenBox utilise mod1, utiliser Alt_L pour cela add mod1 = Alt_L
Bref, mon clavier et moi vivions heureux comme ça depuis des années, lorsque soudain l'envie me pris d'installer emacs pour apprendre le lisp (j'utilise vi comme éditeur d'habitude).
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a'). Bon, c'est pas grave, j'ai bien tapper sur Esc.
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h] (selon [C-h l]).
Je n'y comprend rien ! J'ai essayé pendant des heures de changer ma configuration clavier sous X mais rien n'y fait. Quelqu'un peut-il m'aider à comprendre ce qui se passe entre mon clavier et emacs ?
Informations complémentaires : emacs est la version 21, compilée sans X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org, avec la configuration de xmodmap décrite ci-dessus, en locales C.
Toute information est bienvenue !
Je crois que les applications peuvent utiliser soit les bits shift, lock, control, mod1, ..., mod5, soit les keysyms comme Meta_L ou Alt_R. Le problème étant que si il n'y a pas synchronization entre les deux, deux applications peuvent sembler avoir un point de vue différent. Tu devrais pouvoir mêtre en concordance les applications qui utilisent les bits avec les applications qui utilisent le keysym en bidouillant ~/.Xmodmap. Tu peux aussi t'aider de xev(1) qui te permet de vérifier les keysyms et bits envoyés avec chaque évènement.
Sinon la correspondance entre les keycodes et les keysyms (lignes keycode) devrait être totalement indépendante de ce problème, pour ce que j'en sais.
J'utilise un clavier qwerty modèle réduit très pratique, avec touche
control et meta bien placées. J'ai un fichier modmap qui défini
correctement toutes ces touches. Pour écrire des textes avec des
caractères accentués j'ai pris l'habitude d'utiliser le modificateur
Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la
configuration de xmodmap :
! Mode_shift + e donne "é" par exemple
keycode 26 = e E egrave Egrave
...
! Meta_L est la touche diamand de gauche
keycode 131 = Meta_L
...
! Mode_shift est sur la même touche
keysym Meta_L = Mode_switch Meta_L
...
! OpenBox utilise mod1, utiliser Alt_L pour cela
add mod1 = Alt_L
Bref, mon clavier et moi vivions heureux comme ça depuis des années,
lorsque soudain l'envie me pris d'installer emacs pour apprendre le lisp
(j'utilise vi comme éditeur d'habitude).
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis
sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche
sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
Bon, c'est pas grave, j'ai bien tapper sur Esc.
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il
affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h]
(selon [C-h l]).
Je n'y comprend rien ! J'ai essayé pendant des heures de changer ma
configuration clavier sous X mais rien n'y fait. Quelqu'un peut-il
m'aider à comprendre ce qui se passe entre mon clavier et emacs ?
Informations complémentaires : emacs est la version 21, compilée sans
X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai
essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org,
avec la configuration de xmodmap décrite ci-dessus, en locales C.
Toute information est bienvenue !
Je crois que les applications peuvent utiliser soit les bits shift,
lock, control, mod1, ..., mod5, soit les keysyms comme Meta_L ou
Alt_R. Le problème étant que si il n'y a pas synchronization entre
les deux, deux applications peuvent sembler avoir un point de vue
différent. Tu devrais pouvoir mêtre en concordance les applications
qui utilisent les bits avec les applications qui utilisent le keysym
en bidouillant ~/.Xmodmap. Tu peux aussi t'aider de xev(1) qui te
permet de vérifier les keysyms et bits envoyés avec chaque évènement.
Sinon la correspondance entre les keycodes et les keysyms (lignes
keycode) devrait être totalement indépendante de ce problème, pour ce
que j'en sais.
J'utilise un clavier qwerty modèle réduit très pratique, avec touche control et meta bien placées. J'ai un fichier modmap qui défini correctement toutes ces touches. Pour écrire des textes avec des caractères accentués j'ai pris l'habitude d'utiliser le modificateur Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la configuration de xmodmap :
! Mode_shift + e donne "é" par exemple keycode 26 = e E egrave Egrave ... ! Meta_L est la touche diamand de gauche keycode 131 = Meta_L ... ! Mode_shift est sur la même touche keysym Meta_L = Mode_switch Meta_L ... ! OpenBox utilise mod1, utiliser Alt_L pour cela add mod1 = Alt_L
Bref, mon clavier et moi vivions heureux comme ça depuis des années, lorsque soudain l'envie me pris d'installer emacs pour apprendre le lisp (j'utilise vi comme éditeur d'habitude).
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a'). Bon, c'est pas grave, j'ai bien tapper sur Esc.
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h] (selon [C-h l]).
Je n'y comprend rien ! J'ai essayé pendant des heures de changer ma configuration clavier sous X mais rien n'y fait. Quelqu'un peut-il m'aider à comprendre ce qui se passe entre mon clavier et emacs ?
Informations complémentaires : emacs est la version 21, compilée sans X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org, avec la configuration de xmodmap décrite ci-dessus, en locales C.
Toute information est bienvenue !
Je crois que les applications peuvent utiliser soit les bits shift, lock, control, mod1, ..., mod5, soit les keysyms comme Meta_L ou Alt_R. Le problème étant que si il n'y a pas synchronization entre les deux, deux applications peuvent sembler avoir un point de vue différent. Tu devrais pouvoir mêtre en concordance les applications qui utilisent les bits avec les applications qui utilisent le keysym en bidouillant ~/.Xmodmap. Tu peux aussi t'aider de xev(1) qui te permet de vérifier les keysyms et bits envoyés avec chaque évènement.
Sinon la correspondance entre les keycodes et les keysyms (lignes keycode) devrait être totalement indépendante de ce problème, pour ce que j'en sais.
Je viens de me rendre compte que le problème n'a rien à voir avec Mode_switch, puisque si je mappe un keysym accentué sur une touche quelconque sans modifier, ou si je copie-colle dans emacs un caractère accentué le comportement d'emacs est le même.
Il s'agit donc d'une question spécifique emacs.
Désolé pour le bruit.
Ceci dit, si quelqu'un connait un bon article ou livre dans lequel le traitement des touches est bien expliqué, je suis prenneur (entre les terminaux, X11, les différents encodages et les bibliothèques style termios...)
Merci.
Je viens de me rendre compte que le problème n'a rien à voir avec
Mode_switch, puisque si je mappe un keysym accentué sur une touche
quelconque sans modifier, ou si je copie-colle dans emacs un caractère
accentué le comportement d'emacs est le même.
Il s'agit donc d'une question spécifique emacs.
Désolé pour le bruit.
Ceci dit, si quelqu'un connait un bon article ou livre dans lequel le
traitement des touches est bien expliqué, je suis prenneur (entre les
terminaux, X11, les différents encodages et les bibliothèques style
termios...)
Je viens de me rendre compte que le problème n'a rien à voir avec Mode_switch, puisque si je mappe un keysym accentué sur une touche quelconque sans modifier, ou si je copie-colle dans emacs un caractère accentué le comportement d'emacs est le même.
Il s'agit donc d'une question spécifique emacs.
Désolé pour le bruit.
Ceci dit, si quelqu'un connait un bon article ou livre dans lequel le traitement des touches est bien expliqué, je suis prenneur (entre les terminaux, X11, les différents encodages et les bibliothèques style termios...)
talon
wrote:
Merci.
Je viens de me rendre compte que le problème n'a rien à voir avec Mode_switch, puisque si je mappe un keysym accentué sur une touche quelconque sans modifier, ou si je copie-colle dans emacs un caractère accentué le comportement d'emacs est le même.
Il s'agit donc d'une question spécifique emacs.
Désolé pour le bruit.
Ceci dit, si quelqu'un connait un bon article ou livre dans lequel le traitement des touches est bien expliqué, je suis prenneur (entre les terminaux, X11, les différents encodages et les bibliothèques style termios...)
Le clavier produit des "scancodes". Le driver du clavier (Linux, etc. ) convertit ces scancodes en keycodes. Xwindow utilise des "keycode", et les convertit en "keysym", c'est là que xmodmap intervient. Sous Linux, la commande loadkeys permet d'accéder aux scancodes et de modifier l'association aux keycodes. Sous FreeBSD il faut carrément hacker le driver. Tu trouveras de l'information sur les scancodes ici: http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html#toc1 et sur le driver Linux ici: http://www.win.tue.nl/~aeb/linux/kbd/ http://www.linuxjournal.com/article/1080 Pour ce qui est de Xwinow c'est trivial, il suffit de jouer avec xmodmap. Sauf qu'il peut être nécessaire de jouer avec les fichiers de définition de clavier /usr/X11R6/lib/X11/xkb/keycodes/xfree86 /usr/X11R6/lib/X11/xkb/symbols/fr par exemple.
--
Michel TALON
rixed@happyleptic.org wrote:
Merci.
Je viens de me rendre compte que le problème n'a rien à voir avec
Mode_switch, puisque si je mappe un keysym accentué sur une touche
quelconque sans modifier, ou si je copie-colle dans emacs un caractère
accentué le comportement d'emacs est le même.
Il s'agit donc d'une question spécifique emacs.
Désolé pour le bruit.
Ceci dit, si quelqu'un connait un bon article ou livre dans lequel le
traitement des touches est bien expliqué, je suis prenneur (entre les
terminaux, X11, les différents encodages et les bibliothèques style
termios...)
Le clavier produit des "scancodes". Le driver du clavier (Linux, etc. )
convertit ces scancodes en keycodes. Xwindow utilise des "keycode", et
les convertit en "keysym", c'est là que xmodmap intervient.
Sous Linux, la commande loadkeys permet d'accéder aux scancodes et de
modifier l'association aux keycodes. Sous FreeBSD il faut carrément
hacker le driver.
Tu trouveras de l'information sur les scancodes ici:
http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html#toc1
et sur le driver Linux ici:
http://www.win.tue.nl/~aeb/linux/kbd/
http://www.linuxjournal.com/article/1080
Pour ce qui est de Xwinow c'est trivial, il suffit de jouer avec
xmodmap. Sauf qu'il peut être nécessaire de jouer avec les fichiers de
définition de clavier
/usr/X11R6/lib/X11/xkb/keycodes/xfree86
/usr/X11R6/lib/X11/xkb/symbols/fr
par exemple.
Je viens de me rendre compte que le problème n'a rien à voir avec Mode_switch, puisque si je mappe un keysym accentué sur une touche quelconque sans modifier, ou si je copie-colle dans emacs un caractère accentué le comportement d'emacs est le même.
Il s'agit donc d'une question spécifique emacs.
Désolé pour le bruit.
Ceci dit, si quelqu'un connait un bon article ou livre dans lequel le traitement des touches est bien expliqué, je suis prenneur (entre les terminaux, X11, les différents encodages et les bibliothèques style termios...)
Le clavier produit des "scancodes". Le driver du clavier (Linux, etc. ) convertit ces scancodes en keycodes. Xwindow utilise des "keycode", et les convertit en "keysym", c'est là que xmodmap intervient. Sous Linux, la commande loadkeys permet d'accéder aux scancodes et de modifier l'association aux keycodes. Sous FreeBSD il faut carrément hacker le driver. Tu trouveras de l'information sur les scancodes ici: http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html#toc1 et sur le driver Linux ici: http://www.win.tue.nl/~aeb/linux/kbd/ http://www.linuxjournal.com/article/1080 Pour ce qui est de Xwinow c'est trivial, il suffit de jouer avec xmodmap. Sauf qu'il peut être nécessaire de jouer avec les fichiers de définition de clavier /usr/X11R6/lib/X11/xkb/keycodes/xfree86 /usr/X11R6/lib/X11/xkb/symbols/fr par exemple.
--
Michel TALON
Paul Gaborit
À (at) 11 Apr 2007 11:53:24 GMT, écrivait (wrote): [... plein de choses sur la configuration X11...]
Informations complémentaires : emacs est la version 21, compilée sans X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org, avec la configuration de xmodmap décrite ci-dessus, en locales C.
Là, j'ai un doute. Comment tourne emacs ? En mode X11 ou dans un terminal ? Les manières de configurer ces deux modes n'ont strictement rien à voir l'une avec l'autre.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous utilisez emacs en mode terminal et vos règlages X11 importent peu.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) 11 Apr 2007 11:53:24 GMT,
rixed@happyleptic.org écrivait (wrote):
[... plein de choses sur la configuration X11...]
Informations complémentaires : emacs est la version 21, compilée sans
X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai
essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org,
avec la configuration de xmodmap décrite ci-dessus, en locales C.
Là, j'ai un doute. Comment tourne emacs ? En mode X11 ou dans un
terminal ? Les manières de configurer ces deux modes n'ont strictement
rien à voir l'une avec l'autre.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous
utilisez emacs en mode terminal et vos règlages X11 importent peu.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) 11 Apr 2007 11:53:24 GMT, écrivait (wrote): [... plein de choses sur la configuration X11...]
Informations complémentaires : emacs est la version 21, compilée sans X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org, avec la configuration de xmodmap décrite ci-dessus, en locales C.
Là, j'ai un doute. Comment tourne emacs ? En mode X11 ou dans un terminal ? Les manières de configurer ces deux modes n'ont strictement rien à voir l'une avec l'autre.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous utilisez emacs en mode terminal et vos règlages X11 importent peu.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Pascal Bourguignon
Paul Gaborit writes:
À (at) 11 Apr 2007 11:53:24 GMT, écrivait (wrote): [... plein de choses sur la configuration X11...]
Informations complémentaires : emacs est la version 21, compilée sans X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org, avec la configuration de xmodmap décrite ci-dessus, en locales C.
Là, j'ai un doute. Comment tourne emacs ? En mode X11 ou dans un terminal ? Les manières de configurer ces deux modes n'ont strictement rien à voir l'une avec l'autre.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous utilisez emacs en mode terminal et vos règlages X11 importent peu.
Sauf qu'en général, le terminal utilisé est xterm...
Paul Gaborit <Paul.Gaborit@invalid.invalid> writes:
À (at) 11 Apr 2007 11:53:24 GMT,
rixed@happyleptic.org écrivait (wrote):
[... plein de choses sur la configuration X11...]
Informations complémentaires : emacs est la version 21, compilée sans
X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai
essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org,
avec la configuration de xmodmap décrite ci-dessus, en locales C.
Là, j'ai un doute. Comment tourne emacs ? En mode X11 ou dans un
terminal ? Les manières de configurer ces deux modes n'ont strictement
rien à voir l'une avec l'autre.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous
utilisez emacs en mode terminal et vos règlages X11 importent peu.
Sauf qu'en général, le terminal utilisé est xterm...
À (at) 11 Apr 2007 11:53:24 GMT, écrivait (wrote): [... plein de choses sur la configuration X11...]
Informations complémentaires : emacs est la version 21, compilée sans X11, sous debian Etch, tournant dans un screen (TERM=screen, mais j'ai essayé avec "xterm" et ça ne change rien), dans un xterm, dans un X-org, avec la configuration de xmodmap décrite ci-dessus, en locales C.
Là, j'ai un doute. Comment tourne emacs ? En mode X11 ou dans un terminal ? Les manières de configurer ces deux modes n'ont strictement rien à voir l'une avec l'autre.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous utilisez emacs en mode terminal et vos règlages X11 importent peu.
Sauf qu'en général, le terminal utilisé est xterm...
[Je redirige sur fr.comp.applications.emacs qui me parait plus adapté]
:
J'utilise un clavier qwerty modèle réduit très pratique, avec touche control et meta bien placées. J'ai un fichier modmap qui défini correctement toutes ces touches. Pour écrire des textes avec des caractères accentués j'ai pris l'habitude d'utiliser le modificateur Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la configuration de xmodmap :
! Mode_shift + e donne "é" par exemple keycode 26 = e E egrave Egrave ... ! Meta_L est la touche diamand de gauche keycode 131 = Meta_L ... ! Mode_shift est sur la même touche keysym Meta_L = Mode_switch Meta_L
Mouarf. La convention habituelle est plutôt de considérer que Mod1=Meta et Mod2=Alt. Normalement, ça ne devrait avoir aucune importance, mais les programmes modernes hardcodent cette correspondance
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
C'est parfaitement normal. Ton xterm reçoit le Alt-a, et il le traduit en a tout court. Ce qu'il te faut, c'est que le keysym Meta_L ou Meta_R soit associée à un modificateur, et appuyer sur une touche générant le keysym en question en même temps que « a ». Là, xterm devrait le traduire en « ^[ a », que emacs comprendra comme M-a. (Enfin, encore faut-il que ton xterm soit configuré pour ça, parce qu'il peut aussi être configuré pour traduire le meta en +8. Assure-toi d'avoir « XTerm*eightBitInput:false » dans ton .Xresources.)
Bon, c'est pas grave, j'ai bien tapper sur Esc.
Ça devient vite insupportable quand tu dois le faire plein de fois d'affilée (une série de M-f par exemple).
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h] (selon [C-h l]).
Par défaut, emacs traduit un caractère supérieur à 128 comme le -8 métaifié. Il faut mettre « (set-input-mode nil nil 1) » dans le .emacs pour le calmer.
[Je redirige sur fr.comp.applications.emacs qui me parait plus adapté]
rixed@happyleptic.org :
J'utilise un clavier qwerty modèle réduit très pratique, avec touche
control et meta bien placées. J'ai un fichier modmap qui défini
correctement toutes ces touches. Pour écrire des textes avec des
caractères accentués j'ai pris l'habitude d'utiliser le modificateur
Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la
configuration de xmodmap :
! Mode_shift + e donne "é" par exemple
keycode 26 = e E egrave Egrave
...
! Meta_L est la touche diamand de gauche
keycode 131 = Meta_L
...
! Mode_shift est sur la même touche
keysym Meta_L = Mode_switch Meta_L
Mouarf. La convention habituelle est plutôt de considérer que Mod1=Meta et
Mod2=Alt. Normalement, ça ne devrait avoir aucune importance, mais les
programmes modernes hardcodent cette correspondance
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis
sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche
sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
C'est parfaitement normal. Ton xterm reçoit le Alt-a, et il le traduit en a
tout court. Ce qu'il te faut, c'est que le keysym Meta_L ou Meta_R soit
associée à un modificateur, et appuyer sur une touche générant le keysym en
question en même temps que « a ». Là, xterm devrait le traduire en « ^[ a »,
que emacs comprendra comme M-a. (Enfin, encore faut-il que ton xterm soit
configuré pour ça, parce qu'il peut aussi être configuré pour traduire le
meta en +8. Assure-toi d'avoir « XTerm*eightBitInput:false » dans ton
.Xresources.)
Bon, c'est pas grave, j'ai bien tapper sur Esc.
Ça devient vite insupportable quand tu dois le faire plein de fois d'affilée
(une série de M-f par exemple).
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il
affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h]
(selon [C-h l]).
Par défaut, emacs traduit un caractère supérieur à 128 comme le -8
métaifié. Il faut mettre « (set-input-mode nil nil 1) » dans le .emacs pour
le calmer.
[Je redirige sur fr.comp.applications.emacs qui me parait plus adapté]
:
J'utilise un clavier qwerty modèle réduit très pratique, avec touche control et meta bien placées. J'ai un fichier modmap qui défini correctement toutes ces touches. Pour écrire des textes avec des caractères accentués j'ai pris l'habitude d'utiliser le modificateur Mode_shift (que j'attribue à la touche Meta_L). Voici un exemple de la configuration de xmodmap :
! Mode_shift + e donne "é" par exemple keycode 26 = e E egrave Egrave ... ! Meta_L est la touche diamand de gauche keycode 131 = Meta_L ... ! Mode_shift est sur la même touche keysym Meta_L = Mode_switch Meta_L
Mouarf. La convention habituelle est plutôt de considérer que Mod1=Meta et Mod2=Alt. Normalement, ça ne devrait avoir aucune importance, mais les programmes modernes hardcodent cette correspondance
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
C'est parfaitement normal. Ton xterm reçoit le Alt-a, et il le traduit en a tout court. Ce qu'il te faut, c'est que le keysym Meta_L ou Meta_R soit associée à un modificateur, et appuyer sur une touche générant le keysym en question en même temps que « a ». Là, xterm devrait le traduire en « ^[ a », que emacs comprendra comme M-a. (Enfin, encore faut-il que ton xterm soit configuré pour ça, parce qu'il peut aussi être configuré pour traduire le meta en +8. Assure-toi d'avoir « XTerm*eightBitInput:false » dans ton .Xresources.)
Bon, c'est pas grave, j'ai bien tapper sur Esc.
Ça devient vite insupportable quand tu dois le faire plein de fois d'affilée (une série de M-f par exemple).
Plus grave : lorsque j'envoie Mode_shift+e, je m'attends à ce qu'il affiche 'é', mais non : il me fait quelquechose d'équivalent à [M-h] (selon [C-h l]).
Par défaut, emacs traduit un caractère supérieur à 128 comme le -8 métaifié. Il faut mettre « (set-input-mode nil nil 1) » dans le .emacs pour le calmer.
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous utilisez emacs en mode terminal et vos règlages X11 importent peu.
Sauf qu'en général, le terminal utilisé est xterm...
Dans ce cas, si c'est les paramètres X11 influent, ce n'est plus un problème de configuration de emacs mais un problème de configuration de xterm avec X11...
Petite question : connaissez-vous beaucoup de programmes tournant dans un terminal qui sachent distinguer la touche control gauche de la touche control droite ? ou qui connaisse la touche meta ? etc.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous
utilisez emacs en mode terminal et vos règlages X11 importent peu.
Sauf qu'en général, le terminal utilisé est xterm...
Dans ce cas, si c'est les paramètres X11 influent, ce n'est plus un
problème de configuration de emacs mais un problème de configuration
de xterm avec X11...
Petite question : connaissez-vous beaucoup de programmes tournant dans
un terminal qui sachent distinguer la touche control gauche de la
touche control droite ? ou qui connaisse la touche meta ? etc.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Or vous indiquez « emacs 21 compilé *sans* X11 » ! Dans ce cas, vous utilisez emacs en mode terminal et vos règlages X11 importent peu.
Sauf qu'en général, le terminal utilisé est xterm...
Dans ce cas, si c'est les paramètres X11 influent, ce n'est plus un problème de configuration de emacs mais un problème de configuration de xterm avec X11...
Petite question : connaissez-vous beaucoup de programmes tournant dans un terminal qui sachent distinguer la touche control gauche de la touche control droite ? ou qui connaisse la touche meta ? etc.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Matthieu Moy
Paul Gaborit writes:
Petite question : connaissez-vous beaucoup de programmes tournant dans un terminal qui sachent distinguer la touche control gauche de la touche control droite ? ou qui connaisse la touche meta ? etc.
D'ailleurs, y'a jamais eu de projet pour faire des terminaux (et des applies) qui pourraient justement faire ce genre de distinction ?
-- Matthieu
Paul Gaborit <Paul.Gaborit@invalid.invalid> writes:
Petite question : connaissez-vous beaucoup de programmes tournant dans
un terminal qui sachent distinguer la touche control gauche de la
touche control droite ? ou qui connaisse la touche meta ? etc.
D'ailleurs, y'a jamais eu de projet pour faire des terminaux (et des
applies) qui pourraient justement faire ce genre de distinction ?
Petite question : connaissez-vous beaucoup de programmes tournant dans un terminal qui sachent distinguer la touche control gauche de la touche control droite ? ou qui connaisse la touche meta ? etc.
D'ailleurs, y'a jamais eu de projet pour faire des terminaux (et des applies) qui pourraient justement faire ce genre de distinction ?
-- Matthieu
rixed
On 2007-04-12, Luc Habert wrote:
configuration de xmodmap :
! Mode_shift + e donne "é" par exemple keycode 26 = e E egrave Egrave ... ! Meta_L est la touche diamand de gauche keycode 131 = Meta_L ... ! Mode_shift est sur la même touche keysym Meta_L = Mode_switch Meta_L
Mon dieu quelle horreur!
Pourquoi ? C'est plus rapide que d'utiliser la touche compose pour avoir des caractères accentués, et je m'y suis habitué.
Mouarf. La convention habituelle est plutôt de considérer que Mod1=Meta et Mod2=Alt. Normalement, ça ne devrait avoir aucune importance, mais les programmes modernes hardcodent cette correspondance
Ça n'a aucune importance, et en plus c'est faut : openbox utilise en fait mod1 ou mod3 ou mod4. Juste pour corriger, mais c'est HS.
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
C'est parfaitement normal. Ton xterm reçoit le Alt-a, et il le traduit en a tout court. Ce qu'il te faut, c'est que le keysym Meta_L ou Meta_R soit associée à un modificateur, et appuyer sur une touche générant le keysym en question en même temps que « a ». Là, xterm devrait le traduire en « ^[ a », que emacs comprendra comme M-a. (Enfin, encore faut-il que ton xterm soit configuré pour ça, parce qu'il peut aussi être configuré pour traduire le meta en +8. Assure-toi d'avoir « XTerm*eightBitInput:false » dans ton .Xresources.)
OK, je comprend. Mais si je configure Xterm pour qu'il transforme les code > 128 en séquence escape+lettre je crains qu'alors je ne puisse plus afficher de caractères accentués dans xterm (ni dans vi, mutt, slrn, et tout les outils habituels), à moins peut être d'avoir recours à de la magie noire spécifique à chacun de ces programmes ? Il n'y a pas moyen pour xterm de passer le meta à emacs tout en autorisant les inputs sur 8bits ? Genre demander à xterm de ne convertir que les modifieurs en séquence escape, mais d'accepter par ailleurs les caractères 8bits ?
Actuellement lorsque j'envoie des Meta+lettres à xterm il m'affiche des tas de caractères exotiques genre lettres accentuées nordiques ou espagnoles. Comme je ne parle aucune de ces langues ça ne me sert à rien :-)
Gagné, ca existe et apparement ça s'appelle 'metaSendsEscape'.
Je viens de tester : sous le terminal, je peut toujours écrire des caractères accentués grace à Mode_switch, et la touche Meta fait biper xterm. L'ennuis c'est que ça fait aussi biper emacs. :-/ Et si j'utilise [C-h l] après un M-x par exemple, je vois que mon M-x à donné "ESC ø" (esc suivit d'un o barré). Je sens que ça brule...
Par défaut, emacs traduit un caractère supérieur à 128 comme le -8 métaifié. Il faut mettre « (set-input-mode nil nil 1) » dans le .emacs pour le calmer.
Oui c'était exactement ça le problème comme Google avait fini par me le dire.
On 2007-04-12, Luc Habert <lhabert@clipper.ens.fr> wrote:
configuration de xmodmap :
! Mode_shift + e donne "é" par exemple
keycode 26 = e E egrave Egrave
...
! Meta_L est la touche diamand de gauche
keycode 131 = Meta_L
...
! Mode_shift est sur la même touche
keysym Meta_L = Mode_switch Meta_L
Mon dieu quelle horreur!
Pourquoi ? C'est plus rapide que d'utiliser la touche compose pour avoir
des caractères accentués, et je m'y suis habitué.
Mouarf. La convention habituelle est plutôt de considérer que Mod1=Meta et
Mod2=Alt. Normalement, ça ne devrait avoir aucune importance, mais les
programmes modernes hardcodent cette correspondance
Ça n'a aucune importance, et en plus c'est faut : openbox utilise en
fait mod1 ou mod3 ou mod4. Juste pour corriger, mais c'est HS.
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis
sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche
sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
C'est parfaitement normal. Ton xterm reçoit le Alt-a, et il le traduit en a
tout court. Ce qu'il te faut, c'est que le keysym Meta_L ou Meta_R soit
associée à un modificateur, et appuyer sur une touche générant le keysym en
question en même temps que « a ». Là, xterm devrait le traduire en « ^[ a »,
que emacs comprendra comme M-a. (Enfin, encore faut-il que ton xterm soit
configuré pour ça, parce qu'il peut aussi être configuré pour traduire le
meta en +8. Assure-toi d'avoir « XTerm*eightBitInput:false » dans ton
.Xresources.)
OK, je comprend. Mais si je configure Xterm pour qu'il transforme les
code > 128 en séquence escape+lettre je crains qu'alors je ne puisse
plus afficher de caractères accentués dans xterm (ni dans vi, mutt,
slrn, et tout les outils habituels), à moins peut être d'avoir recours à
de la magie noire spécifique à chacun de ces programmes ? Il n'y a pas
moyen pour xterm de passer le meta à emacs tout en autorisant les inputs
sur 8bits ? Genre demander à xterm de ne convertir que les modifieurs en
séquence escape, mais d'accepter par ailleurs les caractères 8bits ?
Actuellement lorsque j'envoie des Meta+lettres à xterm il m'affiche des
tas de caractères exotiques genre lettres accentuées nordiques ou
espagnoles. Comme je ne parle aucune de ces langues ça ne me sert à
rien :-)
Gagné, ca existe et apparement ça s'appelle 'metaSendsEscape'.
Je viens de tester : sous le terminal, je peut toujours écrire des
caractères accentués grace à Mode_switch, et la touche Meta fait biper
xterm. L'ennuis c'est que ça fait aussi biper emacs. :-/ Et si j'utilise
[C-h l] après un M-x par exemple, je vois que mon M-x à donné "ESC ø"
(esc suivit d'un o barré). Je sens que ça brule...
Par défaut, emacs traduit un caractère supérieur à 128 comme le -8
métaifié. Il faut mettre « (set-input-mode nil nil 1) » dans le .emacs pour
le calmer.
Oui c'était exactement ça le problème comme Google avait fini par me le
dire.
! Mode_shift + e donne "é" par exemple keycode 26 = e E egrave Egrave ... ! Meta_L est la touche diamand de gauche keycode 131 = Meta_L ... ! Mode_shift est sur la même touche keysym Meta_L = Mode_switch Meta_L
Mon dieu quelle horreur!
Pourquoi ? C'est plus rapide que d'utiliser la touche compose pour avoir des caractères accentués, et je m'y suis habitué.
Mouarf. La convention habituelle est plutôt de considérer que Mod1=Meta et Mod2=Alt. Normalement, ça ne devrait avoir aucune importance, mais les programmes modernes hardcodent cette correspondance
Ça n'a aucune importance, et en plus c'est faut : openbox utilise en fait mod1 ou mod3 ou mod4. Juste pour corriger, mais c'est HS.
Première surprise : la touche meta ne fonctionne pas. Lorsque j'appuis sur Alt_L et 'a', je m'attend à faire un [M-a], mais emacs affiche sobrement 'a' (si je vérifie avec [C-h l], j'ai bien seulement 'a').
C'est parfaitement normal. Ton xterm reçoit le Alt-a, et il le traduit en a tout court. Ce qu'il te faut, c'est que le keysym Meta_L ou Meta_R soit associée à un modificateur, et appuyer sur une touche générant le keysym en question en même temps que « a ». Là, xterm devrait le traduire en « ^[ a », que emacs comprendra comme M-a. (Enfin, encore faut-il que ton xterm soit configuré pour ça, parce qu'il peut aussi être configuré pour traduire le meta en +8. Assure-toi d'avoir « XTerm*eightBitInput:false » dans ton .Xresources.)
OK, je comprend. Mais si je configure Xterm pour qu'il transforme les code > 128 en séquence escape+lettre je crains qu'alors je ne puisse plus afficher de caractères accentués dans xterm (ni dans vi, mutt, slrn, et tout les outils habituels), à moins peut être d'avoir recours à de la magie noire spécifique à chacun de ces programmes ? Il n'y a pas moyen pour xterm de passer le meta à emacs tout en autorisant les inputs sur 8bits ? Genre demander à xterm de ne convertir que les modifieurs en séquence escape, mais d'accepter par ailleurs les caractères 8bits ?
Actuellement lorsque j'envoie des Meta+lettres à xterm il m'affiche des tas de caractères exotiques genre lettres accentuées nordiques ou espagnoles. Comme je ne parle aucune de ces langues ça ne me sert à rien :-)
Gagné, ca existe et apparement ça s'appelle 'metaSendsEscape'.
Je viens de tester : sous le terminal, je peut toujours écrire des caractères accentués grace à Mode_switch, et la touche Meta fait biper xterm. L'ennuis c'est que ça fait aussi biper emacs. :-/ Et si j'utilise [C-h l] après un M-x par exemple, je vois que mon M-x à donné "ESC ø" (esc suivit d'un o barré). Je sens que ça brule...
Par défaut, emacs traduit un caractère supérieur à 128 comme le -8 métaifié. Il faut mettre « (set-input-mode nil nil 1) » dans le .emacs pour le calmer.
Oui c'était exactement ça le problème comme Google avait fini par me le dire.