Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#64 NEdit ignores Mode_switch

release
closed-invalid
nobody
Program (402)
5
2005-02-06
2001-08-23
Thorsten Haude
No

For German keyboards the right <Alt> (called <Alt Gr>)
is Mode_switch, needed to enter several important
characters (eg. {}[]). With our configuration, NEdit
ignores <Alt Gr>.
NEdit runs on HP-UX and is displayed on Linux:

NEdit Version 5.1.1, March 17, 2000
or
NEdit Version 5.2 DEVELOPMENT version
(August 2001)

Built on: HP/UX, PA-RISC, Unknown
Built at: Aug 9 2001, 12:34:16
With Motif: 2001 [@(#)Motif Version 2.1.0]
Running Motif: 2001

XFree86 Version 3.3.6
Linux 2.2.5-15 (RH 6.0)
or
Linux 2.2.16 (SuSE 7.0)

NEdit has no problems
- locally on the SuSE box
- on SunOS 5.6 displaying on the SuSE box
- on the HP boxes displaying on Reflection X 7.20

Other programs (netscape, xterm, xemacs, xkeycaps)
don't have problems running on HP and displaying on
Linux. NEdit doesn't have problems displaying the
characters in question (eg. {}[]).

Discussion

  • Thorsten Haude
    Thorsten Haude
    2001-08-24

    Logged In: YES
    user_id=119143

    5.2rc1, build by Scott doesn't show it.

     
  • Alexander Mai
    Alexander Mai
    2001-08-24

    Logged In: YES
    user_id=15180

    Perhaps this is a nice side-effect of the recent patches
    ...?
    So we can close this?

     
  • Alexander Mai
    Alexander Mai
    2001-08-24

    • labels: --> Program
    • milestone: --> release
    • status: open --> pending
     
  • Alexander Mai
    Alexander Mai
    2001-08-24

    • status: pending --> open
     
  • Alexander Mai
    Alexander Mai
    2001-08-24

    Logged In: YES
    user_id=15180

    Not fixed, see mailinglist

     
  • Logged In: NO

    The same problem exists with the NEdit version 5.2 and
    5.3RC1 for AIX system (see bug report #548520 and #556771).

    More generally, NEdit works well with QWERTY keyboards but
    not with AZERTY keyboards. However, the Linux version of
    NEdit seems to work well with AZERTY keyboards.

    On my AIX system (4.3), I have replaced the "Alt Gr" key
    (not recognized by NEdit) by the "Alt" key, by adding the
    following directive in my ~/.Xdefaults file.

    NEdit*text.Translations: #override\n\ Alt<Key>asciitilde: insert_string("~")\n\ Alt<Key>asciicircum: insert_string("^")\n\ Alt<Key>numbersign: insert_string("#")\n\ Alt<Key>bar: insert_string("|")\n\ Alt<Key>grave: insert_string("`")\n\ Alt<Key>backslash: insert_string("\\\\")\n\ Alt<Key>at: insert_string("@")\n\ Alt<Key>currency: insert_string("")\n\ Alt<Key>braceleft: insert_string("{")\n\ Alt<Key>braceright: insert_string("}")\n\ Alt<Key>bracketleft: insert_string("[")\n\ Alt<Key>bracketright: insert_string("]")

    I uses "Alt" key because "Mode_switch' is not recognized
    by NEdit.

     
  • Thorsten Haude
    Thorsten Haude
    2004-10-06

    Logged In: YES
    user_id=119143

    The problem is still there:

    NEdit 5.5
    Sep 30, 2004

    Built on: HP/UX, PA-RISC, HP C [?]
    Built at: Oct 6 2004, 14:10:48
    With Motif: 2.1.0 [@(#)Motif Version 2.1.0]
    Running Motif: 2.1 [unknown]
    Server: The XFree86 Project, Inc 40300001
    Visual: 16-bit TrueColor (ID 0x21, Default)
    Locale: C

    HP-UX B.11.11

     
  • Thorsten Haude
    Thorsten Haude
    2004-10-29

    Logged In: YES
    user_id=119143

    I tried some thing form Eddy's recent tussle with Motif
    bindings, but nothing came up. Not surprising since I'm in
    the dark here.

    However, Netscape and some other programs are affected now.

     
  • Eddy De Greef
    Eddy De Greef
    2004-10-29

    Logged In: YES
    user_id=73597

    I'm not sure that it will help, but a few years ago, when I
    was working on an HP X-terminal, my login scripts did the
    following:

    xmodmap -e 'remove mod1 = Mode_switch'

    I don't remember why that was necessary.
    What does xmodmap say when you run it without arguments?

    I doubt that the motif bindings have anything to do with it.
    I'd rather search in the xmodmap direction.

     
  • Thorsten Haude
    Thorsten Haude
    2004-10-29

    Logged In: YES
    user_id=119143

    There must be something else beside xmodmap. Your suggestion
    didn't put the keys to work. More important, the Mode_Switch
    keys (third column in xmodmap) work just fine locally on the
    linux box even though column three is completely empty in
    'xmodmap -pke'.

    As soon as I put in the third value (xmodmap -e 'keycode 20
    = ssharp question backslash') it starts working on
    NEdit@HP-UX, but stops working on Linux, Solaris and even
    the terminal@HP-UX.

    That in turn is remedied by "xmodmap -e 'keycode 113 =
    Mode_switch'", but this switches off all other Alt
    Gr-combinations (Alt Gr is 'ISO_Level3_Shift Multi_key' now).

    Now I could put in a full xmodmap, but I would rather know
    where the problem is. Any ideas?

    (Forgot this: The local system is a Debian Sarge now,
    XFree86 4.3.0.dfsg.1-8.)
    - - - - -
    hde@local % xmodmap -pm
    xmodmap: up to 3 keys per modifier, (keycodes in parentheses):

    shift Shift_L (0x32), Shift_R (0x3e)
    lock
    control Control_L (0x25), Control_L (0x42), Control_R
    (0x6d)
    mod1 Alt_L (0x40), Alt_L (0x7d), Meta_L (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 Super_L (0x7f), Hyper_L (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x7c)
    - - - - -
    hde@remote # xmodmap
    xmodmap: up to 3 keys per modifier, (keycodes in parentheses):

    shift Shift_L (0x32), Shift_R (0x3e)
    lock
    control Control_L (0x25), Control_L (0x42), Control_R
    (0x6d)
    mod1 Alt_L (0x40), BadKey (0x7d), BadKey (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 BadKey (0x7f), BadKey (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x7c)

     
  • Eddy De Greef
    Eddy De Greef
    2004-11-02

    Logged In: YES
    user_id=73597

    I know very little about key mappings etc., but I found some
    possibly relevant information here:
    http://netadmin1.ic.tsu.ru/en/xkb/
    My guess is that your XFree86 server uses the XKEYBOARD
    extension, but your HP Xlib is not XKEYBOARD aware and only
    sees a compatibility keyboard mapping table, which is
    incomplete. If that is the case, defining the full table may
    be your only solution.

     
  • Thorsten Haude
    Thorsten Haude
    2005-02-06

    • status: open --> closed-invalid
     
  • Thorsten Haude
    Thorsten Haude
    2005-02-06

    Logged In: YES
    user_id=119143

    Setting a full xmodmap removes the problem. Since this seems
    to be a general X11 problem, I will close this bug. Thanks,
    Eddy.

     
  • Logged In: NO

    Same problem shows with Nedit-5.5 on HP-UX B.11.23 (itanium)

    NEdit 5.5
    Sep 30, 2004

    Built on: HP/UX, IA64, HP C [?]
    Built at: Dec 6 2005, 09:13:33
    With Motif: 2.1.0 [@(#)Motif Version 2.1.0]
    Running Motif: 2.1 [unknown]
    Server: The X.Org Foundation 60802000
    Visual: 24-bit TrueColor (ID 0x21, Default)
    Locale: C

    $ locale
    LANG=
    LC_CTYPE="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_MESSAGES="C"
    LC_ALL=

    Settings:
    I am using a Danish keyboard.
    Special characters such as {[]}^|\ require mode_switch,
    which is the right Alt
    key on my keyboard (labeled "AltGr").
    Machine where Nedit runs is HP-UX B.11.23 (itanium).
    Machine where Nedit is displayed is Linux with
    xorg-x11-Xvfb-6.8.2-30

    Nedit run locally on my Linux works flawlessly.

    xmodmap on HP-UX says:
    ---snip---
    $ xmodmap
    xmodmap: up to 4 keys per modifier, (keycodes in parentheses):

    shift Shift_L (0x32), Shift_R (0x3e)
    lock Caps_Lock (0x42)
    control Control_L (0x25), Control_R (0x6d)
    mod1 Alt_L (0x40), BadKey (0x7d), BadKey (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 Super_L (0x73), Super_R (0x74), BadKey (0x7f),
    BadKey (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x7c)
    ---snip---

    xmodmap on Linux says:
    ---snip---
    $ xmodmap
    xmodmap: up to 4 keys per modifier, (keycodes in parentheses):

    shift Shift_L (0x32), Shift_R (0x3e)
    lock Caps_Lock (0x42)
    control Control_L (0x25), Control_R (0x6d)
    mod1 Alt_L (0x40), Alt_L (0x7d), Meta_L (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 Super_L (0x73), Super_R (0x74), Super_L
    (0x7f), Hyper_L (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x7c)
    ---snip---

    I assume that the "BadKey" is harmless as I do not use them
    in any way.

    Selected xmodmap entries on server:
    ---snip---
    ...
    16 0x0037 (7) 0x002f (slash) 0x007b
    (braceleft) 0x00f7
    (division) 0x007b (braceleft) 0x00f7 (division)

    17 0x0038 (8) 0x0028 (parenleft)
    0x005b (bracketleft)
    0x00ab (guillemotleft) 0x005b (bracketleft) 0x00ab
    (guillemotleft)
    18 0x0039 (9) 0x0029 (parenright)
    0x005d (bracketright)
    0x00bb (guillemotright) 0x005d (bracketright) 0x00bb
    (guillemotright)
    19 0x0030 (0) 0x003d (equal) 0x007d
    (braceright) 0x00b0
    (degree) 0x007d (braceright) 0x00b0 (degree)
    21 0xfe51 (dead_acute) 0xfe50 (dead_grave)
    0x007c (bar)
    0x00a6 (brokenbar) 0x007c (bar) 0x00a6 (brokenbar)
    ...
    34 0x00e5 (aring) 0x00c5 (Aring) 0xfe57
    (dead_diaeresis) 0xfe58
    (dead_abovering) 0xfe57 (dead_diaeresis) 0xfe58
    (dead_abovering)
    35 0xfe57 (dead_diaeresis) 0xfe52
    (dead_circumflex) 0xfe53
    (dead_tilde) 0xfe5a (dead_caron) 0xfe53 (dead_tilde)
    0xfe5a
    (dead_caron)
    ...
    93 0xff7e (Mode_switch)
    94 0x003c (less) 0x003e (greater)
    0x005c (backslash)
    0x00ac (notsign) 0x005c (backslash) 0x00ac
    (notsign)
    ---snip---

    Problem 1:

    In xterm the keys AltGr+7, AltGr+8, ... correctly produces
    {, [, ...
    In nedit they produce 7, 8, ...
    In xterm AltGr+< correctly produces \ In nedit it produces <

    Problem 2:

    In xterm shift+key-21 + space produces ^
    In nedit it produces just a space.
    The same goes for other combinations (accent acute,
    circumflex, ...)

     
  • Logged In: NO

    Nedit-5.5 shows the same problem on HP-UX B.11.23 (itanium)

    NEdit 5.5
    Sep 30, 2004

    Built on: HP/UX, IA64, HP C [?]
    Built at: Dec 6 2005, 09:13:33
    With Motif: 2.1.0 [@(#)Motif Version 2.1.0]
    Running Motif: 2.1 [unknown]
    Server: The X.Org Foundation 60802000
    Visual: 24-bit TrueColor (ID 0x21, Default)
    Locale: C

    $ locale
    LANG=
    LC_CTYPE="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_MESSAGES="C"
    LC_ALL=

    Settings:
    I am using a Danish keyboard.
    Special characters such as {[]}^|\ require mode_switch,
    which is the right Alt
    key on my keyboard (labeled "AltGr").
    Machine where Nedit runs is HP-UX B.11.23 (itanium).
    Machine where Nedit is displayed is Linux with
    xorg-x11-Xvfb-6.8.2-30

    Nedit run locally on my Linux works flawlessly.

    xmodmap on HP-UX says:
    ---snip---
    $ xmodmap
    xmodmap: up to 4 keys per modifier, (keycodes in parentheses):

    shift Shift_L (0x32), Shift_R (0x3e)
    lock Caps_Lock (0x42)
    control Control_L (0x25), Control_R (0x6d)
    mod1 Alt_L (0x40), BadKey (0x7d), BadKey (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 Super_L (0x73), Super_R (0x74), BadKey (0x7f),
    BadKey (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x7c)
    ---snip---

    xmodmap on Linux says:
    ---snip---
    $ xmodmap
    xmodmap: up to 4 keys per modifier, (keycodes in parentheses):

    shift Shift_L (0x32), Shift_R (0x3e)
    lock Caps_Lock (0x42)
    control Control_L (0x25), Control_R (0x6d)
    mod1 Alt_L (0x40), Alt_L (0x7d), Meta_L (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 Super_L (0x73), Super_R (0x74), Super_L
    (0x7f), Hyper_L (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x7c)
    ---snip---

    I assume that the "BadKey" is harmless as I do not use them
    in any way.

    Selected xmodmap entries on server:
    ---snip---
    ...
    16 0x0037 (7) 0x002f (slash) 0x007b
    (braceleft) 0x00f7
    (division) 0x007b (braceleft) 0x00f7 (division)

    17 0x0038 (8) 0x0028 (parenleft)
    0x005b (bracketleft)
    0x00ab (guillemotleft) 0x005b (bracketleft) 0x00ab
    (guillemotleft)
    18 0x0039 (9) 0x0029 (parenright)
    0x005d (bracketright)
    0x00bb (guillemotright) 0x005d (bracketright) 0x00bb
    (guillemotright)
    19 0x0030 (0) 0x003d (equal) 0x007d
    (braceright) 0x00b0
    (degree) 0x007d (braceright) 0x00b0 (degree)
    21 0xfe51 (dead_acute) 0xfe50 (dead_grave)
    0x007c (bar)
    0x00a6 (brokenbar) 0x007c (bar) 0x00a6 (brokenbar)
    ...
    34 0x00e5 (aring) 0x00c5 (Aring) 0xfe57
    (dead_diaeresis) 0xfe58
    (dead_abovering) 0xfe57 (dead_diaeresis) 0xfe58
    (dead_abovering)
    35 0xfe57 (dead_diaeresis) 0xfe52
    (dead_circumflex) 0xfe53
    (dead_tilde) 0xfe5a (dead_caron) 0xfe53 (dead_tilde)
    0xfe5a
    (dead_caron)
    ...
    93 0xff7e (Mode_switch)
    94 0x003c (less) 0x003e (greater)
    0x005c (backslash)
    0x00ac (notsign) 0x005c (backslash) 0x00ac
    (notsign)
    ---snip---

    Problem 1:

    In xterm the keys AltGr+7, AltGr+8, ... correctly produces
    {, [, ...
    In nedit they produce 7, 8, ...
    In xterm AltGr+< correctly produces \ In nedit it produces <

    Problem 2:

    In xterm shift+key-21 + space produces ^
    In nedit it produces just a space.
    The same goes for other combinations (accent acute,
    circumflex, ...)

     
  • Logged In: YES
    user_id=1402676

    xev traces

    X server was in all cases X.org 6.8.2

    ====== HP-UX: freshly compiled xev from X11R6.8.2
    ====== Note: using system X libraries.
    KeyPress event, serial 25, synthetic NO, window 0x3e00001,
    root 0xd4, subw 0x3e00002, time 2018006, (47,38),
    root:(1067,60),
    state 0x0, keycode 113 (keysym 0xfe03,
    ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes:

    KeyPress event, serial 26, synthetic NO, window 0x3e00001,
    root 0xd4, subw 0x3e00002, time 2018152, (47,38),
    root:(1067,60),
    state 0x80, keycode 16 (keysym 0x7b, braceleft),
    same_screen YES,
    XLookupString gives 1 bytes: (7b) "{"

    KeyRelease event, serial 28, synthetic NO, window 0x3e00001,
    root 0xd4, subw 0x3e00002, time 2018250, (47,38),
    root:(1067,60),
    state 0x80, keycode 16 (keysym 0x7b, braceleft),
    same_screen YES,
    XLookupString gives 1 bytes: (7b) "{"

    KeyRelease event, serial 28, synthetic NO, window 0x3e00001,
    root 0xd4, subw 0x3e00002, time 2018256, (47,38),
    root:(1067,60),
    state 0x80, keycode 113 (keysym 0xfe03,
    ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes:

    ====== Linux: xorg-x11-libs-6.8.
    KeyPress event, serial 30, synthetic NO, window 0x4800001,
    root 0xd4, subw 0x4800002, time 2105906, (40,43),
    root:(1458,65),
    state 0x0, keycode 113 (keysym 0xfe03,
    ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

    KeyPress event, serial 30, synthetic NO, window 0x4800001,
    root 0xd4, subw 0x4800002, time 2105979, (40,43),
    root:(1458,65),
    state 0x80, keycode 16 (keysym 0x7b, braceleft),
    same_screen YES,
    XLookupString gives 1 bytes: (7b) "{"
    XmbLookupString gives 1 bytes: (7b) "{"
    XFilterEvent returns: False

    KeyRelease event, serial 30, synthetic NO, window 0x4800001,
    root 0xd4, subw 0x4800002, time 2106056, (40,43),
    root:(1458,65),
    state 0x80, keycode 16 (keysym 0x7b, braceleft),
    same_screen YES,
    XLookupString gives 1 bytes: (7b) "{"

    KeyRelease event, serial 30, synthetic NO, window 0x4800001,
    root 0xd4, subw 0x4800002, time 2106109, (40,43),
    root:(1458,65),
    state 0x80, keycode 113 (keysym 0xfe03,
    ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes:

    ====== Solaris: freshly compiled xev from X11R6.8.2
    ====== Note: using system X libraries
    KeyPress event, serial 25, synthetic NO, window 0x4a00001,
    root 0xd4, subw 0x4a00002, time 2448445, (46,31),
    root:(50,1049),
    state 0x0, keycode 113 (keysym 0xfe03,
    ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

    KeyPress event, serial 30, synthetic NO, window 0x4a00001,
    root 0xd4, subw 0x4a00002, time 2448567, (46,31),
    root:(50,1049),
    state 0x80, keycode 16 (keysym 0x7b, braceleft),
    same_screen YES,
    XLookupString gives 1 bytes: (7b) "{"
    XmbLookupString gives 1 bytes: (7b) "{"
    XFilterEvent returns: False

    KeyRelease event, serial 31, synthetic NO, window 0x4a00001,
    root 0xd4, subw 0x4a00002, time 2448662, (46,31),
    root:(50,1049),
    state 0x80, keycode 16 (keysym 0x7b, braceleft),
    same_screen YES,
    XLookupString gives 1 bytes: (7b) "{"

    KeyRelease event, serial 31, synthetic NO, window 0x4a00001,
    root 0xd4, subw 0x4a00002, time 2448735, (46,31),
    root:(50,1049),
    state 0x80, keycode 113 (keysym 0xfe03,
    ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes: