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

PW#5-6: Consistent handling of the Backspace and Delete keys



[This mail is part of Debian Policy Weekly issue #5]

Topic 6: Consistent handling of the Backspace and Delete keys

STATE: APPROVAL

The following proposal has been assembled by Ian Jackson and presented to
debian-policy twice now. It can be considered as first step towards the
`Consistent Keyboard Configuration' goal.

There has been some discussion about the proposal already. Unless someone
detects some major problems with it, we should not raise the discussion
again. So, if noone objects, this will become policy.

     What we want is:
      * `<--' always deletes the character to the left of the cursor.
      * `Delete' always deletes to the right.
      * `Control'+`H' produces help in Emacs, as before.
     We want this to be true for the console, for X, and even if you use
     rlogin or telnet to get from one system to another.

     What we should do is the following:
      * `<--' generates KB_Backspace in X.
      * `Delete' generates KB_Delete in X.
      * X translations are set up to make KB_Backspace generate ASCII DEL,
        and to make KB_Delete generate ESC [ 3 ~ (this is the vt220 escape
        code for the `delete character' key).  This must be done by loading
        the resources using xrdb on all local X displays, not using the
        application defaults, so that the translation resources used
        correspond to the xmodmap settings.
      * The Linux console is configured to make `<--' generate DEL, and
        `Delete' generate ESC [ 3 ~ (this is the case at the moment).
      * X applications are configured so that Backspace deletes left, and
        Delete deletes right.  Motif applications already work like this.
      * stty erase ^? .
      * The `xterm' terminfo entry should have ESC [ 3 ~ for kdch1, just
        like TERM=linux and TERM=vt220.
      * Emacs is programmed to map KB_Backspace or the `stty erase'
        character to delete-backward-char, and KB_Delete or kdch1 to
        delete-forward-char, and ^H to help as always.
      * Other applications use the `stty erase' character and kdch1 for the
        two delete keys, with ASCII DEL being `delete previous character'
        and kdch1 being `delete character under cursor'.

     This will solve the problem except for:
      * Some terminals have a <-- key that cannot be made to produce
        anything except ^H.  On these terminals Emacs help will be
        unavailable on ^H (assuming that the `stty erase' character takes
        precedence in Emacs, and has been set correctly).  M-x help or F1
        (if available) can be used instead.
      * Some operating systems use ^H for stty erase.  However, modern
        telnet versions and all rlogin versions propagate stty settings,
        and almost all UNIX versions honour stty erase.  Where the stty
        settings are not propagated correctly things can be made to work by
        using stty manually.
      * Some systems (including previous Debian versions) use xmodmap to
        arrange for both <-- and Delete to generate KB_Delete).  We can
        change the behaviour of their X clients via the same X resources
        that we use to do it for our own, or have our clients be configured
        via their resources when things are the other way around.  On
        displays configured like this Delete will not work, but <-- will.
      * Some operating systems have different kdch1 settings in their
        terminfo for xterm and others.  On these systems the Delete key
        will not work correctly when you log in from a system conforming to
        our policy, but <-- will.

----------------------------------------------------------------------------


Reply to: