How do I get a Numeric keypad for entering data?

The xterm program allows alternate key mappings and you can set it up so a key will shift to another key map. In this case the "Num Lock" seems the most natural. It has a light on it to indicate the keypad mode.

Add, if necessary, the entry to your XTerm.VT100.Translation resource in your .Xresource file:

   Num_Lock:        keymap(num)\n\
Also, add this resource to your .Xresources file:

   XTerm.VT100.numKeymap.Translations: #override \
   Num_Lock:          keymap(None)\n\
   ~Shift ~Ctrl ~Meta KP_0:        string("0")\n\
   ~Shift ~Ctrl ~Meta KP_1:        string("1")\n\
   ~Shift ~Ctrl ~Meta KP_2:        string("2")\n\
   ~Shift ~Ctrl ~Meta KP_3:        string("3")\n\
   ~Shift ~Ctrl ~Meta KP_4:        string("4")\n\
   ~Shift ~Ctrl ~Meta KP_5:        string("5")\n\
   ~Shift ~Ctrl ~Meta KP_6:        string("6")\n\
   ~Shift ~Ctrl ~Meta KP_7:        string("7")\n\
   ~Shift ~Ctrl ~Meta KP_8:        string("8")\n\
   ~Shift ~Ctrl ~Meta KP_9:        string("9")\n\
   ~Shift ~Ctrl ~Meta KP_Decimal:  string(".")\n\
   ~Shift ~Ctrl ~Meta KP_Equal:    string("=")\n\
   ~Shift ~Ctrl ~Meta KP_Divide:   string("/")\n\
   ~Shift ~Ctrl ~Meta KP_Multiply: string("*")\n\
   ~Shift ~Ctrl ~Meta KP_Subtract: string("-")\n\
   ~Shift ~Ctrl ~Meta KP_Add:      string("+")\n\
   ~Shift ~Ctrl ~Meta KP_Enter:    string("\n")
Next, create a file called keypadNCD.ad with the X resources:

   XTerm.VT100.numKeymap.Translations: #override \
   Num_Lock:      keymap(None)\n\
   ~Shift ~Ctrl ~Meta Insert:      string("0")\n\
   ~Shift ~Ctrl ~Meta F33:         string("1")\n\
   ~Shift ~Ctrl ~Meta Down:        string("2")\n\
   ~Shift ~Ctrl ~Meta F35:         string("3")\n\
   ~Shift ~Ctrl ~Meta Left:        string("4")\n\
   ~Shift ~Ctrl ~Meta F31:         string("5")\n\
   ~Shift ~Ctrl ~Meta Right:       string("6")\n\
   ~Shift ~Ctrl ~Meta F27:         string("7")\n\
   ~Shift ~Ctrl ~Meta Up:          string("8")\n\
   ~Shift ~Ctrl ~Meta F29:         string("9")\n\
   ~Shift ~Ctrl ~Meta KP_Decimal:  string(".")\n\
   ~Shift ~Ctrl ~Meta F24:         string("=")\n\
   ~Shift ~Ctrl ~Meta F25:         string("/")\n\
   ~Shift ~Ctrl ~Meta F26:         string("*")\n\
   ~Shift ~Ctrl ~Meta KP_Subtract: string("-")\n\
   ~Shift ~Ctrl ~Meta KP_Add:      string("+")\n\
   ~Shift ~Ctrl ~Meta KP_Enter:    string("\n")
Finally, add these lines to your .xsession file:

   xmodmap -e 'keycode 113 = KP_Decimal Delete'
   xrdb -merge keypadNCD.ad
Note: The reason we suggest you keep this X resources in a separate file is because this file is carefully constructed to get around some bugs in the way the NCD server handles key events. This way your .Xresources file is kept general enough to work on any display.


University of Delaware
June 19, 1994