confused about XEmacs and xmodmap

Pete Siemsen <[email protected]> Mon, 19 Apr 2004 02:15:29 -0600
Newsgroups gmane.emacs.xemacs.general
Message-ID <[email protected]>
Been using XEmacs happily for years.  Recently I upgraded to XEmacs 21.5
beta17 and XFree86 4.3.  Now XEmacs works fine, but emits these warnings
when it starts:

  (1) (key-mapping/warning) 
        The meanings of the modifier bits Mod1 through Mod5 are determined
        by the keysyms used to control those bits.  Mod1 does NOT always
        mean Meta, although some non-ICCCM-compliant programs assume that.
  
  (2) (key-mapping/warning) 
        The semantics of the modifier bits ModShift, ModLock, and ModControl
        are predefined.  It does not make sense to assign ModControl to any
        keysym other than Control_L or Control_R, or to assign any modifier
        bits to the "control" keysyms other than ModControl.  You can't
        turn a "control" key into a "meta" key (or vice versa) by simply
        assigning the key a different modifier bit.  You must also make that
        key generate an appropriate keysym (Control_L, Meta_L, etc).
  
  (3) (key-mapping/warning) XEmacs:  Control_R (0x74) generates Mod4,
  which is nonsensical.
  
  (4) (key-mapping/warning) XEmacs:  Control_L (0x73) generates Mod4,
  which is nonsensical.
  
I have a .Xmodmap file in my home directory.  When I renamed the file to
something bogus, restarted X and restarted XEmacs, I didn't get the
warnings, so they are caused by something in my .Xmodmap file.  That
narrows it down a bit.

I set up my .Xmodmap file map to map some of the strange keys on my
keyboard into useful keys.  Specifically, my "DvortyBoard" has the usual
right and left "Ctrl" keys, which work as expected - they generate X
keysyms named "Control_R" and "Control_L".  Next to each "Ctrl" key is a
key with a funny symbol that looks like a window with 4 panes.  I
sometimes hit these keys by accident when I mean to hit a "Ctrl" key, so
I use xmodmap to make these keys be the same as the "Ctrl" keys.  I used
the xev program to discover that the keys generate the X keycodes 115
and 116.  My .Xmodmap file contains

remove Control = Control_L
keycode 115 = Control_L
add Control = Control_L
remove Control = Control_R
keycode 116 = Control_R
add Control = Control_R

Worked fine in XFree86 4.2.1, where the keycodes were mapped to nothing.
In my new XFree86 4.3.0, they are mapped to the keysyms "Super_R" and
"Super_L", and XEmacs displays the warning paragraphs.  The keys still
work as I intend inside and outside of XEmacs - they work like "Ctrl"
keys.

I confess to being overwhelmed by the complexity of the X modmap
system.  Can anyone explain what's wrong, if anything?

-- Pete