Olivier Lecarme wrote:
> Although the PC keyboard is by far the dominant keyboard in the world,
> it is a design mistake to have put a large Backspace key in place of the
> Delete key of all the preceding keyboards (note that computers and
> keyboards existed before the advent of the PC).
Okay, now if I understand all this correctly, keyboards (and computers)
did not have a delete-to-the-right key or keycode. Indeed,
www.asciitable.com shows ascii 8 as Backspace and ascii 127 as DEL. If
DEL is interpreted as delete-to-the-left, then we have two codes that
mean the same, and no code for delete-to-the-right, correct?
> In order to correct this design mistake, programs like Emacs have
> interpreted the Backspace keysym as a DEL for years, knowing that the
> Backspace character can always be typed as a C-h, and that users are
> accustomed to erase on right using a C-d. However, this has the
> inconvenience that in the non-window case, the Backspace key sends a
> C-h, which is interpreted as a call for help.
Now where did that C-d come from? Again, according to www.asciitable.com
C-d or ascii 4, is EOT or end of transmission, not any form of erase.
And I bet interpreting C-h as help is not something standard either
(since ascii 8 is Backspace, nothing to do with help). I don't see why
Emacs would be a better "standard" to model program behaviour after than
the "standard" PC way of doing things.
> For programs designed after the PC has begun to be the dominant
> computer, most implementors have taken as granted that a Backspace key
> is meant to erase on left, and a Delete key is meant to erase on right.
> This was the simplest solution for them, but it is fundamentally wrong.
> I have the feeling to preach in the desert when I try to convince people
> of that, but at least they should try to understand the problem, and
> even try to find a solution which would work for everybody.
Okay, so an error was made. The makers of the pc keyboard should have
left the DEL key where it was, and added a delete-to-the-right button in
the place where we have delete buttons now. It seems that that brings us
to a deadlock. Implementing programs using the old definition would mean
making Delete delete-to-the-left, and Backspace also delete-to-the-left
(since making it delete-to-the-right weuld be rather unlogical). For
people using old-style keyboards like Msr. Lecarme, that would solve all
problems, and it would also be consistent historically.
However, this leaves us without a key (or keysym) for
delete-to-the-right, thereby making supporting the pc standard
impossible, even tweaking the xmodmap wouldn't work.
The only solution for good default behaviour I can come up with is a
rather weird one. We'd have to interpret the Delete keysym as
delete-to-the-left, and Backspace as delete-to-the-right. As I said
before, this is highly illogical, but it's, as far as I can see, the
only solution that would support both original keyboards (automatically,
Delete works correctly and there is no Backspace key) and PC style
keyboards (the keys would have to be swapped in the xmodmap).
The problem with this is that changing the behaviour in gimp (or GTK,
since I agree that this would be more of a GTK problem) would "break" it
on every PC out there, so that all users would have to change their
Xmodmap, thereby breaking other programs that depend on Backspace being
delete-to-the-left and Delete being delete-to-the-right.
Having written that, I think that there is one solution left. Make a
config option in GTK that allows Delete being interpreted as
delete-to-the-left. I have no experience whatsoever with GTK hacking but
I don't think it should be that hard to implement. People who prefer PC
style behaviour would leave the switch to off, while Msr. Lecarme would
turn it on and make his Delete key work appropriately according to his
And Simon: All true, so it conforms to the PC standard. As far as I
understand now (and I think I understand the problem) the Delete keysym
should actually delete to the left (ie behave like Backspace)