Bug#2313: xterm keymapping problems suspected
Raul Miller:
> The right way to solve the problem is give the Linux console
> distinct Backspace and Delete key symbols, so that X can pick
> them up.
Bill Mitchell:
but went on to say:
Raul Miller:
> I think that both of these should typically generate the ascii
> 127 character. This would go into the kbd package and the kernel
> and should be coordinated with upstream.
Bill Mitchell:
These two statements seem to conflict with one another.
But they don't. Honest! :-)
Here's what I was thinking -- under X there's two common ways for
programs to look at keyboard activity: as a sequence of ascii
characters, or as a sequence of keysyms. Some programs (typically,
those running in a terminal window) don't care about the X-specific
bindings, others (typically, those running in their own window) don't
care about the ascii bindings.
>From an old mini-howto, I got the impression that the X BackSpace
keysym would map to the ascii 127 character. Unfortunately, on
examination, I'm wrong.
On the third hand, emacs running in its own window under X will do the
right thing (delete to the left) with the BackSpace keysym -- even
though XLookupString maps it to an ascii 8.
Here's the defaults:
console XFree86
keycode keysym ascii keycode keysym ascii (xterm)
14 Delete 127 22 Delete 127
29+35 Control+h 8 37+43 Control_L+h 8
97+35 Control+h 8 109+43 Control_R+h 8
83 KP_Period 27 91 51 126 91 KP_Decimal 46
105 Left 27 91 68 100 Left 27 91 68 *
111 Remove 127 107 Delete 127
29+14 BackSpace 8 29+14 - 127
97+14 BackSpace 8 109+14 - 127
- BackSpace 8
* XLookupString returns 0 characters for this keysym.
[Note for die-hards: I've left scan codes off of this table.]
----------------------------------------------------------------------
Summary: linux console and xterm provide different (though similar)
terminal emulation, and X, as a general case, is different from xterm.
----------------------------------------------------------------------
My current preference is to track the defaults as closely as possible,
but to give people a clear option for something more msdos-like. By
the way, here's what stty says about a linux session [which does not
appear to have been configured by any prior stty's]:
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
One final note: vi respects these settings, most other screen editors
(e.g. emacs and ae) do not. These settings happen to coincide with
the key bindings of emacs, and with the settings that stty would put
in place with stty -dec. These settings also happen to coincide with
the key bindings of ae with version 493-10 [which, I presume you (Bill
Mitchell) have configured].
--
Raul
Reply to: