Subject: bug#54289: 29.0.50; Emacs ignores xmodmap Super_L assignment

From: Po Lu <[email-masked]>
Date: Tue, 08 Mar 2022 19:13:10 +0800

Stephen Berman <[email-masked]> writes:

> You mean forward slash and backslash?  I.e. mod4 subsumes the Super_L
> and Menu keysyms?

No, just forward slash.

> I tried with all three remove mappings and also with just the first two,
> but in both cases nothing changed, i.e., typing Super_L (the Windows key
> on my keyboard) still produced nothing in emacs-29 (non-pgtk build).
> Same in Firefox.  FWIW evaluating `xmodmap .Xmodmap' gives this output
> (both with the lines you suggested adding and without them):
>
> xmodmap:  .Xmodmap:16:  bad keysym in remove modifier list 'Caps_Lock', no corresponding keycodes
> xmodmap:  .Xmodmap:18:  bad keysym target keysym 'Caps_Lock', no corresponding keycodes
> xmodmap:  .Xmodmap:49:  bad keysym target keysym 'Super_L', no corresponding keycodes
> xmodmap:  .Xmodmap:52:  bad keysym target keysym 'Menu', no corresponding keycodes
> xmodmap:  4 errors encountered, aborting.
>
> Nevertheless, only the Super_L mapping fails in emacs-29 (and Firefox).

Thanks, then please run GDB, and add a breakpoint like this:

  (gdb) break xterm.c:12731

It should then print something along the lines of

  Breakpoint N at 0x505332: file xterm.c, line 12731.

At this point, say:

  (gdb) condition N rec->map->modmap[xev->detail] != 0
  (gdb) commands
  Type commands for breakpoint(s) 3, one per line.
  End with a line saying just "end".
  >p rec->map->modmap[xev->detail]
  >c
  >end

where N is the number of the breakpoint that was printed above, then run
Emacs like this:

  (gdb) run -q -xrm 'Emacs.useXIM: false'

Press the left super key, and show the output.  Thanks.

If GDB complains about values being optimized out, try building without
optimizations.