||*CID:||+v128R~:  2016/09/08                update#=  178;           ||~v128R~
######################################################################
[English]     v1.27 (Japanese:See xelnxj.txt)                         ||~v124R~||~v127R~
######################################################################
There are 2 executable gxe(GTK version)                               ||~v127R~
and xe(work on Terminal emulator such as gnome-terminal,konsole or xterm OR full screen console).||~v127R~
In the following section "#ifdef XXE" means that is description for gxe only.

(1) How to start.

(1-A) Installation from source package

  .Melt gxe-v.rr.tar.gz file on PC(v.rr:version). ex) "tar -xvzf gxe-1.23.tar.gz".
    In the top directory expanded,
      ./configure        (generate Makefile)
      make               (compile & link)
        (See README in the top dir for installation troubles)
      directory structure is as following.
        topdir--README
               +src-                           gxe,gxeDebug
                   +--xe                       xe,xeDebug,xe3270,xe3270Debug
                   +--xsub                     command line tools such as xfc.
                   +--xp                       xprint
                   +--sample
               +--doc-
                   +--en                       flat file document(English)
                   +--jp                       flat file document(Japanese,SJIS and EUC)
                   +--xehelp                   Html documents used by help command and help menu selection.
                                               Icon image wxe.png is here.
      (See also (2) about doc files)
  .You can install some objects including wxe.png to the default directory using "make install".
    (root permission is required)
     gxe,xe,xprint,xfc -->/usr/local/bin                     (this can be changed by --bindir option for make)
     xehelp            -->/usr/local/share/gnome/help/gxe    (packagehelpdir variable of configure.in)
     wxe.png           -->/usr/local/share/pixmaps/gxe
     move binaries what you want to the directory on the PATH.
     xxxDebug is binary compiled with -g option.
     Install other executable manualy such as tool in xsub directory.

(1-B) Installation from binary package

        (src package only from v1.27.)                                ||~v127R~

(1-C) Execution.

#ifdef XXE

   Enter "gxe [filename]" on terminal emulator.
   Or, create shortcut icon on desktop using wxe.png.                 ||~v124R~

#else

  .Start xe by "xe [filename]".

   Command line parm is displayed by "xe --h"(help only for Linux)
   or "xe -h"(common help).

  (Note)-xe works in console mode(run-level=3) and on terminal emulator
         on X(run-level=5).
         Use Ctrl+Alt+Fn(n:1-->6) to switch to console n.
         Console that startx is issued is not avail,usualy it is
         console 1.
         Use Ctrl+Alt+F7 to switch back to X.
         Unlike console mode,terminal emulator's key-binding is limited.
         To utilize more function key on terminal emulator,
         X setup such as key-binding is required.
         See (4) for setup X, (5) for mouse operation.

        -When use xe on puTTY(**), use puTTY with patch to enable key remapping.
         There is no need to set X environment and to consider what type of terminal emulator
         on which xe works.
         (**) puTTY:free open source telnet client program by Mr. Simon Tatham.
              My patch is to enable general key remapping for xe to utilize
              all shift modifier key conbination.
              Download puttykm.tgz from //www.geocities.jp/sakachin2/index.htm.
              It may be more convenient to run xe on puTTY localy
              than on terminal emulator directly such as gnome-teminal
              with xelnxkey.xxx.
              See also description in (6)Sample file-(i)puTTY.xekeymap.
#endif

  (Note)-Work directory xe_wdnnnnn and xe_undel_nnnnn(nnnnn:UserID)
         are created in ~/(HOME) or /tmp if HOME is / (root).
         Work directory is set to any name if you need ,specifying it
         by env-variable(export xe=xxxx) or -wxxx command line parameter.
         Or env-variable(export xe_undel=xxxx for undo linecmd on dir-
         list.

        -Under KDE environment,start may fail by "error loading shared libraries:..."
         for libgnomevfs, libnomeprint etc.(Case of binary package installation)
         To fix this error,install another gnome application using installer.
         For Kubuntu 6.10,I installed "GNU paint" and "Glade" using "Adept installer"
         with "Any suite" selected.

        -When xe or gxe is hunged.
         Kill the process on the console mode screen.
         X mode is changed to console mode by Ctl+Alt+Fn(n is from 2 to 6),
         and use Ctl+Alt+F7 to back to X mode.
         To kill process,get processId by
           ps -ef|grep xe
         Then enter kill command.(nnnn is processId)
           kill -9 nnnn

        -Adjustment of keyboard rate.
         For Console mode,set "kbdrate -r 6 -d 250" in /etc/rc.local.
         (6:characters per second when repeat. 250:wait 250ms to generate repeated char)
         For X(gterm etc),Open keyboard rate panel by Desktop->Personal->Keyboard.
         Adjust cps and delay parameter testing on TextBox bellow.

        -If WindowManager reacts to the key operation or if xe dose not react,
         adjust system defined shortcut keys and xe key assignments.
         Especially many short cut keys are defined on Kubuntu edgy.  ||~v124R~
         To change shortcut key definition,
         System->Preference->keyboard shortcut for FC5,
         SystemSettings->Computer Administrations->Keyboard & Mouse->keyboard shortcuts for Kubuntu edgy.
         for openSUSE10:
           Configure Desktop Personal Settings->Regional & Accessibility
           ->keyboard Shortcuts.
           F12 popup Kerry Beagle Search as default.
           To disable F12,push "Open configuration dialog".           ||~v124R~
           Select "Show Search Dialog" then push "Custom" radio button.
           Reboot is required.

(2) xelnx___.tgz (___:version) file contains following files.
                                                                      ||~v127R~
      (src package only from v1.27.)                                  ||~v127R~

      Followings are in the sample directory.                           ||~v124R~||~v127R~

      . xprint.sh    simple wrapper of gxe.                           ||~v127R~
      . xpesc        sample shell to use Esc printer for xprint
        (Note) xe use xprint.sh as default.
               To use another script setup xe.ini file like as following.
                 XPrint_Command_LNX="xpesc" #("")# XP command
      . XE4S001Z.asm  Host ASSEMBLER file used to access Turnkey-MVS.

#ifdef XXE
      (following files are irrelevant to gxe)
#else
      From v128E key combinations of Shift+Alt and Shift+Ctrl+ is available.||~v128I~
      So folowings are not required.                                  ||~v128I~
      To use these combination keys, check Linux shortcut assignment(Settings-->Shortcut).||~v128I~
      When key widthout Shift(A+Fn,C+Fn) is defined as shortcut,      ||~v128I~
      it mey be required also to set it disable.                      ||~v128I~
                                                                      ||+v128I~
      (These settings are to enable as many function key such as F1,Ins)||~v127R~
      (with modfifier key(Shift,Ctrl,Alt).                             )||~v127R~
      (When you are not clear, It would be better to use corresopnding )||~v127R~
      (command like as "UNDo" assiged to Shift+F1 as default.          )||~v127R~
                                                                      ||~v127R~
      . xej106.map   Sample keyboard setting data for fullscreen console mode.||~v127R~
                     Not used usualy except working under Japanese:kon.||~v127R~
      In the following 3 file types,xxx is linux distribution ID.
          tb6.0 :TurboLinux v6.0
          rh8.0 :RedHat v8.0     rh9   :RedHat v9
      .xelnxres.xxx  Sample resource file for xe under xterm/kterm.   ||~v124R~
                     xelnxres.full is refference only which shows
                     all key definition.
      .xelnxkey.xxx  mapping table of Esc string and key combination.
                     Use to modify xe default tanslation string to key.
                     See (9)-(b) for xe default.
                     Use --k option.
                     ex. "xe --kxelnxkey.xxx"
      .xexmap.xxx    X key binding modification file.
                     Use to fill some key combination under gnome-terminal.
                       ex) "xmodmap xexmap.xxx"
                     By OPT CCFUNC cmd,Ctrl+CharKey is available as function-key.
                     If you use those keys, xexmap.xxx may not be used.
                     See (5) Restriction.
      .xegt,xekt,xext sample shell to start terminal emulator gnome-terminal,
                      kterm and xterm each with setting up xe environment.
                      Then kick xe.
      .xegetdv       Called from xegt/xekt/xext,get distribution ID to
                     determine file name suffix of xelnxres.xxx etc.
      .xesetxenv     Called from xegt/xekt/xext,set up environment variable of
                     xe for X. Modify it according to your directory structure.
      .puTTY.xekeymap key mapping file for puTTY with my keymapping patch.
      .xe.keytab     key mapping file for KDE konsole.

#endif

######################################################################

(3). Difference between Linux Console and other version.

     Before explaining difference between Linux version and others,
     I'll show,you may know, some difference between UNIX and DOS
     which I found in porting work.

  - FileName.
    . No DriveID under UNIX.
    . Directory separator is "/". It is "\" under DOS.
    . Case sensitive filename. Command name is usualy by lower case.
    . "." and ".." is allowed as filename char.
      Bash(Linux shell) interpret "!" and it should not be used.
    . "*" and "?" is allowed as filename char,but shell expand it.
      Command "rm *" to delete filename * will delete all member.
    . "~" means home directory.
    . Wildcard "*.*" dose not match to filename embedding no ".".
  - File operation.
    . 0x1a(Ctrl+z) is not EndOfFile ID.(it can be read beyond EOFID).
    . File and Dir has permission.
        And,when a dir has t-bit on it is protected from rename/unlink
        by other than root or owner.
        Files in a dir with x-bit off is not shown.
        Permission setting of mkdir is controled by umask setting.
        So another chmod may required.
        Permission of file on DOS partition mounted cannot be changed.
    . File timestamp unit is second.(Dos is by 2 seconds).
    . Cd command without operand means cd ~(change to home dir).
#ifdef XXE
      (following about keyboard are irrelevant to gxe)
#else
  - Keyboard.
    . DOS feedback pair of scancode/charcode,UNIX translate keycode
      and returns Escape seq string for extended key like as F1,Ins...
      (Under X, another translation is done,but terminal emulator like as
      xterm generate Esc string corresponding to the X key event.)
      For ex, \x1b[2~ by Insert key.

      Following description is for Fullscreen Console mode only. See (4) for X mode(on Terminal Emulator).||~v124R~||~v127R~

      Strings are set on Terminfo Database(/usr/lib/terminfo) determined
      by TERM env-var,but it shows just how program like as shell pgm
      understand those strings. Key and string mapping is set by      ||~v124R~
      loadkeys cmd. Mapping file is in /usr/lib/kbd/keytables.
      Usualy key generate the string defined on Terminfo.
      Loadkeys cmd may be used to change this mapping.                ||~v124R~
    . Mapping file identify left and right Alt key.
    . "dumpkeys" cmd shows current mapping.
      Output of dumpkeys is also used for input of loadkeys.
      Sample output format of dumpkeys is as following.
      (It is my understanding and it may have error)

       1) keymaps 0-2,4-6,8-9,12
       2) alt_is_meta
       3) keycode   1 = Escape           F83
       4)     control keycode   1 = F84
       5)     shift   alt keycode   1 = Meta_Escape
       6)     keycode  60 = F2               F14              Console_14       F2
       7)     alt      keycode  60 = Console_2
       8)     control   alt keycode  60 = Console_2
              :
              :
              :
       9) string F1 = "\033[[A"
          string F2 = "\033[[B"
          string F3 = "\033[[C"
              :
       1) Mapping index.
          It specify correspondance of each columns with shift key.
          Each digit is constructed with 0:Normal,1:Shift,2:AltGR(Alt-R),
          4:Ctrl,8:Alt(Alt-L),16:Shift-L,32:Shift-R,64:Ctrl-L,128:Ctrl-R.
          Sample line specify column left of "=" is sequecialy        ||~v124R~
          Normal(0),Shift(1),AltGR(2),Ctrl(4),Shift+Ctrl(5),AltGR+Ctrl(6),
          Alt(8),Shift+Alt(9),Ctrl+Alt(12) each.
       2) Alt+x(char key) generate Meta-x char.
          Meta-x is determined by setmetamode setting.
          That is Esc+x or 0x80|x. For example,Alt+a is 0x1b61 or 0xe1.
       3) This is Function name assigned to a keycode.
          Keycode value is shown by showkey cmd.
          This example is that keycode 1 is for Escape and for F83
          with Shift+. F83's meaning is determined by each application.
          Mapping file can only define strings generated by the key
          combination. 9) is sample string definition.
       4),5),7),8)
          Another format of Shift key combination.
       6) F14 is assigned to Shift+F2. AltGR+F2 is for Console14,
          but max number of console supported is limitted.
       7) Alt(Alt-L)+F2 is assigned to console2,that is,Alt+F2 switch
          screen to another console.
       9) Strings are defined for each Fxx.

    . Combination with Alt key is sometimes intercepted by operating
      system itself or shell.

    . xe,at the initialization,assigns strings to functions using API
      like as loadkey command do.
      Esc string assingnment is allowed only for Fnn key.
      xe assign Fnn to key combination(Shift/Ctrl/Alt) which is used by xe.
      String assigned to Fnn is set to xe format which is constructed by
      scancode, charcode and modifier key ID, that is \x1B~+scancode+charcoe+shiftid.
      See (9)-(a) for mapping of key combination and scan+char code.

      ex) F48 is assigned to Alt+F12 with \x1b~8C003.
          F48 is function name assigned by xe to Alt+keycode 88.
          \x1b~ is id of string by xe. 8C00 is scancode+charcode for Alt+F12
          defined on PCDOS.
          Shift id is 0:No shift, 1:Shift+, 2:Ctrl+, 3:Alt+.          ||~v124R~
      These are set also by Linux command "loadkeys".
      Under kon(Kanji ON console),assign API is not avail.
      So use "loadkeys xej106.map" for xe before enter to kon.
      For compatibility with other application,strings defined on
      terminfo is not changed and accepted.
      For ex,"^[[[A" is usualy assinged to F1 by terminfo library
      (/usr/lib/terminfo/l/linux), and xe accept it.
      See (9)-(b) for default translation accepted by xe.             ||~v124R~
#endif

  - Screen.
#ifdef XXE
    . gxe allow background color change by color-dialog from Setup pulldown
      menu. Foreground colors are changed by gxe option 0 on top menu.
#else
    . curses routine support color control.
      Linux may not support background highlight.
    . There is no method to change cursor shape in curses library.
#endif
  - Other miscellaneous.
    . Use "-" as command flag parameter(DOS use "/"),                 ||~v124R~
      and allow parm with value,for ex,by both "-o fnm1" and "-ofnm1" fmt.

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

     So,there are following difference.

  - FileName.
    . Change to "_" from "!" which is used for the file internaly used.
    . File or directory which name contains "*" or "?" is not processed.
    . Issue confirmation when filename is "*",
      It may be misunderstanding of current file.
      ("xprint *" means print current displayed file.)
  - File operation.
    . CD with no operand set to home directory.
    . Display EOFID(0x1a:Ctrl+z) on last of file under textmode also.
      0x1a(Ctrl+z) is not a input inhibit char.
      So,INI file cannot be share between Linux version and others.
      (To get default INI file,Enter ini cmd after starting by "xe -i").
    . WorkDir and UndoSaveDir for undo of dir list cmd is created
      for each user. There is no need of XE environment variable.
    . Chmod command is added.
        New option of mkdir to specify permission is added.
        Attribute specification is changed to permission specification
        for attr DOS command/line command on dirlist.
        s-bit(Setuid/Setgid) and t-bit(Sticky) can be set.            ||~v124R~
        Mode parameter format is oooo or oooxx.
        For oooo format,first "o" is setuid(4),setgid(2),sticky(1).
        And last 3 "o" is for usual permision,owner,group and others.
        For oooxx format,ooo is usual permission, xx is sSgt.
        u:setuid, S:setuid+setgid, g:setgid, t:sticky.                ||~v124R~
        See help msg by attr command with no operand.
        Permission of files in DOS partition mounted is not changed.
        Filename case(lower/upper) changeing is not allowed also for
        the files in the DOS partition.

  - Keyboard.
#ifdef XXE
    . Left-Alt and Right-Alt key is same effect.
#else
    . Use Left-Alt key for Alt key combinations.
      Combination of Right-Alt key and char key is not defined.       ||~v124R~
    . String genenated by a key and its translation by xe is checked
      by xekbchk utulity.
#endif
  - Screen.
#ifdef XXE
#else
    . 8 colors and mono-color are supported.
      Foreground color can be highlighten(additional 7 colors).
    . Cursor mode identifying char input mode Insert or Replace,
      is specified by --b(Blink) or --r(Reverse:this is default).
#endif
    . Userid/Groupid or UserName/GroupName is displayed on dirlist.
      Use F6/S+F6 to exchange from file size display mode.
      (For remote file,ID or Name is fixed for the remote,it is not changed)
      FileSize ---->S+F6---->Userid/Groupid
                                   ^
                                   |
                                  S+F6
                                   |
                                   v
      FileSize <----S+F6<----Userid/Groupid
  - Other miscellaneous.
    . "-" is used as command flag parm,but "/" may be sometimes allowed
      when the position is not for filename.
      Parm format of value followed,no intermediate space is allowed.
      For ex,"-ofnm" is ok,but "-o fnm" is invalid.
#ifdef XXE
#else
    . Command line parm for Linux version only is displayed by        ||~v124R~
      "xe --h". The format is
      xe [--bcdhmur1] [--7{B|D|C}] [--kfilename] [cps]
        b :Blink when insert key mode.
        B :A_BOLD attribute usage.(A_BOLD is now used to hilight color,e.g yellow)||~v124I~
           A_BOLD attribute may distort charcters displayed on CONSOLE1-6.||~v124I~
           Specify --B cmd line option if there is no problem at your environment.||~v124I~
           On the other hand, on X terminal emulator A_BOLD is default,||~v124I~
           --B option now is used not to use A_BOLD.                  ||~v124I~
        c :Clear all line of screen before draw when full screen draw case, e.g. PgUp.||~v124R~
        d :re-draw only the line updated when screen split on DBCS environment.||~v124R~
           default changed from(RH9 version:on to FC5 version:off)    ||~v124I~
        m :Mono color mode.
        Mi-j:Mouse click,double-click interval by 0.1 second unit.    ||~v124I~
             i:Down-->Up interval, "click" if the interval is bellow this paraameter.||~v124I~
             j:Up-->Down interval, "double-click" if the intervals is bellow this parameter.||~v124I~
             Default is -M6-2.                                        ||~v124I~
        r :Reverse when insert key mode.(default for VT-Console mode)
        u :UnderLine when insert key mode.(default for X-terminal mode)
        1 :RH9 version:draw DBCS line by one write API.               ||~v124R~
           FC5 version:draw DBCS line by two write API.               ||~v124I~
           Try write twice if DBCS remains by e.g. PgUp,              ||~v124I~
        7 :tarnslation of 0x7f. B:BackSpace D:Delete C:char-0x7f
           Default is terminfo specification.                         ||~v124I~
        k :kaymap file.
           mapping file specify translation Esc string to key combination.

       cps:common parms with other platforms.
           these are displayed by "xe -h".
 (note)
    Under kon(kanjiOnConsole) or kterm,DBCS(Japanese) drawing may     ||~v124R~
    not be stable. So,2 options are prepared for DBCS mode.
    First is to clear whole screen before draw, and second is to write
    line once without DBCS and next write DBCS only.
    DBCS mode is kon(Console mode) and terminal emulator except
    xterm(X mode).
    Default is
    "Clear whole screen at full screen re-write case(ex. PgUp) if
    screen is not splitted. Else draw DBCS line twice".
    Following option modifies default.
    "--c":Clear all line at full screen write even if screen is splitted.
          Another screen may flicker for old CPUs.
    "--d":Draw updated lines only,no whole line clear.
    "--1":Draw DBCS line by one write API.
    Latest gnome-terminal may be ok with --1 and --d.
#endif

######################################################################

#ifdef XXE
#else

(4). Setup for X mode.

(4A) KDE.

    .For konsole,Settings->Configure shortcuts allow shortcut key
     customization.
     You can remove Shift+Insert from function Paste.
     But keytab setup required to utilize key combination more.
     See (8)-(j) xe.keytab

(4B) GNOME.                                                           ||~v124R~

    .Under X,xmodmap command is used to re-map keycode and functions.
     But no string can be set for a key-hit.                          ||~v127R~
                                                                      ||~v124R~
     These are for xterm and kterm,                                   ||~v124R~
     jump to ".On gnome-terminal" for gnome-terminal or konsole.      ||~v124R~
                                                                      ||~v124R~
     Terminal emulator such as xterm/kterm generate strings alternatively.
     But it is not sufficient for xe,you need to add key and modifier key||~v124R~
     (Shift/Ctrl/Alt) combination as Xresource definition.
     Merge sample xelnxres.xxx file(xxx:distributionID) to Xresource
     using xrdb command.
     Application name in the X-resource file is "xe" to avoid
     intervention with other appl on xterm/kterm.
     So,it is required to notify to terminal emulator.
     ex) "kterm -name xe -e xe"
         -name is application name and -e is command name.
         xe of "-name xe" is corresponding to xe in X-resource file.  ||~v124R~

           xe*cursorColor: blue
           xe*vt100.Translations:  #override \n\
               Shift<Key>F1:   string(0x1b)    string("~54001")\n\
               :
               :
     Starting shell is like as following.
        xrdb -merge /g/src/xe/xelnxres.xxx
        kterm -name xe -e xe $1 $2 $3
     ==>See sample sell xegt/xekt/xext in (6).

     To setup environment without intervention,following is another   ||~v124R~
     method.
     Create copy of command file kterm. ex)cp kterm ktermxe.
     Prepare X-resource file with appliaction name is of copied file.
     Start xe on the copied kterm command name.
     Copyed filename should have original command name string in the name,
     because xe determines terminal emulator from command name of the ||~v124R~
     parent process.

     If intervention is not a problem,you can specify
     application class name in the resource file.
     ex) KTerm*vt100.Translations ...
     KTerm is class name,so all application under kterm is effected.
     In this case X-environment for xe may be setup as following.
     Add following line to $HOME/.bashrc.

        if [ -f /local/etc/xelnxres.xxx ]; then
	        xrdb -merge /local/etc/xelnxres.xxx
        fi

     "xekbchk -sfnm" write default string which is accepted by xe.
     Those are shared with other application.
     See (9)-(b) for xe default.

                                                                      ||~v124R~
    .On gnome-terminal.                                               ||~v124R~
                                                                      ||~v124R~
     These are not for gnome-terminal which dose not chk X resource.
     F1 is assigned for help as default,set disable it on the menu    ||~v124R~
     Edit-->keybindings.
     And disable assignment of F10 to menu short cut.
     Shift+F10 is intercepted by gnome-terminal of FedoraCore4.
     This may not be remapped because it seems to me that is GTK default.
     And gnome-terminal depends on vte.
     vte fixes some key combination,such as Shift+Insert to paste clipboard-PRINMARY.||~v124R~
     Shift+PgUp/PgDn/Home/End are also fixed.(see vte.c of vte SRPM)
     To work around these use xmodmap reasignment.
     See also (6) sample file. (e)xelnxkey.xxx                        ||~v124R~

#endif
######################################################################

(5). Restriction.

#ifdef XXE
    .See xewxee.txt about mouse operation.                            ||~v124R~
#else
    .Mouse operation.
     There are some diference from gxe version mouse operation under X.
     (No mouse support when fullscreen console mode it is not under X).||~v127R~

     "Click" means button release until 600ms after button down.
     "PUSH" means continued button down over 600ms.
     "Double-Click" means click after 200ms from 1st click.
        These interval is changed by --M cmd line parameter.
        ex.    xe --M10-3.
       .Left button:
             -set text cursor(caret) position.
             -set copy range of Cut&Paste by "PUSH"ing on file edit/browse screen.
              use middle button to paste.
             (XXE version specify range of Cut&Paste by mouse movement(drag).||~v124R~
              Linux version use middle button to paste.
              No function support for scroll by continuing to push at the
              edge of screen)
             -If pushed while the 3 times of scroll interval at the
              edge of screen,scroll starts.
       .Right button:
             -Not used.
             (WXE use it to popup menu.)                              ||~v124R~
       .Middle button:
             -Use to paste clipboard contents.
              2 paste mode,insert and replace,are supported.
                   middle button:Insert mode
              Ctrl+middle button:Replace mode
              At insert mode,insert lines when text cursor is on
              the Line-Number column,insert the block into the
              position shifting right half of the line to the right.
              (XXE version insert by Shift+LeftButton,replace by Ctrl+LeftButton.)
              Wheel scrolls verticaly.
              Shift+wheel scrolls horizontally.
              Ctrl+wheel jumps to top/last page of the file.
              Scroll count is fixed to 3 lines/columns.
       .Left Button Double Click:
             -Save and exit when double click on the title area.
              Cancel and exit by Ctrl+Left Button Double Click.
             -Select line at the panel of menu,file name select and dir-list.
              At the panel filename select and dir-list,open the file
              by reverse Edit/Browse mode of current panel when Ctrl key is
              combined. (XXE version use Shift+ for Ctrl+.)
             -At Browse/Edit file panel,the line(when cursor is on the
              line-number column) or word(when cursor is on the file contexts
              area) is copyed to Cut&Paste board.

    .Under console,xe restore original keyboard assignment when last
     session closed.
     If key-assignment is not recovered by any trouble,
     remove "rm /tmp/lockfile_ukbdlnxc"(key assignment saved at first
     start of xe) then reboot machine.

    .Or,keyboard setting is restored by loadkeys command,
     ex,"loadkeys defkeymap".
     Mapping file is /usr/lib/kbd/keytables/*.map.
     For the case your setting is to use the other mapping file,
     save your mapping at first login after reboot using,for ex,
     "dumpkeys >~/dumpkeys.org".
     To reset to original enter "loadkeys ~/dumpkeys.org".
     Keyboard setting effect not only to the session but all
     console session.
     Especially take care when kon is last session closed.            ||~v124R~

    .Under Japanese:kon(Kanji ON Linux console),Keyboard setting is not changed||~v127R~
     by API.(I don't know how to change the mapping on pty.)          ||~v124R~
     Once exit to normal console,executed "loadkeys xej106.map",
     then re-enter to kon.
     Or switch to another console by Alt+Fn(n:1--6) then start xe
     and back to original console leaving the xe active.
     If these setting is missed,screen corrupted by Shift+PgDn etc.
     Those key is conflict between shell's operation and xe's one.    ||~v124R~
    .A few combination key is not avail for xe even X xelnxres.xxx,
     xelnxkey.xxx and xexmap.xxx is used.

      TuboLinux-V6.0
        gnome-terminal.
          S+F1-->S+F12,S+Up/Down/Left/Rightm,C+Ins,C+Del,C+F7-->C+F9
      RedHat-v8.0
        gnome-terminal.
          S+F1-->S+F12,S+Up/Down/Left/Rightm,C+Ins,C+Del,C+F7-->C+F9
      RedHat-v9
        gnome-terminal.
          S+BackSpace

      From v1.15,Ctrl+CharKey is available for function key.
      Default assignment is as following.
          C_t=S_TAB,C_b=S_BS,C_x=S_ENTER,C_a=S_INS,
          C_d=S_DEL,C_e=S_END,C_p=S_PGUP,C_n=S_PGDN,
          C_u=S_UP,C_f=S_DOWN,C_l=S_LEFT,C_r=S_RIGHT
      These area available by OPT cmd,"OPT CCFUNC ON".
      It may be a solution for available key insufficiency.
      For RedHat9 gnome-terminal,no X-setup(xmodmap file) may not be used.
#endif

(6) sample file.

#ifdef XXE
      (following files are irrelevant to gxe except xprint.sh)
#else
    (a)xej106.map
      key binding file for Fullscreen Console mode.                   ||~v127R~
      Use as "loadkeys xej106.map".

      0001|keymaps 0-2,4-6,8-9,12
      0002|alt_is_meta
      0003|keycode   1 = Escape           F83
      0004|    control keycode   1 = F84
      0005|    shift   alt keycode   1 = Meta_Escape
      0006|keycode   2 = one              exclam
      0007|keycode   3 = two              at               at               nul              nul
      0008|keycode   4 = three            numbersign
      0009|    control keycode   4 = Escape
      0010|keycode   5 = four             dollar           dollar           Control_backslash
      0011|keycode   6 = five             percent
      0012|    control keycode   6 = Control_bracketright
      0013|keycode   7 = six              asciicircum
      0014|    control keycode   7 = Control_asciicircum
      0015|keycode   8 = seven            ampersand        braceleft        Control_underscore
      0016|keycode   9 = eight            asterisk         bracketleft      Delete
      0017|keycode  10 = nine             parenleft        bracketright
      0018|keycode  11 = zero             parenright       braceright
      0019|keycode  12 = minus            underscore       backslash        Control_underscore Control_underscore
      0020|keycode  13 = equal            plus
      0021|keycode  14 = Delete           F86              Meta_BackSpace   F87
      0022|    shift   alt keycode  14 = Meta_Delete
      0023|keycode  15 = Tab              F88
      0024|    control keycode  15 = F89
      0025|    shift   alt keycode  15 = Meta_Tab
      0026|keycode  16 = q
      0027|keycode  17 = w
      0028|keycode  18 = e
      0029|keycode  19 = r
      0030|keycode  20 = t
      0031|keycode  21 = y
      0032|keycode  22 = u
      0033|keycode  23 = +i                +I                +i                F97              Tab              Tab
      0034|    control alt keycode  23 = Meta_Tab
      0035|keycode  24 = o
      0036|keycode  25 = p
      0037|keycode  26 = bracketleft      braceleft
      0038|    control keycode  26 = F99
      0039|    control alt keycode  26 = Meta_Escape
      0040|keycode  27 = bracketright     braceright       asciitilde       Control_bracketright
      0041|keycode  28 = Return
      0042|    shift   keycode  28 = F90
      0043|    control keycode  28 = F91
      0044|    alt keycode  28 = Meta_Control_m
      0045|keycode  29 = Control
      0046|keycode  30 = a
      0047|keycode  31 = s
      0048|keycode  32 = d
      0049|keycode  33 = f
      0050|keycode  34 = g
      0051|keycode  35 = +h                +H                +h                F96              BackSpace        BackSpace
      0052|    control alt keycode  35 = Meta_BackSpace
      0053|keycode  36 = j
      0054|keycode  37 = k
      0055|keycode  38 = l
      0056|keycode  39 = semicolon        colon
      0057|keycode  40 = apostrophe       quotedbl
      0058|    control keycode  40 = Control_g
      0059|keycode  41 = grave            asciitilde
      0060|    control keycode  41 = nul
      0061|keycode  42 = Shift
      0062|keycode  43 = backslash        bar
      0063|    control keycode  43 = Control_backslash
      0064|keycode  44 = z
      0065|keycode  45 = x
      0066|keycode  46 = c
      0067|keycode  47 = v
      0068|keycode  48 = b
      0069|keycode  49 = n
      0070|keycode  50 = +m                +M                +m                F98              Control_m        Control_m
      0071|    control alt keycode  50 = Meta_Control_m
      0072|keycode  51 = comma            less
      0073|keycode  52 = period           greater
      0074|keycode  53 = slash            question
      0075|    control keycode  53 = Delete
      0076|keycode  54 = Shift
      0077|keycode  55 = KP_Multiply
      0078|    control keycode  55 = F114
      0079|keycode  56 = Alt
      0080|keycode  57 = space            space
      0081|    control keycode  57 = nul
      0082|keycode  58 = Caps_Lock
      0083|    alt keycode  58 = dead_grave
      0084|keycode  59 = F1               F13              Console_13       F1
      0085|    alt keycode  59 = Console_1
      0086|    control alt keycode  59 = Console_1
      0087|keycode  60 = F2               F14              Console_14       F2
      0088|    alt keycode  60 = Console_2
      0089|    control alt keycode  60 = Console_2
      0090|keycode  61 = F3               F15              Console_15       F3
      0091|    alt keycode  61 = Console_3
      0092|    control alt keycode  61 = Console_3
      0093|keycode  62 = F4               F16              Console_16       F4
      0094|    alt keycode  62 = Console_4
      0095|    control alt keycode  62 = Console_4
      0096|keycode  63 = F5               F17              Console_17       F5
      0097|    alt keycode  63 = Console_5
      0098|    control alt keycode  63 = Console_5
      0099|keycode  64 = F6               F18              Console_18       F6
      0100|    alt keycode  64 = Console_6
      0101|    control alt keycode  64 = Console_6
      0102|keycode  65 = F7               F19              F43              F7
      0103|    alt keycode  65 = F43
      0104|    control alt keycode  65 = Console_7
      0105|keycode  66 = F8               F20              F44              F8
      0106|    alt keycode  66 = F44
      0107|    control alt keycode  66 = Console_8
      0108|keycode  67 = F9               F21              F45              F9
      0109|    alt keycode  67 = F45
      0110|    control alt keycode  67 = Console_9
      0111|keycode  68 = F10              F22              Console_22       F10
      0112|    alt keycode  68 = Console_10
      0113|    control alt keycode  68 = Console_10
      0114|keycode  69 = Num_Lock
      0115|keycode  70 = Scroll_Lock      Show_Memory      Show_Registers   Show_State
      0116|    alt keycode  70 = Scroll_Lock
      0117|keycode  71 = KP_7
      0118|    control keycode  71 = F108
      0119|    alt keycode  71 = Ascii_7
      0120|keycode  72 = KP_8
      0121|    control keycode  72 = F109
      0122|    alt keycode  72 = Ascii_8
      0123|keycode  73 = KP_9
      0124|    control keycode  73 = F110
      0125|    alt keycode  73 = Ascii_9
      0126|keycode  74 = KP_Subtract
      0127|    control keycode  74 = F112
      0128|keycode  75 = KP_4
      0129|    control keycode  75 = F105
      0130|    alt keycode  75 = Ascii_4
      0131|keycode  76 = KP_5
      0132|    control keycode  76 = F106
      0133|    alt keycode  76 = Ascii_5
      0134|keycode  77 = KP_6
      0135|    control keycode  77 = F107
      0136|    alt keycode  77 = Ascii_6
      0137|keycode  78 = KP_Add
      0138|    control keycode  78 = F111
      0139|keycode  79 = KP_1
      0140|    control keycode  79 = F102
      0141|    alt keycode  79 = Ascii_1
      0142|keycode  80 = KP_2
      0143|    control keycode  80 = F103
      0144|    alt keycode  80 = Ascii_2
      0145|keycode  81 = KP_3
      0146|    control keycode  81 = F104
      0147|    alt keycode  81 = Ascii_3
      0148|keycode  82 = KP_0
      0149|    control keycode  82 = F101
      0150|    alt keycode  82 = Ascii_0
      0151|keycode  83 = KP_Period
      0152|    control keycode  83 = F116
      0153|    altgr   control keycode  83 = Boot
      0154|    control alt keycode  83 = Boot
      0155|keycode  84 = Last_Console
      0156|keycode  85 =
      0157|keycode  86 = less             greater          bar
      0158|keycode  87 = F11              F23              Console_23       F11
      0159|    alt keycode  87 = Console_11
      0160|    control alt keycode  87 = Console_11
      0161|keycode  88 = F12              F24              F48              F12
      0162|    alt keycode  88 = F48
      0163|    control alt keycode  88 = Console_12
      0164|keycode  89 =
      0165|keycode  90 =
      0166|keycode  91 =
      0167|keycode  92 =
      0168|keycode  93 =
      0169|keycode  94 =
      0170|keycode  95 =
      0171|keycode  96 = F92
      0172|    shift   keycode  96 = F93
      0173|    altgr   keycode  96 = F95
      0174|    control keycode  96 = F94
      0175|    shift   control keycode  96 = KP_Enter
      0176|    altgr   control keycode  96 = KP_Enter
      0177|    alt keycode  96 = F95
      0178|    shift   alt keycode  96 = KP_Enter
      0179|    control alt keycode  96 = KP_Enter
      0180|keycode  97 = Control
      0181|keycode  98 = KP_Divide
      0182|    control keycode  98 = F115
      0183|keycode  99 = Control_backslash
      0184|    control keycode  99 = Control_backslash
      0185|keycode 100 = AltGr
      0186|keycode 101 = Break
      0187|keycode 102 = Find
      0188|    shift   keycode 102 = F49
      0189|    altgr   keycode 102 = F51
      0190|    control keycode 102 = F50
      0191|    alt keycode 102 = F51
      0192|keycode 103 = Up
      0193|    shift   keycode 103 = F68
      0194|    altgr   keycode 103 = F70
      0195|    control keycode 103 = F69
      0196|    alt keycode 103 = F70
      0197|keycode 104 = Prior
      0198|    shift   keycode 104 = F61
      0199|    altgr   keycode 104 = F63
      0200|    control keycode 104 = F62
      0201|    alt keycode 104 = F63
      0202|keycode 105 = Left
      0203|    shift   keycode 105 = F76
      0204|    altgr   keycode 105 = F78
      0205|    control keycode 105 = F77
      0206|    alt keycode 105 = F78
      0207|keycode 106 = Right
      0208|    shift   keycode 106 = F80
      0209|    altgr   keycode 106 = F82
      0210|    control keycode 106 = F81
      0211|    alt keycode 106 = F82
      0212|keycode 107 = Select
      0213|    shift   keycode 107 = F52
      0214|    altgr   keycode 107 = F54
      0215|    control keycode 107 = F53
      0216|    alt keycode 107 = F54
      0217|keycode 108 = Down
      0218|    shift   keycode 108 = F72
      0219|    altgr   keycode 108 = F74
      0220|    control keycode 108 = F73
      0221|    alt keycode 108 = F74
      0222|keycode 109 = Next
      0223|    shift   keycode 109 = F64
      0224|    altgr   keycode 109 = F66
      0225|    control keycode 109 = F65
      0226|    alt keycode 109 = F66
      0227|keycode 110 = Insert
      0228|    shift   keycode 110 = F55
      0229|    altgr   keycode 110 = F57
      0230|    control keycode 110 = F56
      0231|    alt keycode 110 = F57
      0232|keycode 111 = Remove
      0233|    shift   keycode 111 = F58
      0234|    altgr   keycode 111 = F60
      0235|    control keycode 111 = F59
      0236|    altgr   control keycode 111 = Boot
      0237|    alt keycode 111 = F60
      0238|    control alt keycode 111 = Boot
      0239|keycode 112 =
      0240|keycode 113 =
      0241|keycode 114 =
      0242|keycode 115 =
      0243|keycode 116 =
      0244|keycode 117 =
      0245|keycode 118 =
      0246|keycode 119 =
      0247|keycode 120 =
      0248|keycode 121 =
      0249|keycode 122 =
      0250|keycode 123 =
      0251|keycode 124 =
      0252|keycode 125 =
      0253|keycode 126 =
      0254|keycode 127 =
      0255|string F1 = "\033[[A"
      0256|string F2 = "\033[[B"
      0257|string F3 = "\033[[C"
      0258|string F4 = "\033[[D"
      0259|string F5 = "\033[[E"
      0260|string F6 = "\033[17~"
      0261|string F7 = "\033[18~"
      0262|string F8 = "\033[19~"
      0263|string F9 = "\033[20~"
      0264|string F10 = "\033[21~"
      0265|string F11 = "\033[23~"
      0266|string F12 = "\033[24~"
      0267|string F13 = "\033[25~"
      0268|string F14 = "\033[26~"
      0269|string F15 = "\033[28~"
      0270|string F16 = "\033[29~"
      0271|string F17 = "\033[31~"
      0272|string F18 = "\033[32~"
      0273|string F19 = "\033[33~"
      0274|string F20 = "\033[34~"
      0275|string Find = "\033[1~"
      0276|string Insert = "\033[2~"
      0277|string Remove = "\033[3~"
      0278|string Select = "\033[4~"
      0279|string Prior = "\033[5~"
      0280|string Next = "\033[6~"
      0281|string Macro = "\033[M"
      0282|string Pause = "\033[P"
      0283|string F21 = "\033~5C001"
      0284|string F22 = "\033~5D001"
      0285|string F23 = "\033~87001"
      0286|string F24 = "\033~88001"
      0287|string F43 = "\033~6E003"
      0288|string F44 = "\033~6F003"
      0289|string F45 = "\033~70003"
      0290|string F48 = "\033~8C003"
      0291|string F49 = "\033~47001"
      0292|string F50 = "\033~77002"
      0293|string F51 = "\033~97003"
      0294|string F52 = "\033~4F001"
      0295|string F53 = "\033~75002"
      0296|string F54 = "\033~9F003"
      0297|string F55 = "\033~52001"
      0298|string F56 = "\033~92002"
      0299|string F57 = "\033~A2003"
      0300|string F58 = "\033~53001"
      0301|string F59 = "\033~93002"
      0302|string F60 = "\033~A3003"
      0303|string F61 = "\033~49001"
      0304|string F62 = "\033~84002"
      0305|string F63 = "\033~99003"
      0306|string F64 = "\033~51001"
      0307|string F65 = "\033~76002"
      0308|string F66 = "\033~A1003"
      0309|string F68 = "\033~48001"
      0310|string F69 = "\033~8D002"
      0311|string F70 = "\033~98003"
      0312|string F72 = "\033~50001"
      0313|string F73 = "\033~91002"
      0314|string F74 = "\033~A0003"
      0315|string F76 = "\033~4B001"
      0316|string F77 = "\033~73002"
      0317|string F78 = "\033~9B003"
      0318|string F80 = "\033~4D001"
      0319|string F81 = "\033~74002"
      0320|string F82 = "\033~9D003"
      0321|string F83 = "\033~011B1"
      0322|string F84 = "\033~011B2"
      0323|string F86 = "\033~0E081"
      0324|string F87 = "\033~0E7F2"
      0325|string F88 = "\033~0F001"
      0326|string F89 = "\033~94002"
      0327|string F90 = "\033~1C0D1"
      0328|string F91 = "\033~1C0A2"
      0329|string F92 = "\033~E00D0"
      0330|string F93 = "\033~E00D1"
      0331|string F94 = "\033~E00A2"
      0332|string F95 = "\033~A6003"
      0333|string F96 = "\033~23082"
      0334|string F97 = "\033~17092"
      0335|string F98 = "\033~320D2"
      0336|string F99 = "\033~1B1B2"
      0337|string F101 = "\033~92002"
      0338|string F102 = "\033~75002"
      0339|string F103 = "\033~91002"
      0340|string F104 = "\033~76002"
      0341|string F105 = "\033~73002"
      0342|string F106 = "\033~8F002"
      0343|string F107 = "\033~74002"
      0344|string F108 = "\033~77002"
      0345|string F109 = "\033~8D002"
      0346|string F110 = "\033~84002"
      0347|string F111 = "\033~90002"
      0348|string F112 = "\033~8E002"
      0349|string F114 = "\033~96002"
      0350|string F115 = "\033~95002"
      0351|string F116 = "\033~93002"
      0352|compose '`' '1' to ''
      0353|compose '`' '2' to ''
      0354|compose '`' '3' to ''
      0355|compose '`' '#' to ''
      0356|compose '`' '4' to ''
      0357|compose '`' '$' to ''
      0358|compose '`' '5' to ''
      0359|compose '`' '%' to ''
      0360|compose '`' '6' to ''
      0361|compose '`' '&' to ''
      0362|compose '`' '7' to ''
      0363|compose '`' '\'' to ''
      0364|compose '`' '8' to ''
      0365|compose '`' '(' to ''
      0366|compose '`' '9' to ''
      0367|compose '`' ')' to ''
      0368|compose '`' '0' to ''
      0369|compose '`' '-' to ''
      0370|compose '`' '^' to ''
      0371|compose '`' 'q' to ''
      0372|compose '`' 'w' to ''
      0373|compose '`' 'e' to ''
      0374|compose '`' 'E' to ''
      0375|compose '`' 'r' to ''
      0376|compose '`' 't' to ''
      0377|compose '`' 'y' to ''
      0378|compose '`' 'u' to ''
      0379|compose '`' 'i' to ''
      0380|compose '`' 'o' to ''
      0381|compose '`' 'p' to ''
      0382|compose '`' 'a' to ''
      0383|compose '`' 's' to ''
      0384|compose '`' 'd' to ''
      0385|compose '`' 'f' to ''
      0386|compose '`' 'g' to ''
      0387|compose '`' 'h' to ''
      0388|compose '`' 'j' to ''
      0389|compose '`' 'k' to ''
      0390|compose '`' 'l' to ''
      0391|compose '`' ';' to ''
      0392|compose '`' ':' to ''
      0393|compose '`' ']' to ''
      0394|compose '`' 'z' to ''
      0395|compose '`' 'Z' to ''
      0396|compose '`' 'x' to ''
      0397|compose '`' 'c' to ''
      0398|compose '`' 'v' to ''
      0399|compose '`' 'b' to ''
      0400|compose '`' 'n' to ''
      0401|compose '`' 'm' to ''
      0402|compose '`' ',' to ''
      0403|compose '`' '.' to ''
      0404|compose '`' '/' to ''
      0405|compose '`' '\\' to ''

    (b)xegetdv

       Called from sample stating shell xekt,xext and xegt to get distribution ID.
       from /etc/issue.
       DistributionID is used as suffix of env-data-file like as xelnxkey.rh9.

       0001|########################################################################
       0002|# get Linux Distribution id and version from /etc/issue
       0003|# and set it to $DISTVER
       0004|########################################################################
       0005|DVER=`grep release /etc/issue` # like as "Red Hat Linux release 9 (Shrike)"
       0006|if [ x"$DVER" = x ]; then      #not found
       0007|    echo "xegetdv:No distribution ID Line found from /etc/issue, assumed \"sw3\"."
       0008|    DID=sw3                    #my Slackware
       0009|else
       0010|#   declare -a DVWORDS             # define array
       0011|#   DVWORDS=($DVER)                # assign to array
       0012|#sw3 dose not support array
       0013|    DVER=`echo $DVER`              #reduce space,drop top and tail space
       0014|    DIST=${DVER%% *}               #get distribution id(top word)
       0015|    VER=${DVER#*release }          #cut top "*release "
       0016|    VER=${VER%% *}                 #get ver(top word)
       0017|#   echo $DIST
       0018|#   echo $VER
       0019|#   case ${DVWORDS[0]} in
       0020|    case $DIST         in
       0021|#     Red*)    DID=rh${DVWORDS[4]}  ;;     #Red Hat
       0022|      Red*)    DID=rh$VER           ;;     #Red Hat
       0023|#     Turbo*)  DID=tb${DVWORDS[2]}  ;;     #TurboLinux release 6.0 WorkStation (Shiga)
       0024|      Turbo*)  DID=tb$VER           ;;     #TurboLinux release 6.0 WorkStation (Shiga)
       0025|      *)      echo "xegetdv:No distribution ID found from /etc/issue ( " $DVER " ),assumed \"rh9\"."
       0026|              sleep 2
       0027|              DID=rh9
       0028|    esac
       0029|fi
       0030|DISTVER=$DID
       0031|#echo $DID

    (c)xesetxenv

       Called from sample stating shell xekt,xext and xegt to get
       your env-data-file.
       Change the line-15 according to your directory structure.

       0001|#####################################################
       0002|# called from xegt,xekt,xext
       0003|# input:parm1:optional exec pgmname specification(pgm=xxxx)
       0004|# setup variable for xegt.xxx ,xekt.xxx, xext.xxx
       0005|#####################################################
       0006|
       0007|PGM=${1#*pgm=}            #chk pgm name parm
       0008|if [ x"$PGM" = x"$1" ]; then #no pgmname parm
       0009|     PGM=xe
       0010|    #PGM=xekbchk
       0011|else
       0012|    PGMP=1                #id of shift out parm1
       0013|fi
       0014|VER=$DISTVER
       0015|DATADIR=/h/objlinux/sample  <====== Change This Line
       0016|#BINDIR=/h/objlinux/bin
       0017|
       0018|XRES=$DATADIR/xelnxres.$VER
       0019|KEYF=$DATADIR/xelnxkey.$VER
       0020|KEYMAP=$DATADIR/xexmap.$VER                 #for xegt
       0021|KEYMAPRESTORE=$DATADIR/xexmap.restore.$VER  #for xegt

    (d)xelnxres.xxx
       X resource file for xterm,kterm.
       xe requires more key combination over default shown at (9)-(b).
       This file setup to generate Esc string correspond to key combination
       which xe use.
       Set up like as "xrdb -merge xnlsres.xxx".(See also xekt,xext)
       String "xext" and "xekt" is application  name which correspond to
       -name option of xterm,kterm command.
       For ex., xterm started by "xterm -name xext" command is effected
       X resource definition in the line "xext*...".
       These are not for gnome-terminal which dose not chk X resource.

       All key definition xe use as default is showed in xelnxres.full.
       Copy the line from it to your X resource file.
       Format of Esc string for xe is following.
          0x1b~xxyyz   xx:DOS-Scan Code yy:DOS-Char Code
                       z:Shift ID  0:No shift  , 1:Shift+
                                   2:Ctrl+       3:Alt+
          See (9)-(a) for DOS Scan/Char code.
       You may change fg,bg and cursor color.
       It is required for kterm to set EightBitInput:true to accept DBCS input.

       xelnxres.rh9
       0001|!*******************************************************************
       0002|!****** xelnxres.rh9 ***** resource file for xe under xterm/kterm **
       0003|!****** usage under RedHat v9
       0004|!****** (1) merge keyboard translation to X-resource
       0005|!******     (1-1) merge this file into ~/.Xresources or /etc/X11/Xresources
       0006|!******     or
       0007|!******     (1-2) add the line into /etc/X11/xinit/xinitrc
       0008|!******           XERES=/h/objlinux/sample/xelnxres.rh9
       0009|!******           "xrdb -merge $XERES"
       0010|!****** (2) open terminal emulator specifying application name||~v124R~
       0011|!******     "xterm -name xext"           for xterm
       0012|!******     "kterm -name xekt"           for kterm
       0013|!*****      (gnome-terminal dose not support -name)
       0014|!****** (3) start xe with native key translation file
       0015|!******     XEKEY=xelnxkey.xxx
       0020|!******     "xe --k$XEKEY"
       0021|!***********************************************************************************
       0022|!***********************************************************************************
       0023|!** xterm
       0024|!***********************************************************************************
       0025|!                    <Key>Prior:    string(\033~49000)\n\
       0026|!                    <Key>Next:     string(\033~51000)\n\
       0027|! continued line
       0028|xext*background: Black
       0029|xext*foreground: Wheat
       0030|xext*cursorColor: blue
       0031|xext*reverseVideo: false
       0032|xext*scrollBar: true
       0033|xext*reverseWrap: true
       0034|xext*font: fixed
       0035|xext*fullCursor: true
       0036|xext*scrollTtyOutput: off
       0037|xext*scrollKey: on
       0038|xext*titleBar: true
       0039|xext*vt100.Translations:    #override \n\
       0040|            Shift<Key>Prior:    string(\033~49001)\n\
       0041|            Shift<Key>Next:     string(\033~51001)\n\
       0042|            Shift<Key>Insert:   string(\033~52001)\n\
       0043|            Shift<Key>Escape:   string(\033~011B1)\n\
       0044|            Shift<Key>BackSpace:string(\033~0E081)\n\
       0045|            Shift<Key>Return:   string(\033~1C0D1)\n\
       0046|                 <Key>KP_Enter: string(\033~E00D0)\n\
       0047|            Shift<Key>KP_Enter: string(\033~E00D1)\n\
       0048|            Ctrl<Key>KP_Enter:  string(\033~E00A2)
       0049|!***********************************************************************************
       0050|!** kterm
       0051|!***********************************************************************************
       0052|!               Shift<Key>Home: string(\033~47001)\n\
       0053|!                    <Key>End:  string(\033~4F000)\n\
       0054|! continued line
       0055|xekt*EightBitInput: True
       0056|xekt*background: Black
       0057|xekt*foreground: Wheat
       0058|xekt*cursorColor: blue
       0059|xekt*reverseVideo: false
       0060|xekt*scrollBar: true
       0061|xekt*reverseWrap: true
       0062|xekt*font: fixed
       0063|xekt*fullCursor: true
       0064|xekt*scrollTtyOutput: off
       0065|xekt*scrollKey: on
       0066|xekt*titleBar: true
       0067|xekt*vt100.Translations:    #override \n\
       0068|    Shift<Key>space:     begin-conversion(_JAPANESE_CONVERSION)\n\
       0069|            Shift<Key>F1:       string(\033~54001)\n\
       0070|            Shift<Key>F2:       string(\033~55001)\n\
       0071|            Shift<Key>F3:       string(\033~56001)\n\
       0072|            Shift<Key>F4:       string(\033~57001)\n\
       0073|            Shift<Key>F5:       string(\033~58001)\n\
       0074|            Shift<Key>F6:       string(\033~59001)\n\
       0075|            Shift<Key>F7:       string(\033~5A001)\n\
       0076|            Shift<Key>F8:       string(\033~5B001)\n\
       0077|            Shift<Key>F9:       string(\033~5C001)\n\
       0078|            Shift<Key>F10:      string(\033~5D001)\n\
       0079|            Shift<Key>F11:      string(\033~87001)\n\
       0080|            Shift<Key>F12:      string(\033~88001)\n\
       0081|            Ctrl<Key>F7:        string(\033~64002)\n\
       0082|            Ctrl<Key>F8:        string(\033~65002)\n\
       0083|            Ctrl<Key>F9:        string(\033~66002)\n\
       0084|            Ctrl<Key>F10:       string(\033~67002)\n\
       0085|            Ctrl<Key>F11:       string(\033~89002)\n\
       0086|            Ctrl<Key>F12:       string(\033~8a002)\n\
       0087|            Shift<Key>Prior:    string(\033~49001)\n\
       0088|            Shift<Key>Next:     string(\033~51001)\n\
       0089|            Shift<Key>Insert:   string(\033~52001)\n\
       0090|            Ctrl<Key>Insert:    string(\033~92002)\n\
       0091|            Shift<Key>Delete:   string(\033~53001)\n\
       0092|            Ctrl<Key>Delete:    string(\033~93002)\n\
       0093|            Shift<Key>Up:       string(\033~48001)\n\
       0094|            Shift<Key>Down:     string(\033~50001)\n\
       0095|            Shift<Key>Left:     string(\033~4B001)\n\
       0096|            Shift<Key>Right:    string(\033~4D001)\n\
       0097|                 <Key>Home:     string(\033~47000)\n\
       0098|            Shift<Key>End:      string(\033~4F001)\n\
       0099|            Shift<Key>Escape:   string(\033~011B1)\n\
       0100|            Shift<Key>BackSpace:string(\033~0E081)\n\
       0101|            Shift<Key>Tab:      string(\033~0F001)\n\
       0102|            Shift<Key>Return:   string(\033~1C0D1)\n\
       0103|                 <Key>KP_Enter: string(\033~E00D0)\n\
       0104|            Shift<Key>KP_Enter: string(\033~E00D1)\n\
       0105|            Ctrl<Key>KP_Enter:  string(\033~E00A2)

    (e)xelnxkey.xxx
       Esc string translation table.
       Use to bind Esc string to other key combination over xe default in (9)-(b).||~v127R~
       Use --k option like as "xe --kxelnxkey.rh9".
       Or specify on ini file.                                        ||~v124R~
                                                                      ||~v124R~
 		  LNX_Keymap = ::xelnxkey.xxx  ##(Linux Console Version Only) Keymap file to detect remapping by xmodmap cmd||~v124R~
                                                                      ||~v124R~
       String 0x1b[0x00 for End key of kterm may be bug of kterm.
       So,it is not a xe default,but it is translated by xelnxkey.xxx.
       And gnome-terminal is out of X resource file,xmodmap command is used
       to setup better use of key combination.                        ||~v124R~
       See /usr/include/X11/keysymdef.h for available keysym for xmodmap cmd.||~v124R~
       Search proper keysym for your locale environment on keysymdef.h.||~v124R~
       Keycode assignmens are checked by "xmodmap -pk" cmd.           ||~v124R~
                                                                      ||~v124R~
       For this sample file,following xmodmap cmds are prerequisite.  ||~v124R~
       Enter once after boot up.                                      ||~v124R~
       1st word after "=" is keysym for without any modifier key,     ||~v124R~
       2nd word is keysym for with Shift modifier key.                ||~v124R~
       xmodmap for BackSpace key is,I do not know why, not effective. ||~v124R~
       See also (f)xexmap.xxx                                         ||~v124R~
                                                                      ||~v124R~
         xmodmap -e "keycode 109 = yacute Control_R"                  ||~v124R~
        #xmodmap -e "keycode  22 = BackSpace eth"                     ||~v124R~
         xmodmap -e "keycode  36 = Return    ntilde"                  ||~v124R~
         xmodmap -e "keycode 106 = Insert    ograve"                  ||~v124R~
         xmodmap -e "keycode 103 = End       oacute"                  ||~v124R~
         xmodmap -e "keycode  99 = Prior     ocircumflex"             ||~v124R~
         xmodmap -e "keycode 105 = Next      otilde"                  ||~v124R~

       [section] limits the application translation is applyed.
       ex) [kterm] is the section for xe under kterm.
       Section name is correspond to terminal emulator name.          ||~v124R~
       To specify other than the terminal emulater name,Use environment
       valiable XETERM for the section name.
       For ex., "XETERM=myterm" force to select data from [myterm] section.
       [common] is for all application.

       xelnxkey.rh9
            ##########################################################################||~v124R~
            # xelnxkey.rh9                                            ||~v124R~
            # Key & EscString mapping table for xe under "RedHat v9"  ||~v124R~
            #        Usage: xe --kthis.file                           ||~v124R~
            #   for Console                                           ||~v124R~
            #       xe chk terminfo Key,so specify only required.     ||~v124R~
            #       chk terminfo assignment by xekbchk utility.       ||~v124R~
            #   for X                                                 ||~v124R~
            #       xe defines default for gnome-terminal/xterm/kterm.||~v124R~
            #       see it by xekbchk utility,then specify additional key-string combination.||~v124R~
            #       for the key terminal emulator dose not generate,  ||~v124R~
            #       setup by xrdb linux utility .for xterm/kterm(see xelnxe.txt or xelnxj.txt for Japanese)||~v124R~
            #   [section]:section is terminal emulator name,[common] is for all type.||~v124R~
            #             XETERM environment valiable is used if it is set.||~v124R~
            #             Or,emulator anme is checked,gnome-terminal/xterm/kterm is supported.||~v124R~
            #             for others,it use terminal name of TERM environment variable||~v124R~
            #   Keyname: F1<-->F12, Home, End, Insert, Delete, PageUp, PageDown,||~v124R~
            #            Up, Down, Left, Right, Esc, BackSpace, Tab, Enter, 2, KP_Enter||~v124R~
            ##########################################################################||~v124R~
            [common]                                                  ||~v124R~
            ##########################################################################||~v124R~
            [gnome-terminal]                                          ||~v124R~
            # xmodmap issued for gnome-terminal to detect Shift+      ||~v124R~
            # KeyString:S+BackSpace =^[[28;2~    #assigned F15 to S+BackSpace by xmodmap||~v124R~
            # KeyString:S+Enter     =^[[29;2~    #assigned F16 to S+Return    by xmodmap||~v124R~
            # KeyString:S+Insert    =^[[34;2~    #assigned F20 to S+Insert    by xmodmap||~v124R~
            # KeyString:S+End       =^[[32;2~    #assigned F18 to S+End       by xmodmap||~v124R~
            # KeyString:S+PageUp    =^[[31;2~    #assigned F17 to S+Prior     by xmodmap||~v124R~
            # KeyString:S+PageDown  =^[[33;2~    #assigned F19 to S+Next      by xmodmap||~v124R~
              KeyString:R-Ctl       =\x8f\xab\xf2   #string by yacute ||~v124R~
              KeyString:R-Ctl       =\xc3\xbd       #UTF8 string for yacute||~v124R~
              KeyString:R-Ctl       =\xfd           #ISo-8859-1  for yacute||~v124R~
              KeyString:S+Enter     =\x8f\xab\xd0 #by EUC_JP for xmodmap -e "keycode  36 = Return    ntilde"||~v124R~
              KeyString:S+Enter     =\xc3\xb1     #by UTF8            ||~v124R~
              KeyString:S+Enter     =\xf1         #by ISO-8859-1      ||~v124R~
              KeyString:S+Insert    =\x8f\xab\xd2 #by EUC_JP for xmodmap -e "keycode 106 = Insert    ograve"||~v124R~
              KeyString:S+Insert    =\xc3\xb2     #by UTF8            ||~v124R~
              KeyString:S+Insert    =\xf2         #by ISO-8859-1      ||~v124R~
              KeyString:S+End       =\x8f\xab\xd1 #by EUC_JP for xmodmap -e "keycode 103 = End       oacute"||~v124R~
              KeyString:S+End       =\xc3\xb3     #by UTF8            ||~v124R~
              KeyString:S+End       =\xf3         #by ISO-8859-1      ||~v124R~
              KeyString:S+PageUp    =\x8f\xab\xd4 #by EUC_JP for xmodmap -e "keycode  99 = Prior     ocircumflex"||~v124R~
              KeyString:S+PageUp    =\xc3\xb4     #by UTF8            ||~v124R~
              KeyString:S+PageUp    =\xf4         #by ISO-8859-1      ||~v124R~
              KeyString:S+PageDown  =\x8f\xab\xd8 #by EUC_JP for xmodmap -e "keycode 105 = Next      otilde"||~v124R~
              KeyString:S+PageDown  =\xc3\xb5     #by UTF8            ||~v124R~
              KeyString:S+PageDown  =\xf5         #by ISO-8859-1      ||~v124R~
            ##########################################################################||~v124R~
            [xterm]                                                   ||~v124R~
              KeyString:S+End       =^[[32;2~    #assigned F18 to S+End       by xmodmap||~v124R~
            ##########################################################################||~v124R~
            [kterm]                                                   ||~v124R~
              KeyString:End         =^[[\x00     #kterm generate,string assign by xrdb is effect on both w/o and with Shift+||~v124R~
            ##########################################################################||~v124R~
            [xeterm]          # e.g for XETERM=xeterm case            ||~v124R~
            ##########################################################################||~v124R~

    (f)xexmap.xxx
       X key binding file.
       To change X key binding enter like as "xmodmap xexmap.xxx".
       gnome-terminal dose not check X resource db,so use xmodmap
       to benefit more key combination.
       ex)     "keysym Insert    = Insert    F20"
       This sample is to bind Insert key to the function Insert(w/o Shift key)
       and F20(with Shift key).
       Esc string F20 generates is translated by xelnxkey.xxx.        ||~v127R~
       Available Fxx is F13-F20.
       String generated by Fxx is gotten by xekbchk utility.
       For ex.,F20 generate string "0x1b[34:2~" under RedHat v9.

       To use Right-Ctrl as execute key,include the following line.
       This changes R-Ctrl to work as Execute but dose no change Enter to work as New-Line.||~v127I~
         keycode 109 = Return

 (Note)Ctrl+CharKey may be used as function key by OPT CCFUNC cmd.
       If you use those key,this file may not be used. See (5)Restriction.

       xexmap.rh9
            !***********************************************************************************||~v124R~
            !****** xexmap.rh9 ***** xmodmap input to assing string to key event||~v124R~
            !****** usage under RedHat v9                             ||~v124R~
            !******    "xmodmap xexmap.rh9"                           ||~v124R~
            !***********************************************************************************||~v124R~
            !                                                         ||~v124R~
            !keycode  22 = BackSpace F15                              ||~v124R~
            !keycode  36 = Return    F16                              ||~v124R~
            !keycode  99 = Prior     F17                              ||~v124R~
            !keycode 103 = End       F18                              ||~v124R~
            !keycode 105 = Next      F19                              ||~v124R~
            !keycode 106 = Insert    F20                              ||~v124R~
            !keysym BackSpace = BackSpace F15                         ||~v124R~
            !keysym Return    = Return    F16                         ||~v124R~
            !keysym Prior     = Prior     F17                         ||~v124R~
            !keysym End       = End       F18                         ||~v124R~
            !keysym Next      = Next      F19                         ||~v124R~
            !keysym Insert    = Insert    F20                         ||~v124R~
             keysym Control_R = yacute Control_R                      ||~v124R~
             keysym BackSpace = BackSpace eth                         ||~v124R~
             keysym Return    = Return    ntilde                      ||~v124R~
             keysym Insert    = Insert    ograve                      ||~v124R~
             keysym End       = End       oacute                      ||~v124R~
             keysym Prior     = Prior     ocircumflex                 ||~v124R~
             keysym Next      = Next      otilde                      ||~v124R~

    (g)Stating shell.
       xext/xekt/xegt starts xe under xterm/kterm/gnome-terminal each.
       Setup for X mode is done once after boot.
       So,use native command when you changed X resource file.        ||~v124R~
       For X resource for kterm/xterm,
       enter "xrdb -merge res-filename",then restart terminal emulator.
       For key binding for gnome-terminal,
       enter "xmodmap modmapfile",then restart terminal emulator.

       Usage:                                                         ||~v124R~

         {xext|xekt|xegt} [pgm=[xxx]]

       For ex., "xext pgm=xekbchk" start xekbchk after setup xterm for xe.
       "xext pgm=" means start of xterm only.
       You may split this shell function to start of terminal emulator
       and start of xe.
       Use xlsfonts to check valid font size for xekt.
       Screen is corrupted if font size of SBCS and DBCS is mismatched.

       xext
       0001|## kick xe under xterm
       0002|. xegetdv        #get distribution id to XEDISTID
       0003|. xesetxenv $1   #setup environment variable
       0004|
       0005|SW1ST=`xrdb -query|grep xext`
       0006|if [ x"$SW1ST" = x ]; then
       0007|    xrdb -merge $XRES
       0008|fi
       0009|if [ $DISTVER != sw3 ]; then
       0010|    FONTSZ="-fn 10x20"
       0011|fi
       0012|if [ x"$PGMP" != x ]; then  #pgm= parm detected at xsetxenv
       0013|    shift                   #drop parm1
       0014|fi
       0015|if [ x"$PGM" != x ]; then
       0016|    echo xterm  -name xext -title xterm-xe $FONTSZ -e $PGM --k$KEYF "$@"
       0017|    xterm  -name xext -title xterm-xe $FONTSZ -e $PGM --k$KEYF "$@" &
       0018|else
       0019|    xterm  -name xext -title xterm-xe $FONTSZ &
       0020|fi

       xekt
       0001|## kick xe under kterm
       0002|. xegetdv        #get distribution id to XEDISTID
       0003|. xesetxenv $1   #setup environment variable
       0004|#
       0005|SW1ST=`xrdb -query|grep xekt`
       0006|if [ x"$SW1ST" = x ]; then
       0007|    xrdb -merge $XRES
       0008|fi
       0009|if [ $DISTVER != sw3 ]; then
       0010|#see chk supported font by "xlsfonts" cmd
       0011|    FONTSZ="-fn 8x16kana -fr rk16 -fk kanji16"          #small
       0012|#   FONTSZ="-fn 9x18kana -fr rk18 -fk kanji18"          #medium
       0013|#   FONTSZ="-fn 12x24kana -fr rk24 -fk kanji24"         #large
       0014|fi
       0015|if [ x"$PGMP" != x ]; then  #pgm= parm detected at xsetxenv
       0016|    shift                   #drop parm1
       0017|fi
       0018|if [ x"$PGM" != x ]; then
       0019|    echo kterm  -name xekt -title kterm-xe $FONTSZ -e $PGM --k$KEYF "$@"
       0020|    kterm  -name xekt -title kterm-xe $FONTSZ -e $PGM --k$KEYF "$@" &
       0021|else
       0022|    kterm  -name xekt -title kterm-xe $FONTSZ &
       0023|fi

       xegt
       0001|# kick xe under gnome-terminal
       0002|. xegetdv        #get distribution id to DISTVER
       0003|. xesetxenv $1   #setup environment variable
       0004|#
       0005|CHKMAP=`xmodmap -pke|grep Return|grep F1`
       0006|if [ x"$CHKMAP" = x ]; then
       0007|    xmodmap $KEYMAP
       0008|fi
       0009|CURDIR=`pwd`
       0010|CHKOPT=`gnome-terminal --help|grep working-directory`
       0011|if [ x"$CHKOPT" != x ]; then
       0012|    WKDIR="--working-directory=$CURDIR"   #for RedHat8/9
       0013|fi
       0014|if [ x"$PGMP" != x ]; then  #pgm= parm detected at xsetxenv
       0015|    shift                   #drop parm1
       0016|fi
       0017|if [ x"$PGM" != x ]; then
       0018|    echo gnome-terminal -t xe-gt $WKDIR -x $PGM --k$KEYF "$@"
       0019|    gnome-terminal -t xe-gt $WKDIR -x $PGM --k$KEYF "$@"
       0020|else
       0021|    gnome-terminal -t xe-gt $WKDIR
       0022|fi
       0023|#xmodmap $KEYMAPRESTORE
                                                                      ||~v124R~
     Recently,I'm using following simple shell.                       ||~v124R~
       xegt                                                           ||~v124R~
       0001|xmodmap /h/objlinux/sample/xexmap.rh9                     ||~v124R~
       0002|xe --k/h/objlinux/sample/xelnxkey.rh9 $1 $2 $3 $4         ||~v124R~
                                                                      ||~v124R~
#endif

    (h)xprint.sh

            |# gxp is recomended ***********091215                    ||~v127R~
            |gxp $1 $2 $3 $4 $5 $6 $7 $8 $9                           ||~v127R~
            |exit                                                     ||~v127R~
        0001|#sample shell to format and print text-file using xprint
        0002|#########################
        0003|#  xprint parm          #
        0004|#-ne:skip output escape sequence cmd
        0005|#-nu:skip output formfeed cmd
        0006|#-q-:output to stdout
        0007|#-l :line count/page
        0008|#-c :char count/line
        0009|#########################
        0010|#  mpage  parm          #
        0011|#-1 :1 page/sheet
        0012|#-b :paper type
        0013|#-o :toggle draw outline box(check current setting by "mpage -x")
        0014|#-L :line count/page
        0015|#-W :char count/line
        0016|#-m30b:bottom margin is 30 point
        0017|#########################
        0018|qopt=0
        0019|for parm in $@
        0020|do
        0021|    case "$parm" in
        0022|    -[Qq]*)    qopt=1;;
        0023|    esac
        0024|done
        0025|#########################
        0026|COLXP=105
        0027|LINEXP=60
        0028|COLMPAGE=`expr $COLXP + 7`          #for lineno field width
        0029|LINEMPAGE=`expr $LINEXP + 3`        #for header/trailer lines
        0030|#########################
        0031|if  [ $qopt -eq 1 ]
        0032|then
        0033|    xprint -ne -nu -l$LINEXP -c$COLXP $1 $2 $3 $4 $5 $6 $7 $8 $9
        0034|else
        0035|    xprint -ne -q- -nu -l$LINEXP -c$COLXP $1 $2 $3 $4 $5 $6 $7 $8 $9 | mpage -1 -bA4 -o -m30b -W$COLMPAGE -L$LINEMPAGE | lpr
        0036|fi

#ifdef XXE
#else
    (i) puTTY.xekeymap

        file for puTTY 0.60 with mu patch.                            ||~v127R~
        There may be no need to use this patch because puTTY v0.63 terminal type:SCO supports||~v127R~
        almost modifier-function key combination required for xe.     ||~v127R~
                                                                      ||~v127R~
        [puTTY] section is for puTTY. [common] sestion is for both xe and puTTY.
        Use --k parameter to notify keymapping to xe.
        Select suitable(best match with other application run on the same puTTY session)
        esc string from "(9)Tables-(b) Default Esc string translation of xe"
        The "^[~xxyyz" (DOS scan+char+shiftid) format is for xe only and there is no need
        to define in [common] section.
        The line "KeyString:C+H         =^[~23082" is the sample of that format.
        puTTY send the string 0x1b~23082 by Ctrl+H key-press and xe understand it as Ctrl+H.
        On the other hand,when xe run on terminal emulator same string x08 as backSpace||~v124R~
        is generated. xe do backspace by Ctrl+H.
        Run xekbchk to check string puTTY send.
        xekbchk accept also --k parameter.

        0001|##########################################################################
        0002|# puTTY.xekeymap
        0003|# Key & EscString mapping table for xe under puTTY
        0004|### This is for xe under puTTY; For other application, see help of xeputty
        0005|### (In this DOC,"puTTY" means customized version to accept user key mapping)
        0006|### Widthout modifier key,Esc string generated is almost common to all terminal emulator.
        0007|### This file complement for the following case.
        0008|###   No string generated by the key pressed.
        0009|###   With modifier key string generated is same as ones of without modifier key.
        0010|###   puTTY do its own action by the key which your application utilize.
        0011|###   Your application dose not understand the string puTTY generated.
        0012|### Customized puTTY generate string according this file.
        0013|### See xelnxe.doc for the Esc string xe understand,those are requred for puTTY only.
        0014|### (See xeaixe.doc for Esc string AIX version accept)   ||~v124R~
        0015|### Define those keya in [common] section.
        0016|#        Usage:
        0017|#           Linux:
        0018|#              start putty; put puTTY.xekymap on ~/ (home directory)
        0019|#                           Or specify the file by env-var using "export PUTTY_KEYMAP=puTTY.xekeymap"
        0020|#                           Then start putty.
        0021|#              start xe on puTTY; export XETERM=puTTY (This is not require when use [puTTY] section only)
        0022|#                               ; xe --kpuTTY.xekeymap
        0023|#           Windows:
        0024|#              start putty; put puTTY.xekymap on c:\
        0025|#                           Or specify the file by env-var using "set PUTTY_KEYMAP=puTTY.xekeymap"
        0026|#                           Then start putty.
        0027|#              start xe on puTTY; export XETERM=puTTY (This is not require when use [puTTY] section only)
        0028|#                               ; xe --kpuTTY.xekeymap
        0029|#   [section]:section is terminal emulator name,[common] is for all type and xe use.
        0030|#             [puTTY] is for the emulator puTTY only.
        0031|#   Keyname: F1<-->F12, Home, End, Insert, Delete, PageUp, PageDown,
        0032|#            Up, Down, Left, Right, Esc, BackSpace, Tab, Enter, 2, KP_Enter
        0033|#            (Character key is available only for puTTY; xe dose not understand such definition as "C+a")
        0034|#Warning:Syntax check logic of xe is not same as ones of xeputty.
        0035|#        Followings are not allowed for xe.
        0036|#          Multiple modifier, Char key definition, String should start by "^["(null not allowed)
        0037|#          For current AIX version,do not insert space between modifier and keyname specification.
        0038|##########################################################################
        0039|###############  xe use
        0040|[common]
        0041|###############  puTTY use
        0042|[puTTY]
        0043|KeyString:F11         =^[[23~
        0044|KeyString:F12         =^[[24~
        0045|
        0046|KeyString:S+F1        =^[O2P
        0047|KeyString:C+F1        =^[O5P
        0048|KeyString:A+F1        =^[O3P
        0049|KeyString:S+F2        =^[O2Q
        0050|KeyString:C+F2        =^[O5Q
        0051|KeyString:A+F2        =^[O3Q
        0052|KeyString:S+F3        =^[O2R
        0053|KeyString:C+F3        =^[O5R
        0054|KeyString:A+F3        =^[O3R
        0055|KeyString:S+F4        =^[O2S
        0056|KeyString:C+F4        =^[O5S
        0057|KeyString:A+F4        =^[O3S
        0058|KeyString:S+F5        =^[[15;2~
        0059|KeyString:C+F5        =^[[15;5~
        0060|KeyString:A+F5        =^[[15;3~
        0061|KeyString:S+F6        =^[[17;2~
        0062|KeyString:C+F6        =^[[17;5~
        0063|KeyString:A+F6        =^[[17;3~
        0064|KeyString:S+F7        =^[[18;2~
        0065|KeyString:C+F7        =^[[18;5~
        0066|KeyString:A+F7        =^[[18;3~
        0067|KeyString:S+F8        =^[[19;2~
        0068|KeyString:C+F8        =^[[19;5~
        0069|KeyString:A+F8        =^[[19;3~
        0070|KeyString:S+F9        =^[[20;2~
        0071|KeyString:C+F9        =^[[20;5~
        0072|KeyString:A+F9        =^[[20;3~
        0073|KeyString:S+F10       =^[[21;2~
        0074|KeyString:C+F10       =^[[21;5~
        0075|KeyString:A+F10       =^[[21;3~
        0076|KeyString:S+F11       =^[[23;2~
        0077|KeyString:C+F11       =^[[23;5~
        0078|KeyString:A+F11       =^[[23;3~
        0079|KeyString:S+F12       =^[[24;2~
        0080|KeyString:C+F12       =^[[24;5~
        0081|KeyString:A+F12       =^[[24;3~
        0082|
        0083|KeyString:S+Home      =^[[1;2H
        0084|KeyString:C+Home      =^[[1;5H
        0085|KeyString:A+Home      =^[[1;3H
        0086|KeyString:S+End       =^[[1;2F
        0087|KeyString:C+End       =^[[1;5F
        0088|KeyString:A+End       =^[[1;3F
        0089|KeyString:S+Insert    =^[[2;2~
        0090|KeyString:C+Insert    =^[[2;5~
        0091|KeyString:A+Insert    =^[[2;3~
        0092|KeyString:S+Delete    =^[[3;2~
        0093|KeyString:C+Delete    =^[[3;5~
        0094|KeyString:A+Delete    =^[[3;3~
        0095|KeyString:S+PageUp    =^[[5;2~
        0096|KeyString:C+PageUp    =^[[5;5~
        0097|KeyString:A+PageUp    =^[[5;3~
        0098|KeyString:S+PageDown  =^[[6;2~
        0099|KeyString:C+PageDown  =^[[6;5~
        0100|KeyString:A+PageDown  =^[[6;3~
        0101|
        0102|KeyString:S+Up        =^[[1;2A
        0103|KeyString:C+Up        =^[[1;5A
        0104|KeyString:A+Up        =^[[1;3A
        0105|KeyString:S+Down      =^[[1;2B
        0106|KeyString:C+Down      =^[[1;5B
        0107|KeyString:A+Down      =^[[1;3B
        0108|KeyString:S+Left      =^[[1;2D
        0109|KeyString:C+Left      =^[[1;5D
        0110|KeyString:A+Left      =^[[1;3D
        0111|KeyString:S+Right     =^[[1;2C
        0112|KeyString:C+Right     =^[[1;5C
        0113|KeyString:A+Right     =^[[1;3C
        0114|
        0115|KeyString:S+Tab       =^[[Z
        0116|
        0117|#for XE only (^[~xxyyz fmt xx:scancode,yy:charcode,z:shiftid(1:shift,2:ctl,3:alt))
        0118|KeyString:C+H         =^[~23082
        0119|KeyString:C+I         =^[~17092
        0120|KeyString:C+M         =^[~320D2
        0121|KeyString:S+Esc       =^[~011B1
        0122|KeyString:S+BackSpace =^[~0E081
        0123|KeyString:S+Enter     =^[~1C0D1
        0124|
        0125|### end of [puTTY] ###
        0126|##########################################################################

    (j) xe.keytab

      (Case of Kubuntu6)

        To generate Esc-string which xe can understand under konsole terminal emulator,
        put,for ex,XE.keytab on ~/.kde/share/apps/konsole/.
        (or /usr/share/apps/konsele/ for global definition)
        Then select it from the list of Settings->Keyboard.           ||~v124R~
        Name on the list is from the keyboard statement of the .keytab file.
        To set default keytab, open Settings->Configure Konsole.
        On session tab,after selecting "Shell" line select from keytab drop-down list.
        To test your keytab file syntax, enter "konsole --keytab XE".
        The id "XE" is also from the  keyboard statement.
        Verification is done when menu item Settings is selected.

        You should remove duplicated shortcut key definition on konsole
        and global settion to utilize those keys.
        Konsole shortcut is defined on Settings->Configure Shortcuts.
        Global shortcut is customized on SystemSettings->Computer Administration
        ->Keyboard & Mouse->Keyboard Shortcuts.
        Search(grep -irl) also in the dir ~/.kde/share/config.
        for ex,[Voice] section may define shortcut=Shift+f12
        on ~/.kde/share/config/khotkeysrc.
        This correspond to SystemSettings->Accessibility.
        Select InputActions of left column and  push Global Settings.
        Voice setting tab shows Shift+F12. After reset it to none.
        Shift+F12 setting of keytab file will work.

        (note)./usr/share/doc/konsole/README.KeyTab may help you to coding
               keytab file.
              .Both "-Modifier" and "+Modifier" definition is required
               if you use the key with and without the Modifier.
               else "already assigned" error message issued when you test
               using "konsole --keytab xxx.keytab".
              ."*" on esc string is replaced by 2:Shift,3:Alt,5:Control ecah for the line with +AnyMod.

        0001|# [xe.keytab] Konsole Keyboard Table (xe console keys)
        0002|#
        0003|# --------------------------------------------------------------
        0004|
        0005|keyboard "XE"
        0006|
        0007|# --------------------------------------------------------------
        0008|#
        0009|# This configuration table allows to customize the
        0010|# meaning of the keys.
        0011|#
        0012|# The syntax is that each entry has the form :
        0013|#
        0014|#   "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
        0015|#
        0016|# Keynames are those defined in <qnamespace.h> with the
        0017|# "Qt::Key_" removed. (We'd better insert the list here)
        0018|#
        0019|# Mode names are :
        0020|#
        0021|# - Shift
        0022|# - Alt
        0023|# - Control
        0024|#
        0025|#   The VT100 emulation has two modes that can affect the
        0026|#   sequences emitted by certain keys. These modes are
        0027|#   under control of the client program.
        0028|#
        0029|# - Newline     : effects Return and Enter key.
        0030|# - Application : effects Up and Down key.
        0031|#
        0032|# - Ansi        : effects Up and Down key (This is for VT52, really).
        0033|#
        0034|# Operations are
        0035|#
        0036|# - scrollUpLine
        0037|# - scrollUpPage
        0038|# - scrollDownLine
        0039|# - scrollDownPage
        0040|#
        0041|# - emitSelection
        0042|#
        0043|# If the key is not found here, the text of the
        0044|# key event as provided by QT is emitted, possibly
        0045|# preceeded by ESC if the Alt key is pressed.
        0046|#
        0047|# --------------------------------------------------------------
        0048|
        0049|key Escape : "\E"
        0050|key Tab           : "\t"
        0051|key Backtab+Shift : "\E[Z"
        0052|
        0053|# VT100 can add an extra \n after return.
        0054|# The NewLine mode is set by an escape sequence.
        0055|
        0056|key Return-NewLine : "\r"
        0057|key Return+NewLine : "\r\n"
        0058|
        0059|# Some desperately try to save the ^H.
        0060|
        0061|key Backspace : "\x7f"
        0062|
        0063|
        0064|key Up   -AnyMod : "\E[A"
        0065|key Down -AnyMod : "\E[B"
        0066|key Right-AnyMod : "\E[C"
        0067|key Left -AnyMod : "\E[D"
        0068|
        0069|key Up   +AnyMod : "\E[1;*A"
        0070|key Down +AnyMod : "\E[1;*B"
        0071|key Left +AnyMod : "\E[1;*D"
        0072|key Right+AnyMod : "\E[1;*C"
        0073|
        0074|# linux functions keys F1-F5 differ from xterm
        0075|
        0076|key F1 -Shift-Alt-Control : "\E[[A"
        0077|key F2 -Shift-Alt-Control : "\E[[B"
        0078|key F3 -Shift-Alt-Control : "\E[[C"
        0079|key F4 -Shift-Alt-Control : "\E[[D"
        0080|key F5 -Shift-Alt-Control : "\E[[E"
        0081|key F6 -AnyMod            : "\E[17~"
        0082|key F7 -AnyMod            : "\E[18~"
        0083|key F8 -AnyMod            : "\E[19~"
        0084|key F9 -AnyMod            : "\E[20~"
        0085|key F10-AnyMod            : "\E[21~"
        0086|key F11-AnyMod            : "\E[23~"
        0087|key F12-AnyMod            : "\E[24~"
        0088|
        0089|key F1 +Shift-Alt-Control : "\EO2P"
        0090|key F2 +Shift-Alt-Control : "\EO2Q"
        0091|key F3 +Shift-Alt-Control : "\EO2R"
        0092|key F4 +Shift-Alt-Control : "\EO2S"
        0093|key F5 +Shift-Alt-Control : "\E[15;2~"
        0094|
        0095|key F6  +AnyMod    : "\E[17;*~"
        0096|key F7  +AnyMod    : "\E[18;*~"
        0097|key F8  +AnyMod    : "\E[19;*~"
        0098|key F9  +AnyMod    : "\E[20;*~"
        0099|key F10 +AnyMod    : "\E[21;*~"
        0100|key F11 +AnyMod    : "\E[23;*~"
        0101|key F12 +AnyMod    : "\E[24;*~"
        0102|
        0103|key Home  -AnyMod : "\E[H"
        0104|key End   -AnyMod : "\E[F"
        0105|key Prior -AnyMod : "\E[5~"
        0106|key Next  -AnyMod : "\E[6~"
        0107|key Insert-AnyMod : "\E[2~"
        0108|key Delete-AnyMod : "\E[3~"
        0109|
        0110|key Home  +AnyMod : "\E[1;*H"
        0111|key End   +AnyMod : "\E[1;*F"
        0112|key Prior +AnyMod : "\E[5;*~"
        0113|key Next  +AnyMod : "\E[6;*~"
        0114|key Insert+AnyMod : "\E[2;*~"
        0115|key Delete+AnyMod : "\E[3;*~"
        0116|
        0117|# Keypad-Enter. See comment on Return above.
        0118|
        0119|key Enter+NewLine : "\r\n"
        0120|key Enter-NewLine : "\r"
        0121|
        0122|key Space +Control : "\x00"
        0123|key 2 -Control : "2"
        0124|key 2 +Control : "\x00"
        0125|
        0126|# some of keys are used by konsole.
        0127|
        0128|
        0129|key ScrollLock     : scrollLock
        0130|
        0131|#----------------------------------------------------------
        0132|
        0133|# keypad characters as offered by Qt
        0134|# cannot be recognized as such.
        0135|
        0136|#----------------------------------------------------------
        0137|
        0138|# Following other strings as emitted by konsole.
#endif

#ifdef XXE
      (following are irrelevant to gxe)
#else

(9) Tables.

    (a) Scan+Char code of DOS.

        Key                  Shift+  Ctrl+   Alt+
        -----------  ------  ------  ------  ------
        F1           0x3b00  0x5400  0x5e00  0x6800
        F2           0x3c00  0x5500  0x5f00  0x6900
        F3           0x3d00  0x5600  0x6000  0x6a00
        F4           0x3e00  0x5700  0x6100  0x6b00
        F5           0x3f00  0x5800  0x6200  0x6c00
        F6           0x4000  0x5900  0x6300  0x6d00
        F7           0x4100  0x5a00  0x6400  0x6e00
        F8           0x4200  0x5b00  0x6500  0x6f00
        F9           0x4300  0x5c00  0x6600  0x7000
        F10          0x4400  0x5d00  0x6700  0x7100
        F11          0x8500  0x8700  0x8900  0x8b00
        F12          0x8600  0x8800  0x8a00  0x8c00

        Home         0x4700  0x4700  0x7700  0x9700
        End          0x4f00  0x4f00  0x7500  0x9f00
        Insert       0x5200  0x5200  0x9200  0xa200
        Delete       0x5300  0x5300  0x9300  0xa300
        PageUp       0x4900  0x4900  0x8400  0x9900
        PageDown     0x5100  0x5100  0x7600  0xa100
        Up           0x4800  0x4800  0x8d00  0x9800
        Down         0x5000  0x5000  0x9100  0xa000
        Left         0x4b00  0x4b00  0x7300  0x9b00
        Right        0x4d00  0x4d00  0x7400  0x9d00

        Esc          0x011b  0x011b  0x011b  0x0100
        BackSpace    0x0e08  0x0e08  0x0e7f  0x0e00
        Tab          0x0f09  0x0f00  0x9400  0xa500
        Enter        0x1c0d  0x1c0d  0x1c0a  0x1c00
        10keyEnter   0xe00d  0xe00d  0xe00a  0xa600

        10key0       0x5230  0x5200  0x9200  *1 (for JIS8BitCodeInput)
        10key1       0x4f31  0x4f00  0x7500  *1
        10key2       0x5032  0x5000  0x9100  *1
        10key3       0x5133  0x5100  0x7600  *1
        10key4       0x4b34  0x4b00  0x7300  *1
        10key5       0x4c35  0x4c00  0x8f00  *1
        10key6       0x4d36  0x4d00  0x7400  *1
        10key7       0x4737  0x4700  0x7700  *1
        10key8       0x4838  0x4800  0x8d00  *1
        10key9       0x4939  0x4900  0x8400  *1
        10key.       0x532e  0x5300  0x9300  *1
        10key+       0x4e2b  0x4e2b  0x9000  0x4e00
        10key-       0x4a2d  0x4a2d  0x8e00  0x4a00
        10key*       0x372a  0x372a  0x9600  0x3700
        10key/       0x352f  0x342f  0x9500  0xa400

    (b) Default Esc string translation of xe.
        (Terminfo defined string is accepted under fullscreen console mode)||~v127R~
                                                                      ||~v127I~
        Note. "^[" is  notation of 0x1b.                              ||~v127I~
              "*SCO"(^[[M-->^[[Z,^[[a-->^[[v) means for PuTTY keyboard type=SCO.||~v127I~
              Use --NOSCO option to inactivate SCO.                   ||~v127I~
              And SCO assigns ^[Z to S+F2, it is duplicated to previous assign ment to S+Tab.||~v127I~
              Use --Z2 option to use ^[Z to S+F2.                     ||~v127I~

        Key      Modifier  Esc String
        -------  --------  -------------
        F1                 ^[OP                                       ||~v127I~
        F1                 ^[[[A                                      ||~v127I~
        F1                 ^[[11~                                     ||~v127I~
        F1                 ^[[M             *SCO                      ||~v127I~
        F1        Shift    ^[O2P                                      ||~v127I~
        F1        Shift    ^[O1;2P                                    ||~v127I~
        F1        Shift    ^[[Y             *SCO                      ||~v127I~
        F1        Ctrl     ^[O5P                                      ||~v127I~
        F1        Ctrl     ^[[k             *SCO                      ||~v127I~
        F1        Alt      ^[O3P                                      ||~v127I~
        F2                 ^[OQ                                       ||~v127I~
        F2                 ^[[[B                                      ||~v127I~
        F2                 ^[[12~                                     ||~v127I~
        F2                 ^[[N             *SCO                      ||~v127I~
        F2        Shift    ^[O2Q                                      ||~v127I~
        F2        Shift    ^[O1;2Q                                    ||~v127I~
        F2        Shift    ^[[Z             *SCO *DUP with S+Tab      ||~v127I~
        F2        Ctrl     ^[O5Q                                      ||~v127I~
        F2        Ctrl     ^[[l             *SCO                      ||~v127I~
        F2        Alt      ^[O3Q                                      ||~v127I~
        F3                 ^[OR                                       ||~v127I~
        F3                 ^[[[C                                      ||~v127I~
        F3                 ^[[13~                                     ||~v127I~
        F3                 ^[[O             *SCO                      ||~v127I~
        F3        Shift    ^[O2R                                      ||~v127I~
        F3        Shift    ^[O1;2R                                    ||~v127I~
        F3        Shift    ^[[a             *SCO                      ||~v127I~
        F3        Ctrl     ^[O5R                                      ||~v127I~
        F3        Ctrl     ^[[m             *SCO                      ||~v127I~
        F3        Alt      ^[O3R                                      ||~v127I~
        F4                 ^[OS                                       ||~v127I~
        F4                 ^[[[D                                      ||~v127I~
        F4                 ^[[14~                                     ||~v127I~
        F4                 ^[[P             *SCO                      ||~v127I~
        F4        Shift    ^[O2S                                      ||~v127I~
        F4        Shift    ^[O1;2S                                    ||~v127I~
        F4        Shift    ^[[b             *SCO                      ||~v127I~
        F4        Ctrl     ^[O5S                                      ||~v127I~
        F4        Ctrl     ^[[n             *SCO                      ||~v127I~
        F4        Alt      ^[O3S                                      ||~v127I~
        F5                 ^[OT                                       ||~v127I~
        F5                 ^[[[E                                      ||~v127I~
        F5                 ^[[15~                                     ||~v127I~
        F5                 ^[[Q             *SCO                      ||~v127I~
        F5        Shift    ^[[15;2~                                   ||~v127I~
        F5        Shift    ^[[c             *SCO                      ||~v127I~
        F5        Ctrl     ^[[15;5~                                   ||~v127I~
        F5        Ctrl     ^[[o             *SCO                      ||~v127I~
        F5        Alt      ^[[15;3~                                   ||~v127I~
        F6                 ^[OU                                       ||~v127I~
        F6                 ^[[17~                                     ||~v127I~
        F6                 ^[[R             *SCO                      ||~v127I~
        F6        Shift    ^[[17;2~                                   ||~v127I~
        F6        Shift    ^[[d             *SCO                      ||~v127I~
        F6        Ctrl     ^[[17;5~                                   ||~v127I~
        F6        Ctrl     ^[[p             *SCO                      ||~v127I~
        F6        Alt      ^[[17;3~                                   ||~v127I~
        F7                 ^[OV                                       ||~v127I~
        F7                 ^[[18~                                     ||~v127I~
        F7                 ^[[S             *SCO                      ||~v127I~
        F7        Shift    ^[[18;2~                                   ||~v127I~
        F7        Shift    ^[[e             *SCO                      ||~v127I~
        F7        Ctrl     ^[[18;5~                                   ||~v127I~
        F7        Ctrl     ^[[q             *SCO                      ||~v127I~
        F7        Alt      ^[[18;3~                                   ||~v127I~
        F8                 ^[OW                                       ||~v127I~
        F8                 ^[[19~                                     ||~v127I~
        F8                 ^[[T             *SCO                      ||~v127I~
        F8        Shift    ^[[19;2~                                   ||~v127I~
        F8        Shift    ^[[f             *SCO                      ||~v127I~
        F8        Ctrl     ^[[19;5~                                   ||~v127I~
        F8        Ctrl     ^[[r             *SCO                      ||~v127I~
        F8        Alt      ^[[19;3~                                   ||~v127I~
        F9                 ^[OX                                       ||~v127I~
        F9                 ^[[20~                                     ||~v127I~
        F9                 ^[[U             *SCO                      ||~v127I~
        F9        Shift    ^[[20;2~                                   ||~v127I~
        F9        Shift    ^[[g             *SCO                      ||~v127I~
        F9        Ctrl     ^[[20;5~                                   ||~v127I~
        F9        Ctrl     ^[[s             *SCO                      ||~v127I~
        F9        Alt      ^[[20;3~                                   ||~v127I~
        F10                ^[OY                                       ||~v127I~
        F10                ^[[21~                                     ||~v127I~
        F10                ^[[V             *SCO                      ||~v127I~
        F10       Shift    ^[[21;2~                                   ||~v127I~
        F10       Shift    ^[[h             *SCO                      ||~v127I~
        F10       Ctrl     ^[[21;5~                                   ||~v127I~
        F10       Ctrl     ^[[t             *SCO                      ||~v127I~
        F10       Alt      ^[[21;3~                                   ||~v127I~
        F11                ^[OZ                                       ||~v127I~
        F11                ^[[23~                                     ||~v127I~
        F11                ^[[W             *SCO                      ||~v127I~
        F11       Shift    ^[[23;2~                                   ||~v127I~
        F11       Shift    ^[[i             *SCO                      ||~v127I~
        F11       Ctrl     ^[[23;5~                                   ||~v127I~
        F11       Ctrl     ^[[u             *SCO                      ||~v127I~
        F11       Alt      ^[[23;3~                                   ||~v127I~
        F12                ^[O[                                       ||~v127I~
        F12                ^[[24~                                     ||~v127I~
        F12       Shift    ^[[24;2~                                   ||~v127I~
        F12       Shift    ^[[X             *SCO                      ||~v127I~
        F12       Shift    ^[[j             *SCO                      ||~v127I~
        F12       Ctrl     ^[[24;5~                                   ||~v127I~
        F12       Ctrl     ^[[v             *SCO                      ||~v127I~
        F12       Alt      ^[[24;3~                                   ||~v127I~
                                                                      ||~v127I~
        Home               ^[[1~                                      ||~v127I~
        Home               ^[[H                                       ||~v127I~
        Home               ^[OH                                       ||~v127I~
        Home      Shift    ^[[2H                                      ||~v127I~
        Home      Shift    ^[[1;2H                                    ||~v127I~
        Home      Ctrl     ^[[5H                                      ||~v127I~
        Home      Ctrl     ^[[1;5H                                    ||~v127I~
        Home      Alt      ^[[3H                                      ||~v127I~
        Home      Alt      ^[[1;3H                                    ||~v127I~
        End                ^[[4~                                      ||~v127I~
        End                ^[[F                                       ||~v127I~
        End                ^[OF                                       ||~v127I~
        End       Shift    ^[[2F                                      ||~v127I~
        End       Shift    ^[[1;2F                                    ||~v127I~
        End       Ctrl     ^[[5F                                      ||~v127I~
        End       Ctrl     ^[[1;5F                                    ||~v127I~
        End       Alt      ^[[3F                                      ||~v127I~
        End       Alt      ^[[1;3F                                    ||~v127I~
        Insert             ^[[2~                                      ||~v127I~
        Insert             ^[[L                                       ||~v127I~
        Insert             ^[[L~            *SCO                      ||~v127I~
        Insert    Shift    ^[[2;2~                                    ||~v127I~
        Insert    Ctrl     ^[[2;5~                                    ||~v127I~
        Insert    Alt      ^[[2;3~                                    ||~v127I~
        Delete             ^[[3~                                      ||~v127I~
        Delete    Shift    ^[[3;2~                                    ||~v127I~
        Delete    Ctrl     ^[[3;5~                                    ||~v127I~
        Delete    Alt      ^[[3;3~                                    ||~v127I~
        PageUp             ^[[5~                                      ||~v127I~
        PageUp             ^[[I             *SCO                      ||~v127I~
        PageUp    Shift    ^[[5;2~                                    ||~v127I~
        PageUp    Ctrl     ^[[5;5~                                    ||~v127I~
        PageUp    Alt      ^[[5;3~                                    ||~v127I~
        PageDown           ^[[6~                                      ||~v127I~
        PageDown           ^[[G             *SCO                      ||~v127I~
        PageDown  Shift    ^[[6;2~                                    ||~v127I~
        PageDown  Ctrl     ^[[6;5~                                    ||~v127I~
        PageDown  Alt      ^[[6;3~                                    ||~v127I~
        Up                 ^[OA                                       ||~v127I~
        Up                 ^[[A                                       ||~v127I~
        Up        Shift    ^[[2A                                      ||~v127I~
        Up        Shift    ^[[1;2A                                    ||~v127I~
        Up        Ctrl     ^[[5A                                      ||~v127I~
        Up        Ctrl     ^[[1;5A                                    ||~v127I~
        Up        Alt      ^[[3A                                      ||~v127I~
        Up        Alt      ^[[1;3A                                    ||~v127I~
        Down               ^[OB                                       ||~v127I~
        Down               ^[[B                                       ||~v127I~
        Down      Shift    ^[[2B                                      ||~v127I~
        Down      Shift    ^[[1;2B                                    ||~v127I~
        Down      Ctrl     ^[[5B                                      ||~v127I~
        Down      Ctrl     ^[[1;5B                                    ||~v127I~
        Down      Alt      ^[[3B                                      ||~v127I~
        Down      Alt      ^[[1;3B                                    ||~v127I~
        Left               ^[OD                                       ||~v127I~
        Left               ^[[D                                       ||~v127I~
        Left      Shift    ^[[2D                                      ||~v127I~
        Left      Shift    ^[[1;2D                                    ||~v127I~
        Left      Ctrl     ^[[5D                                      ||~v127I~
        Left      Ctrl     ^[[1;5D                                    ||~v127I~
        Left      Alt      ^[[3D                                      ||~v127I~
        Left      Alt      ^[[1;3D                                    ||~v127I~
        Right              ^[OC                                       ||~v127I~
        Right              ^[[C                                       ||~v127I~
        Right     Shift    ^[[2C                                      ||~v127I~
        Right     Shift    ^[[1;2C                                    ||~v127I~
        Right     Ctrl     ^[[5C                                      ||~v127I~
        Right     Ctrl     ^[[1;5C                                    ||~v127I~
        Right     Alt      ^[[3C                                      ||~v127I~
        Right     Alt      ^[[1;3C                                    ||~v127I~
                                                                      ||~v127I~
        Tab       Shift    ^[[Z             *DUP with SCO:S+F2        ||~v127I~
        P5                 ^[[E                                       ||~v127I~

#endif

[EOF]
