NetBSD-Users archive

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

Re: The Chthulhoid horror that is keyboard handling in Unix (Re: Backspace, Delete and other keys)



Johnny Billquist <bqt%softjar.se@localhost> writes:

> Magnus Eriksson wrote:
>>
>> To those born after the Stone Age of computing, the above doesn't
>> even begin to make sense.  "delete character"?  It's not a
>> character, it's an operation, it's *something you do*.
>
> Not really. DEL is a character. Deleting a character to the left for
> you as a user, is something the OS does for you, when requested.

Agreed 100%.

But, as enjoyable as this retro-flaming is (I have a VT52 still),
the real questions are

  how to document setting things up sensibly for people with
  traditional views on DEL

  whether any defaults in NetBSD should be different

I don't really care how other people set up their environments as long
as I don't have to type on their keyboards...


So to be constructive, here's my .Xresources fragment to make PC
keyboards work as I think they should.


/*
 * The following comments are for those that believe the key that is
 * where the delete (DEL) key belongs (from a VT52 or VT100) should
 * send DEL (0177) and that the terminal erase character should also
 * be DEL (0177).
 * 
 * On a PC keyboard, the BackSpace key generates
 * keycode 22 (keysym 0xff08, BackSpace).
 * The "Delete" key is a function key near Insert, not a DEL key, and it
 * generates keycode 107 (keysym 0xffff, Delete).
 * XXX Figure out what happens under X with a keyboard with a real DEL key.
 */

/*
 * Don't mess with the pty's notion of erase (which defaults to DEL in
 * NetBSD).  This should be set on all computers, regardless of the
 * type of keyboard.
 */
*ptyInitialErase: true

/*
 * Make the backarrow key send DEL (without control), rather than BS.
 * This should be set for any display whose keyboard has a key labeled
 * BackSpace where the delete (DEL) key should be.
 */
*backarrowKey: false

/*
 * Alternatively, one could set backarrowKeyIsErase to true, which the
 * man page says would set the backarrowKey state according to whether
 * stty erase character is DEL or BS.
 */

/*
 * It appears that ssh propagates the local stty erase character
 * setting to the remote machine, at least when both ends are NetBSD
 * 1.6.2ish.  Thus, fixing the key that should be delete locally
 * (above) is sufficient to cause the correct behavior on remote
 * systems (i.e., ssh sends 0177 when the key-where-DEL-should-be is
 * pressed, the remote stty erase setting is 0177, in emacs both
 * DEL and M-DEL work correctly, and one can invoke help by sending 010
 * (by typing C-DEL or C-H).  (With the standard behavior of DEL
 * sending BS and stty erase set to BS, one cannot easily invoke help
 * in emacs.)
 */

Attachment: pgps2rtvoaeqj.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index