[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Emacs with both Meta AND Alt not working



On Jul 26, Ronan KERYELL (Ronan.Keryell@lit.enstb.org) wrote:
 > I use xfree86 and emacs21 from sid and eventually after a dist-upgrade the
 > Emacs behavior around the Meta and Alt keys changes.
 > 
 > I want the Meta_L on the left windows key and Alt_L on the Alt_L.
 > 
 > I have a /etc/X11/Xmodmap that I update according to the new xfree86
 > version after each new versions to have this behavior.
 > 
 > But on the last version I cannot have this working. :-(
 > 
 > I've also used a XF86Config-4 with a simple :
 > Section "InputDevice"
 > 	Identifier  "Keyboard0"
 > 	Driver      "keyboard"
 >         Option      "CoreKeyboard"
 > 	Option "XkbRules" "xfree86"
 > 	Option "XkbModel" "pc104"
 > 	Option "XkbLayout" "us"
 >     #altwin:left_meta_win	Meta is mapped to the left Win-key.
 > 	Option "XKbOptions" "altwin:left_meta_win"
 > EndSection
 > and Emacs reports for example Win_L-q and Alt_L-q respectively as :
 > H-s-q
 > M-q
 > 
 > and xmodmap returns :
 > xmodmap:  up to 3 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        BadKey (0x7f),  BadKey (0x80)
 > mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)
 > that is clearly a mess with all this BadKey... :-(
 > Modifying it with xmodmap appears just to increase the mess...
 > xmodmap -e 'clear mod4'
 > produce a correct :
 > xmodmap:  up to 3 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
 > mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)
 > 
 > but then with a :
 > xmodmap -e 'add mod4 = Meta_L'
 > the mess is back :
 > xmodmap:  up to 3 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        Alt_L (0x40),  BadKey (0x9c)
 > mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)
 > 
 > 
 > It seems to be even more complex than what is discussed in
 > http://lists.gnu.org/archive/html/help-gnu-emacs/2004-06/msg00195.html or in bug 
 > #255286255286
 > 
 > Sounds like an issue rather on the X11 part around the modifier stuffs and
 > the conservative assumption of Emacs that if there is no key with a plain
 > Meta modifier Emacs decides to use Alt keys as Meta...
 > 
 > Does anyone have this kind of stuff working ?
 > 
 > Thank you,
 > -- 
 >   Ronan KERYELL               |\/  Tel:    (+33|0) 2.29.00.14.15
 >   Labo Informatique & Télécom |/)  Fax:    (+33|0) 2.29.00.12.82
 >   ENST Bretagne, CS 83818     K    GSM:    (+33|0) 6.13.14.37.66
 >   F-29238 PLOUZANÉ CEDEX      |\   E-mail: rk@enstb.org
 >   FRANCE                      | \  http://www.lit.enstb.org/~keryell

Hmm, I get the BadKey also, and I did not realize that until now.  My approach
to this type of problem is to use xev to see what keycodes each key is
sending, then use xmodmap to map keycodes to keysyms, then more xmodmap
commands to clear the modifier keys and then set them to what I want them to
be.  I think you want to map the win key keycode to Meta_L, then clear mod1
and then add Meta_L to mod1.

-- 
Neil Roeth



Reply to: