GNU bug report logs -
#4948
Dead key misery
Previous Next
Reported by: occitan <at> esperanto.org
Date: Tue, 17 Nov 2009 20:10:05 UTC
Severity: normal
Done: Stefan Kangas <stefan <at> marxist.se>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 4948 in the body.
You can then email your comments to 4948 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4948
; Package
emacs
.
(Tue, 17 Nov 2009 20:10:06 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
occitan <at> esperanto.org
:
New bug report received and forwarded. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 17 Nov 2009 20:10:06 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
[Message part 1 (text/plain, inline)]
Long ago NEWS.19 got this delightful entry:
** Dead-key and composite character processing is done in the standard
X11R6 manner (through the default "input method" using the
/usr/lib/X11/locale/*/Compose databases of key combinations). I.e. if
it works in xterm, it should also work in emacs now.
This has long since stopped working. I found a workaround of (require
'iso-transl), which handles a few cases but not even a western European
dead-cedilla is handled. Even if I do (require 'ogonek), dead-ogonek is
not handled. All other programs still do this fine, why did Emacs
forget about this?
Btw. this is Ubuntu 9.10 and the file name is
/usr/*share*/X11/locale/*/Compose but I guess configure, which I ran
from CVS should have detected that.
coralament / best Grötens / liebe Grüße / best regards / elkorajn salutojn
Daniel Pfeiffer
--
lerne / learn / apprends / lär dig / ucz się Esperanto:
http://lernu.net / http://ikurso.net
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4948
; Package
emacs
.
(Tue, 17 Nov 2009 22:30:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Stefan Monnier <monnier <at> IRO.UMontreal.CA>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 17 Nov 2009 22:30:03 GMT)
Full text and
rfc822 format available.
Message #10 received at 4948 <at> emacsbugs.donarmstrong.com (full text, mbox):
> ** Dead-key and composite character processing is done in the standard
> X11R6 manner (through the default "input method" using the
> /usr/lib/X11/locale/*/Compose databases of key combinations). I.e. if
> it works in xterm, it should also work in Emacs now.
> This has long since stopped working.
I don't use dead keys, but I use the compose key extensively, and it
works just fine in my Emacs. Can you give more detail to try and
reproduce your problem?
Stefan
Added tag(s) moreinfo.
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> emacsbugs.donarmstrong.com
.
(Thu, 19 Nov 2009 22:15:04 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4948
; Package
emacs
.
(Thu, 19 Nov 2009 23:10:07 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
occitan <at> esperanto.org
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Thu, 19 Nov 2009 23:10:07 GMT)
Full text and
rfc822 format available.
Message #17 received at 4948 <at> emacsbugs.donarmstrong.com (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Stefan,
la 11/17/2009 11:22 PM Stefan Monnier skribis:
>> ** Dead-key and composite character processing is done in the standard
>> X11R6 manner (through the default "input method" using the
>> /usr/lib/X11/locale/*/Compose databases of key combinations). I.e. if
>> it works in xterm, it should also work in Emacs now.
>> This has long since stopped working.
>>
>
> I don't use dead keys, but I use the compose key extensively, and it
> works just fine in my Emacs. Can you give more detail to try and
> reproduce your problem?
>
what details, I don't really know. It might be Ubuntu specific, because
it appeared long ago when I switched from SuSE to Ubuntu. At the time I
figured it must have to do with a newer Emacs, because xterm and all Gtk
and Qt apps had and have no problem. Sorry I didn't report it then, I
guess this is two years back.
I think compose is not pertinent, because IMHO that does the combining
in the X-server and sends the combined char, as though you had a key for
it, like German äöüß is no problem even without loading iso-transl.
I'm attaching my very personal keymap (which covers my normal German
external keyboard, the built in American one, with Z and Y switched
German style and Esperanto letters). I've stuffed in all dead-keys,
like AltGr-, for cedilla, AltGr-Shift-, for ogonek and AltGr-^ for
circumflex. I load it with xkbcomp -xkb .X/keymap/daniel $DISPLAY, but
you could just as well just set one dead key with xmodmap IIRC.
coralament / best Grötens / liebe Grüße / best regards / elkorajn salutojn
Daniel Pfeiffer
--
lerne / learn / apprends / lär dig / ucz się Esperanto:
http://lernu.net / http://ikurso.net
[Message part 2 (text/html, inline)]
[daniel.xkb (text/plain, inline)]
// -*- mode: c; compile-command: "exec xkbcomp -w3 daniel.xkb keymap/daniel" -*-
// setxkbmap 'us(euro)+level3(ralt_switch)'; setxkbmap 'us(euro)+level3(ralt_switch)' -print | xkbcomp -xkb - notebook-orig.xkb
// xkbcomp -xkb keymap/daniel -; xkbcomp -xkb keymap/daniel $DISPLAY; xkbcomp -xkb :0 -
// s ln -s ~/.X/keymap/daniel /usr/share/X11/xkb/keymap/
// /usr/share/X11/XKeysymDB
// /usr/include/X11/keysymdef.h
// /usr/include/X11/XF86keysym.h
// /usr/share/X11/locale/compose.dir
// /usr/share/X11/locale/en_US.UTF-8/Compose
// In /etc/X11/xorg.conf ersetze
// Option "XkbKeymap" "daniel"
xkb_keymap {
xkb_keycodes {
//include "xfree86+aliases(qwertz)"
include "evdev+aliases(qwertz)"
virtual indicator 4 = "Group 1";
};
xkb_types {
include "complete"
type "HYPER+ALT" {
modifiers= mod4+Alt;
map[mod4+Alt]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Hyper+Alt";
};
};
xkb_compatibility {
include "complete"
indicator "Group 1" {
!allowExplicit;
groups= 0xfd;
};
};
xkb_symbols "pc+us(euro)+level3(ralt_switch)" {
name[group1] = "de";
name[group2] = "us(euro)";
key <XFER> { [ XF86AudioMedia ] };
key <I20> { [ XF86AudioMute ] };
key <I2E> { [ XF86AudioLowerVolume ] };
key <I30> { [ XF86AudioRaiseVolume ] };
key <I10> { [ XF86AudioPrev ] };
key <I19> { [ XF86AudioNext ] };
key <I22> { [ XF86AudioPlay, XF86AudioPause ] };
key <I24> { [ XF86AudioStop, XF86Eject ] };
key <I69> { [ XF86Forward ] };
key <I6A> { [ XF86Back ] };
key <II65> { [ XF86KbdBrightnessDown ] };
key <I54> { [ XF86KbdBrightnessUp ] };
key <I5F> { [ XF86Standby ] };
key <I6C> { [ XF86Mail ] };
key <I32> { [ XF86HomePage ] };
key <I65> { [ XF86Search ] };
key <I66> { [ XF86Favorites ] };
key <ESC> { [ Escape ] };
key <BKSP> { [ BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
key <LCTL> { [ Control_L ] };
key <LFSH> { [ Shift_L ] };
key <RTSH> { [ Shift_R ] };
key <LALT> { [ Alt_L, Meta_L ] };
key <SPCE> { [ space, space, nobreakspace ],
[ space, space, nobreakspace ],
[] };
key <CAPS> { [ Caps_Lock ] };
key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
key <SCLK> { [ Scroll_Lock ] };
key <KP7> { [ KP_Home, KP_7 ] };
key <KP8> { [ KP_Up, KP_8 ] };
key <KP9> { [ KP_Prior, KP_9 ] };
key <KP4> { [ KP_Left, KP_4 ] };
key <KP5> { [ KP_Begin, KP_5 ] };
key <KP6> { [ KP_Right, KP_6 ] };
key <KP1> { [ KP_End, KP_1 ] };
key <KP2> { [ KP_Down, KP_2 ] };
key <KP3> { [ KP_Next, KP_3 ] };
key <KP0> { [ KP_Insert, KP_0 ] };
key <KPDL> { [ KP_Delete, KP_Decimal ] };
key <MDSW> { [ Mode_switch ] };
key <HOME> { [ Home ] };
key <UP> { [ Up ] };
key <PGUP> { [ Prior ] };
key <LEFT> { [ Left ] };
key <RGHT> { [ Right ] };
key <END> { [ End ] };
key <DOWN> { [ Down ] };
key <PGDN> { [ Next ] };
key <INS> { [ Insert ] };
key <DELE> { [ Delete ] };
key <KPEN> { [ KP_Enter ] };
key <RCTL> { [ Control_R ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
[ Pause, Break ]
};
key <PRSC> {
type= "PC_ALT_LEVEL2",
[ Print, Sys_Req ]
};
key <RALT> { [ ISO_Level3_Shift ] };
key <LWIN> { [ Hyper_L ] };
key <RWIN> { [ Hyper_R ] };
key <MENU> { [ ISO_First_Group, ISO_Last_Group ] };
key <LVL3> { [ ISO_Level3_Shift ] };
key <ALT> { [ NoSymbol, Alt_L ] };
key <KPEQ> { [ KP_Equal ] };
key <SUPR> { [ NoSymbol, Super_L ] };
key <HYPR> { [ NoSymbol, Hyper_L ] };
key <META> { [ NoSymbol, Meta_L ] };
key <OUTP> { [ XF86Display ] };
key <KITG> { [ NoSymbol ] };
key <KIDN> { [ NoSymbol ] };
key <KIUP> { [ NoSymbol ] };
//key.type[group1] = "FOUR_LEVEL";
key <TLDE> { [ asciicircum, degree, dead_circumflex, dead_abovering ],
[ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ],
[ 1, exclam, onesuperior, exclamdown ],
[] };
key <AE02> { [ 2, quotedbl, twosuperior, onehalf ],
[ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, section, threesuperior, sterling ],
[ 3, numbersign, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, onequarter, currency ],
[ 4, dollar, onequarter, currency ],
[] };
key <AE05> { [ 5, percent, EuroSign, fiveeighths ],
[ 5, percent, EuroSign, fiveeighths ],
[] };
key <AE06> { [ 6, ampersand, notsign ],
[ 6, asciicircum, notsign, dead_circumflex ] };
key <AE07> { [ 7, slash, braceleft, seveneighths ],
[ 7, ampersand, NoSymbol, seveneighths ] };
key <AE08> { [ 8, parenleft, bracketleft ],
[ 8, asterisk, oneeighth, multiply ] };
key <AE09> { [ 9, parenright, bracketright, plusminus ],
[ 9, parenleft ] };
key <AE10> { [ 0, equal, braceright ],
[ 0, parenright, degree, dead_abovering ] };
key <AE11> { [ ssharp, question, backslash, questiondown ],
[ minus, underscore, emdash, dead_macron ] };
key <AE12> { [ dead_acute, dead_grave, dead_breve, dead_caron ],
[ equal, plus ] };
key <LSGT> { [ less, greater, bar, brokenbar ] };
//key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
key <LatA> { [ a, A, ae, AE ],
[ a, A, ae, AE ],
[] };
key <LatB> { [ b, B, rightdoublequotemark, apostrophe ],
[ b, B, rightdoublequotemark, apostrophe ],
[] };
key <LatC> { [ c, C, ccircumflex, Ccircumflex ],
[ c, C, ccircumflex, Ccircumflex ],
[] };
key <LatD> { [ d, D, eth, ETH ],
[ d, D, eth, ETH ],
[] };
key <LatE> { [ e, E, EuroSign ],
[ e, E, EuroSign ],
[] };
key <LatF> { [ f, F, dstroke, ordfeminine ],
[ f, F, dstroke, ordfeminine ],
[] };
key <LatG> { [ g, G, gcircumflex, Gcircumflex ],
[ g, G, gcircumflex, Gcircumflex ],
[] };
key <LatH> { [ h, H, hcircumflex, Hcircumflex ],
[ h, H, hcircumflex, Hcircumflex ],
[] };
key <LatI> { [ i, I, idotless, Iabovedot ],
[ i, I, idotless, Iabovedot ],
[] };
key <LatJ> { [ j, J, jcircumflex, Jcircumflex ],
[ j, J, jcircumflex, Jcircumflex ],
[] };
key <LatK> { [ k, K, kra, ampersand ],
[ k, K, kra, ampersand ],
[] };
key <LatL> { [ l, L, lstroke, Lstroke ],
[ l, L, lstroke, Lstroke ],
[] };
key <LatM> { [ m, M, mu, masculine ],
[ m, M, mu, masculine ],
[] };
key <LatN> { [ n, N, eng, ENG ],
[ n, N, eng, ENG ],
[] };
key <LatO> { [ o, O, oe, OE ],
[ o, O, oe, OE ],
[] };
key <LatP> { [ p, P, thorn, THORN ],
[ p, P, thorn, THORN ],
[] };
key <LatQ> { [ q, Q, at, Greek_OMEGA ],
[ q, Q, at, Greek_OMEGA ],
[] };
key <LatR> { [ r, R, trademark, registered ],
[ r, R, trademark, registered ],
[] };
key <LatS> { [ s, S, scircumflex, Scircumflex ],
[ s, S, scircumflex, Scircumflex ],
[] };
key <LatT> { [ t, T, tslash, Tslash ],
[ t, T, tslash, Tslash ],
[] };
key <LatU> { [ u, U, ubreve, Ubreve ],
[ u, U, ubreve, Ubreve ],
[] };
key <LatV> { [ v, V, leftdoublequotemark, grave ],
[ v, V, leftdoublequotemark, grave ],
[] };
key <LatW> { [ w, W, U2C73, U2C72 ],
[ w, W, U2C73, U2C72 ],
[] };
key <LatX> { [ x, X, guillemotright ],
[ x, X, guillemotright ],
[] };
key <LatY> { [ y, Y, guillemotleft, yen ],
[ y, Y, guillemotleft, yen ],
[] };
key <LatZ> { [ z, Z, U2C6C, U2C6B ],
[ z, Z, U2C6C, U2C6B ],
[] };
//key.type[group1] = "EIGHT_LEVEL";
key <AD11> { [ udiaeresis, Udiaeresis, udoubleacute, Udoubleacute ],
[ bracketleft, braceleft ] };
key <AD12> { [ plus, asterisk, asciitilde, dead_tilde ],
[ bracketright, braceright ] };
key <BKSL> { [ numbersign, apostrophe, NoSymbol, grave ],
[ backslash, bar, ssharp, brokenbar ] };
key <AC10> { [ odiaeresis, Odiaeresis, odoubleacute, Odoubleacute ],
[ semicolon, colon ] };
key <AC11> { [ adiaeresis, Adiaeresis, dead_diaeresis, dead_doubleacute ],
[ apostrophe, quotedbl ] };
key <AB08> { [ comma, semicolon, dead_cedilla, dead_ogonek ],
[ comma, less, dead_cedilla, dead_ogonek ] };
key <AB09> { [ period, colon, periodcentered, dead_abovedot ],
[ period, greater, periodcentered, dead_abovedot ] };
key <AB10> { [ minus, underscore, emdash, dead_macron ],
[ slash, question ] };
key.type[group1] = "HYPER+ALT";
key <FK01> { [ F1, XF86_Switch_VT_1 ] };
key <FK02> { [ F2, XF86_Switch_VT_2 ] };
key <FK03> { [ F3, XF86_Switch_VT_3 ] };
key <FK04> { [ F4, XF86_Switch_VT_4 ] };
key <FK05> { [ F5, XF86_Switch_VT_5 ] };
key <FK06> { [ F6, XF86_Switch_VT_6 ] };
key <FK07> { [ F7, XF86_Switch_VT_7 ] };
key <FK08> { [ F8, XF86_Switch_VT_8 ] };
key <FK09> { [ F9, XF86_Switch_VT_9 ] };
key <FK10> { [ F10, XF86_Switch_VT_10 ] };
key <FK11> { [ F11, XF86_Switch_VT_11 ] };
key <FK12> { [ F12, XF86_Switch_VT_12 ] };
key <KPMU> { [ KP_Multiply, XF86_ClearGrab ] };
key <KPDV> { [ KP_Divide, XF86_Ungrab ] };
key <KPSU> { [ KP_Subtract, XF86_Prev_VMode ] };
key <KPAD> { [ KP_Add, XF86_Next_VMode ] };
modifier_map Control { <LCTL>, <RCTL> };
modifier_map Shift { <LFSH>, <RTSH> };
modifier_map Lock { <CAPS> };
modifier_map Mod1 { <LALT>, <META> };
modifier_map Mod2 { <NMLK> };
modifier_map Mod3 { <MENU> };
modifier_map Mod4 { <LWIN>, <RWIN>, <SUPR>, <HYPR> };
modifier_map Mod5 { <MDSW>, <LVL3>, <RALT> };
};
xkb_geometry { include "pc(pc105)" };
};
Removed tag(s) moreinfo.
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> emacsbugs.donarmstrong.com
.
(Sun, 22 Nov 2009 20:35:08 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#4948
; Package
emacs
.
(Tue, 01 Oct 2019 01:11:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 4948 <at> debbugs.gnu.org (full text, mbox):
Daniel Pfeiffer <occitan <at> t-online.de> writes:
> Hi Stefan,
>
> la 11/17/2009 11:22 PM Stefan Monnier skribis:
>
> ** Dead-key and composite character processing is done in the standard
> X11R6 manner (through the default "input method" using the
> /usr/lib/X11/locale/*/Compose databases of key combinations). I.e. if
> it works in xterm, it should also work in Emacs now.
> This has long since stopped working.
>
>
> I don't use dead keys, but I use the compose key extensively, and it
> works just fine in my Emacs. Can you give more detail to try and
> reproduce your problem?
>
> what details, I don't really know. It might be Ubuntu specific, because it appeared long ago when I switched from SuSE to Ubuntu. At the time I figured it must have to do with a newer Emacs, because xterm and all Gtk and Qt apps had and have no problem.
> Sorry I didn't report it then, I guess this is two years back.
>
> I think compose is not pertinent, because IMHO that does the combining in the X-server and sends the combined char, as though you had a key for it, like German dv|_ is no problem even without loading iso-transl.
>
> I'm attaching my very personal keymap (which covers my normal German external keyboard, the built in American one, with Z and Y switched German style and Esperanto letters). I've stuffed in all dead-keys, like AltGr-, for cedilla, AltGr-Shift-, for
> ogonek and AltGr-^ for circumflex. I load it with xkbcomp -xkb .X/keymap/daniel $DISPLAY, but you could just as well just set one dead key with xmodmap IIRC.
>
> coralament / best Grvtens / liebe Gr|_e / best regards / elkorajn salutojn
> Daniel Pfeiffer
The last update here was ten years ago. Are you still seeing this issue
on a modern version of Emacs? Dead keys seem to be working for me in
Emacs 27.1.
Best regards,
Stefan Kangas
Reply sent
to
Stefan Kangas <stefan <at> marxist.se>
:
You have taken responsibility.
(Wed, 30 Oct 2019 20:59:03 GMT)
Full text and
rfc822 format available.
Notification sent
to
occitan <at> esperanto.org
:
bug acknowledged by developer.
(Wed, 30 Oct 2019 20:59:03 GMT)
Full text and
rfc822 format available.
Message #27 received at 4948-done <at> debbugs.gnu.org (full text, mbox):
Stefan Kangas <stefan <at> marxist.se> writes:
> The last update here was ten years ago. Are you still seeing this issue
> on a modern version of Emacs? Dead keys seem to be working for me in
> Emacs 27.1.
More information was requested, but none was given within 4 weeks, so
I'm closing this bug. If this is still an issue, please reopen the bug
report.
Best regards,
Stefan Kangas
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 28 Nov 2019 12:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 5 years and 262 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.