Yeah, we use OpenVMS 8.3 and linux thin clients with KDE konsole. Here are the contents of our own keyboard file:
/usr/share/apps/konsole/idsvt420pc.keytab
---------------------------------------------------------------------------
# [vt420pc.keytab] Konsole Keyboard Table (VT420pc keys)
# adapted by ferdinand gassauer
f.gassauer@aon.at
# Nov 2000
#
################################################################
#
# The escape sequences emmited by the
# keys Shift+F1 to Shift+F12 might not fit your needs
#
################# IMPORTANT NOTICE #############################
# the key bindings (Kcontrol -> look and feel -> keybindgs)
# overrule the settings in this file. The key bindings might be
# changed by the user WITHOUT notification of the maintainer of
# the keytab file. Konsole will not work as expected by
# the maintainer of the keytab file.
################################################################
#
# --------------------------------------------------------------
keyboard "idsvt420pc"
# --------------------------------------------------------------
#
# This configuration table allows to customize the
# meaning of the keys.
#
# The syntax is that each entry has the form :
#
# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
#
# Keynames are those defined in <qnamespace.h> with the
# "Qt::Key_" removed. (We'd better insert the list here)
#
# Mode names are :
#
# - Shift
# - Alt
# - Control
#
# The VT100 emulation has two modes that can affect the
# sequences emitted by certain keys. These modes are
# under control of the client program.
#
# - Newline : effects Return and Enter key.
# - Application : effects Up and Down key.
#
# - Ansi : effects Up and Down key (This is for VT52, really).
#
# Operations are
#
# - scrollUpLine
# - scrollUpPage
# - scrollDownLine
# - scrollDownPage
#
# - emitSelection
#
# If the key is not found here, the text of the
# key event as provided by QT is emitted, possibly
# preceeded by ESC if the Alt key is pressed.
#
# --------------------------------------------------------------
key Escape : "\E"
key Tab : "\t"
# none of these show significant results
#key Tab-Shift : "\t"
#key Tab+Shift : "\E[Z"
#key Tab+Shift : "Shifttab"
# VT100 can add an extra \n after return.
# The NewLine mode is set by an escape sequence.
key Return-NewLine : "\r"
key Return+NewLine : "\r\n"
# Some desperately try to save the ^H.
# may be not everyone wants this
key Backspace : "\x08" # Control H
key Delete : "\x7f"
# These codes are for the VT420pc
# The Ansi mode (i.e. VT100 mode) is set by
# an escape sequence
key Up -Shift-Ansi : "\EA"
key Down -Shift-Ansi : "\EB"
key Right-Shift-Ansi : "\EC"
key Left -Shift-Ansi : "\ED"
# VT100 emits a mode bit together
# with the arrow keys.The AppCuKeys
# mode is set by an escape sequence.
key Up -Shift+Ansi+AppCuKeys : "\EOA"
key Down -Shift+Ansi+AppCuKeys : "\EOB"
key Right-Shift+Ansi+AppCuKeys : "\EOC"
key Left -Shift+Ansi+AppCuKeys : "\EOD"
key Up -Shift+Ansi-AppCuKeys : "\E[A"
key Down -Shift+Ansi-AppCuKeys : "\E[B"
key Right-Shift+Ansi-AppCuKeys : "\E[C"
key Left -Shift+Ansi-AppCuKeys : "\E[D"
# function keys
key F1 -Shift : "\E[17~"
key F2 -Shift : "\E[18~"
key F3 -Shift : "\E[19~"
key F4 -Shift : "\E[20~"
key F5 -Shift : "\E[21~"
key F6 -Shift : "\E[23~"
key F7 -Shift : "\E[24~"
key F8 -Shift : "\E[25~"
key F9 -Shift : "\E[26~"
key F10-Shift : "\E[28~"
key F11-Shift : "\E[29~"
key F12-Shift : "\E[31~"
key Pause-Shift : "\E[34~"
#
# Shift F1-F12
#
key F1 +Shift : "\E[11;2~"
key F2 +Shift : "\E[12;2~"
key F3 +Shift : "\E[13;2~"
key F4 +Shift : "\E[14;2~"
key F5 +Shift : "\E[15;2~"
key F6 +Shift : "\E[17;2~"
key F7 +Shift : "\E[18;2~"
key F8 +Shift : "\E[32~"
key F9 +Shift : "\E[33~"
key F10+Shift : "\E[21;2~"
key F11+Shift : "\E[23;2~"
key F12+Shift : "\E[24;2~"
key Home : "\E[H"
key End : "\E[F"
# IDS (Godwin 15-Feb-2007) remapped the NumLock and KP_Divide
# keys to VT420 (VMS) PF1 and PF2 by firt using "xmodmap" like this:
#
# xmodmap -e "keycode 112 = F22 XF86_Ungrab"
#
# that allowed me to map the "slash" or "divide" on the keypad to
# the "F22" key interpreted by konsole (via QT). In this file then
# I can look for the F22 keystroke. Otherwise, konsole doesn't distinguish
# between the "slash" on the keyboard and the "divide" on the keypad.
key NumLock : "\EOP"
key F22 : "\EOQ"
key Prior -Shift : "\E[5~"
key Next -Shift : "\E[6~"
key Insert-Shift : "\E[2~"
# Keypad-Enter. See comment on Return above.
key Enter+NewLine : "\r\n"
key Enter-NewLine : "\r"
key Space +Control : "\x00"
# some of keys are used by konsole.
key Left +Shift : prevSession
key Right +Shift : nextSession
key N +Control +Alt : newSession
key Up +Shift : scrollLineUp
key Prior +Shift : scrollPageUp
key Down +Shift : scrollLineDown
key Next +Shift : scrollPageDown
key Insert+Shift : emitSelection
#----------------------------------------------------------
# keypad characters as offered by Qt
# cannot be recognized as such.
#----------------------------------------------------------
# Following other strings as emitted by konsole.