Red Hat Bugzilla – Bug 138191
Incompatibilities between konsole and real xterm [patch]
Last modified: 2007-11-30 17:10:53 EST
I'm also reporting this here, because the response to similar bug
reports upstream have been lacking. This is reported upstream under:
For the lack of progress with simular bugs upstream see:
Notice I'm willing to write a proper fix for this if you're interested
in it, iow if there is a reasonable chance that it will get included
Here is the original upstream bugreport for convience:
There are number of incompatibilities between konsole and xterm for
convience I'm listing them all here, lett me know if you want any in a
Alse see: http://bugs.kde.org/show_bug.cgi?id=65067
Where some of this has already been discussed.
Key (esc) sequence incompatibility:
-Konsole by default sends ASCII DEL instead of CTRL-H (^H), which is
the official xterm default.
-The ESC sequences send for home and end keys with modifier differ
from those send by the official xterm.
-The ESC sequences send for F1 - F12 with modifiers don't honor
combinations of modifiers like xterm does, see
-Konsole doesn't send distuingish between cursor keys, insert, page-up
and page-down without and with modifiers (alt, ctrl, shift).
The official xterm has different ESC sequences for these keys with
modifiers, like the F-keys have.
Hi Hans, it's great if you write the fix for this problem. of course
i'm interested in it ;-)
It took some time before I had time to write the fix, and then writing
it also took some more time then I had estimated, but here it is (see
The patch really consist of 3 parts:
1) modify keytrans.cpp & .h To learn the keytab modifier word AnyMod,
this because the real xterm can also report combinations of
modifiers for certain keys, so we either need 8 keytab lines per
key or a special keyword for this.
2) modify the default keytab to use the new keyword and fix all
bugs decribed above.
3) since backspace now sends ^H (like the real xterm) the tty erase
character needs to be changed from the default ^? to ^H, this
wasn't possible in the old konsole code, thus I added the
-a setErase member to the TEPty class
-a getErase member to the TEmuVt102 class and to the TEmulator
-added code to session.cpp which ties these 2 together
That's all folks, please apply!
Created attachment 111423 [details]
Patch fixing tthe described inconcistencies
Created attachment 111812 [details]
Same patch but this time against 3.4.0rc1
Upstream requested me to redo the patch against 3.4.0rc1.
Warning not tested /compiled yet, but it should work fine :)
Great. It's now included in kdebase-3.4.0-0.rc1.5. Thanks for the patch.
I've made the time today to actually compile and test my patch and
there is a bug in it, sorry about this. This bug only shows up
runtime, starting konsole from a terminal gives:
[buildin](27,12):error: Unknown mode name.
This is because shift is spelled without an initial captial in
README.default.Keytab one time and thus also gets spelled without a
capital in the generated default.keytab.h
Unfortunatly since this is in a string this doesn't get caught by the
compiler. Anyways I'm attaching a fixed patch for you.
Created attachment 111862 [details]
improved (bugfree/tested) patch
Something still isn't ok, shift + cursorkeys left/right doesn't work as one
would expect. This patch is an improvement over the last one but I might need
todo a third revision.
I've pinned down the shift cursor left/right strangeness, these are
caught by the konsole ui-widgets for changing tabs and thus never
reach the terminal emulation object.
For now please apply the fixed patch, I will probably be back with a
cleaned up version, but no functional changes. I'm planning on
removing all the shift cursor left/right bindings since these will
never be used.
Currently I'm trying to get contact with upstream and discuss this
with them since they've added some specific emulation bindings for
shift cursor left/right which is strange since these never reach the
emulation object. See:
it's included in kdebase-3.4.0-0.rc1.5. thanks
sorry, i mean kdebase-3.4.0-0.rc1.6
Created attachment 112337 [details]
cleaned up patch
After discussion with upstream all the bogus(unused) shifted cursorkey bindings
have been removed, resulting in a much cleaned up patch.
This is the last one (I promise) and as such has been submitted upstream for
inclusion, which will hopefully hapen soon.
it's commited in our CVS. The kdebase-3.4.0-3 will include this fix. thanks
Created attachment 113354 [details]
Patch fixing the described inconcistencies
I know I promised the last version was final, but I'm afraid this needs one
The previous versions of this patch changed the character send by the backspace
key from ASCII-DEL (\177) to CTRL-H (^H) to match the real xterm and terminfo
as distributed both upstream and by Fedora/RH. However as resolution to bug
142659 it has been decided that backspace for terminals setting TERM to xterm
should send ASCII-DEL. Patches for terminfo (bug 142659) and xterm (bug 128138)
doing this are pending.
This really really _really_ last itteration of this patch thus removes the part
which changes backspace from ASCII-DEL to CTRL-H . Please apply.
It's now included in kdebase-3.4.0-6. Many thanks for your patch file