diff -c -r -N xkeycaps-2.46/kbds/all-kbds.h xkeycaps-2.46-armada/kbds/all-kbds.h
*** xkeycaps-2.46/kbds/all-kbds.h	Mon Dec 13 01:13:39 1999
--- xkeycaps-2.46-armada/kbds/all-kbds.h	Tue Feb 27 13:58:34 2001
***************
*** 108,113 ****
--- 108,123 ----
  #endif
  
  #ifdef KBD
+   KBD ("Armada", "Compaq", "Armada M700 (XFree86; UK)", 0,
+        &armada_m700_geom, armada_m700_caps, armada_m700_codes, armada_m700_uk_map),
+ #else
+ # include "armada-m700-geom.h"
+ # include "armada-m700-caps.h"
+ # include "armada-m700-codes.h"
+ # include "armada-m700-map.h"
+ #endif
+ 
+ #ifdef KBD
    KBD ("Presario", "Compaq", "Presario 1655 (XInside; US)", 0,
         &presario_geom, presario_caps, presario_codes, xinside_map),
  #else
diff -c -r -N xkeycaps-2.46/kbds/armada-m700-caps.h xkeycaps-2.46-armada/kbds/armada-m700-caps.h
*** xkeycaps-2.46/kbds/armada-m700-caps.h	Thu Jan  1 01:00:00 1970
--- xkeycaps-2.46-armada/kbds/armada-m700-caps.h	Tue Feb 27 13:58:34 2001
***************
*** 0 ****
--- 1,55 ----
+ /* xkeycaps, Copyright (c) 1998, 1999 Jamie Zawinski <jwz@jwz.org>
+  *
+  * This file describes the key surfaces of the Compaq Armada M700 keyboard.
+  * By Waider <waider@waider.ie>
+  * based on the Presario layout
+  * By Hans Huebner <hans@huebner.org>
+  */
+ 
+ static const struct key_strings armada_m700_caps [] = {
+ 
+  /* Row 1 */
+ 
+  {"Esc","",0},
+  {"F1",0}, {"F2",0}, {"F3",0}, {"F4","CRT/LCD",0}, {"F5","Mute/Unmute",0},
+  {"F6","Lock",0},
+  {"F7","Batt. Swap",0}, {"F8","Gauge",0}, {"F9",0}, {"F10","Brightness",0},
+  {"F11",0}, {"F12",0},
+  {"Pg Up", "Pause", 0}, {"Pg Dn", "Break", 0}, {"Home", "Scroll", 0},
+  {"End", "NumLk", "0" }, {"Insert", "Prt Sc", 0},
+  {"Del", "SysRq", 0},
+ 
+  /* Row 2 */
+ 
+  {"", "`", "|"}, {"!", "1", 0}, {"\"", "2", 0}, {"", "3", 0},
+  {"$", "4", "E"}, /* ARGH. That's a Euro, not an "E". */
+  {"%", "5", 0}, {"^", "6", 0}, {"&", "7", "[7]"}, {"*", "8", "[8]"},
+  {"(", "9", "[9]"}, {")", "0", "[*]"}, {"_", "-", 0}, {"+", "=", 0},
+  {"Backspace", "<-", 0},
+ 
+  /* Row 3 */
+  {"Tab",0, "'=,"},{"Q", 0}, {"W", 0}, {"E", 0}, {"R", 0}, {"T", 0}, {"Y", 0},
+  {"U", 0, "[4]"}, {"I", 0, "[5]"}, {"O", 0, "[6]"}, {"P", 0, "[-]"},
+  {"{", "[", 0}, {"}", "]", 0}, {"<-'", 0},
+ 
+  /* Row 4 */
+ 
+  {"Caps Lock", 0}, {"A", 0}, {"S", 0}, {"D", 0}, {"F", 0}, {"G", 0}, {"H", 0},
+  {"J", 0, "[1]"}, {"K", 0, "[2]"}, {"L", 0, "[3]"}, {":", ";", "[+]"},
+  {"@", "'", 0}, {"~", "#", 0},
+ 
+  /* Row 5 */
+ 
+  {"Shift", 0}, {"|", "\\", 0}, {"Z", 0}, {"X", 0}, {"C", 0}, {"V", 0},
+  {"B", 0}, {"N", 0}, {"M", 0, "[0]"}, {"<", ",", }, {">", ".", "[.]"},
+  {"?", "/", "[/]"}, {"Shift", 0},
+ 
+  /* Row 6 */
+ 
+  {"Fn", 0}, {"Ctrl", 0}, {"=/+/", 0}, {"Alt", 0}, {" ", 0},
+  {"Alt Gr", 0}, {"##", 0}, {"Ctrl", 0}, {"Up", 0},
+ 
+  /* Row 7 */
+  {"Left", 0}, {"Down", 0}, {"Right", 0}
+ };
+ 
diff -c -r -N xkeycaps-2.46/kbds/armada-m700-codes.h xkeycaps-2.46-armada/kbds/armada-m700-codes.h
*** xkeycaps-2.46/kbds/armada-m700-codes.h	Thu Jan  1 01:00:00 1970
--- xkeycaps-2.46-armada/kbds/armada-m700-codes.h	Tue Feb 27 13:58:34 2001
***************
*** 0 ****
--- 1,34 ----
+ /* xkeycaps, Copyright (c) 1998, 1999 Jamie Zawinski <jwz@jwz.org>
+  *
+  * This file describes the keycodes of the Compaq Armada M700 running XFree86
+  * over Linux.
+  * By Waider <waider@waider.ie>
+  * Based on the Presario layout
+  * By Hans Huebner <hans@huebner.org>
+  *
+  * Note: The "Fn" key apparently doesn't deliver events to the X server, nor
+  * do several of the "Fn" activated keys.
+  */
+ 
+ static const KeyCode armada_m700_codes [] = {
+   /* Row 1 */
+   9, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 95, 96, 99, 105, 97, 103, 106, 107,
+ 
+   /* Row 2 */
+   49, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 
+   /* Row 3 */
+   23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 
+   /* Row 4 */
+   66, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51,
+ 
+   /* Row 5 */
+   50, 94, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 
+   /* Row 6 */
+   0, 37, 115, 64, 65, 113, 117, 109, 98,
+ 
+   /* ROW 7 */
+   100, 104, 102
+ };
diff -c -r -N xkeycaps-2.46/kbds/armada-m700-geom.h xkeycaps-2.46-armada/kbds/armada-m700-geom.h
*** xkeycaps-2.46/kbds/armada-m700-geom.h	Thu Jan  1 01:00:00 1970
--- xkeycaps-2.46-armada/kbds/armada-m700-geom.h	Tue Feb 27 13:58:34 2001
***************
*** 0 ****
--- 1,67 ----
+ /* xkeycaps, Copyright (c) 1998, 1999 Jamie Zawinski <jwz@jwz.org>
+  *
+  * This file describes the physical layout of the Compaq Armada M700
+  * keyboard.
+  * By Waider <waider@waider.ie>
+  * based on the Presario layout
+  * By Hans Huebner <hans@huebner.org>
+  */
+ 
+ static const struct key_geometry armada_m700_geom_row1 [] = {
+   {10, 10},{4, 0},                                              /* ESC   */
+   {10, 10},{10, 10},{10, 10},{10, 10},{10, 10},{10, 10},{4, 0}, /* F1-6  */
+   {10, 10},{10, 10},{10, 10},{10, 10},{10, 10},{10, 10},{4, 0}, /* F7-12 */
+   {10, 10},{10, 10},{10, 10},{10, 10},{10, 10},{4, 0}, /* PgUp/PgDn etc. */
+   {10, 10}                                                      /* DEL   */
+ };
+ 
+ static const struct key_geometry armada_m700_geom_row2 [] = {
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   {24, 14}
+ };
+ 
+ static const struct key_geometry armada_m700_geom_row3 [] = {
+   {18, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   { 4, 0},{16, 28}
+ };
+ 
+ static const struct key_geometry armada_m700_geom_row4 [] = {
+   {22, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},{14, 14} /* enter key here */
+ };
+ 
+ static const struct key_geometry armada_m700_geom_row5 [] = {
+   {16, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   {14, 14},{14, 14},{14, 14},{14, 14},{14, 14},
+   {14, 14},{36, 14}
+ };
+ 
+ static const struct key_geometry armada_m700_geom_row6 [] = {
+   {16, 14}, {14, 14}, {14, 14}, {14, 14},
+   {70, 14}, {14, 14}, {14, 14}, {14, 14},
+   {14, 0},{11, 10}
+ };
+ 
+ static const struct key_geometry armada_m700_geom_row7 [] = {
+   {173, 0},{11, 10},{11, 10},{11, 10}
+ };
+ 
+ static const struct keyboard_row_geometry armada_m700_geom_rows [] = {
+   ROW (armada_m700_geom_row1, 10),
+   ROW (armada_m700_geom_row2, 14),
+   ROW (armada_m700_geom_row3, 14),
+   ROW (armada_m700_geom_row4, 14),
+   ROW (armada_m700_geom_row5, 14),
+   ROW (armada_m700_geom_row6, 10),
+   ROW (armada_m700_geom_row7, 10),
+ };
+ 
+ static const struct keyboard_geometry armada_m700_geom = {
+   sizeof (armada_m700_geom_rows) / sizeof (struct keyboard_row_geometry),
+   armada_m700_geom_rows, 3, 3, 3
+ };
diff -c -r -N xkeycaps-2.46/kbds/armada-m700-map.h xkeycaps-2.46-armada/kbds/armada-m700-map.h
*** xkeycaps-2.46/kbds/armada-m700-map.h	Thu Jan  1 01:00:00 1970
--- xkeycaps-2.46-armada/kbds/armada-m700-map.h	Tue Feb 27 14:06:09 2001
***************
*** 0 ****
--- 1,153 ----
+ static const struct default_keycode_map armada_m700_uk_map [] = {
+   {   9, 0,		{ XK_Escape }},
+   {  10, 0,		{ XK_1,	XK_exclam,
+ 			  XK_onesuperior,	XK_exclamdown }},
+   {  11, 0,		{ XK_2,	XK_quotedbl,
+ 			  XK_twosuperior,	XK_oneeighth }},
+   {  12, 0,		{ XK_3,	XK_sterling,
+ 			  XK_threesuperior,	XK_sterling }},
+   {  13, 0,		{ XK_4,	XK_dollar,
+ 			  XK_onequarter,	XK_dollar }},
+   {  14, 0,		{ XK_5,	XK_percent,
+ 			  XK_onehalf,	XK_threeeighths }},
+   {  15, 0,		{ XK_6,	XK_asciicircum,
+ 			  XK_threequarters,	XK_fiveeighths }},
+   {  16, 0,		{ XK_7,	XK_ampersand,
+ 			  XK_braceleft,	XK_seveneighths }},
+   {  17, 0,		{ XK_8,	XK_asterisk,
+ 			  XK_bracketleft,	XK_trademark }},
+   {  18, 0,		{ XK_9,	XK_parenleft,
+ 			  XK_bracketright,	XK_plusminus }},
+   {  19, 0,		{ XK_0,	XK_parenright,
+ 			  XK_braceright,	XK_degree }},
+   {  20, 0,		{ XK_minus,	XK_underscore,
+ 			  XK_backslash,	XK_questiondown }},
+   {  21, 0,		{ XK_equal,	XK_plus,
+ 			  XK_dead_cedilla,	XK_dead_ogonek }},
+   {  22, 0,		{ XK_BackSpace }},
+   {  23, 0,		{ XK_Tab,	XK_ISO_Left_Tab }},
+   {  24, 0,		{ XK_q,	XK_Q,
+ 			  XK_at,	XK_Greek_OMEGA }},
+   {  25, 0,		{ XK_w,	XK_W,
+ 			  XK_lstroke,	XK_Lstroke }},
+   {  26, 0,		{ XK_e,	XK_E }},
+   {  27, 0,		{ XK_r,	XK_R,
+ 			  XK_paragraph,	XK_registered }},
+   {  28, 0,		{ XK_t,	XK_T,
+ 			  XK_tslash,	XK_Tslash }},
+   {  29, 0,		{ XK_y,	XK_Y,
+ 			  XK_leftarrow,	XK_yen }},
+   {  30, 0,		{ XK_u,	XK_U,
+ 			  XK_downarrow,	XK_uparrow }},
+   {  31, 0,		{ XK_i,	XK_I,
+ 			  XK_rightarrow,	XK_idotless }},
+   {  32, 0,		{ XK_o,	XK_O,
+ 			  XK_oslash,	XK_Ooblique }},
+   {  33, 0,		{ XK_p,	XK_P,
+ 			  XK_thorn,	XK_THORN }},
+   {  34, 0,		{ XK_bracketleft,	XK_braceleft,
+ 			  XK_dead_diaeresis,	XK_dead_abovering }},
+   {  35, 0,		{ XK_bracketright,	XK_braceright,
+ 			  XK_dead_tilde,	XK_dead_macron }},
+   {  36, 0,		{ XK_Return }},
+   {  37, ControlMask,	{ XK_Control_L }},
+   {  38, 0,		{ XK_a,	XK_A,
+ 			  XK_ae,	XK_AE }},
+   {  39, 0,		{ XK_s,	XK_S,
+ 			  XK_ssharp,	XK_section }},
+   {  40, 0,		{ XK_d,	XK_D,
+ 			  XK_eth,	XK_ETH }},
+   {  41, 0,		{ XK_f,	XK_F,
+ 			  XK_dstroke,	XK_ordfeminine }},
+   {  42, 0,		{ XK_g,	XK_G,
+ 			  XK_eng,	XK_ENG }},
+   {  43, 0,		{ XK_h,	XK_H,
+ 			  XK_hstroke,	XK_Hstroke }},
+   {  44, 0,		{ XK_j,	XK_J }},
+   {  45, 0,		{ XK_k,	XK_K,
+ 			  XK_kra,	XK_ampersand }},
+   {  46, 0,		{ XK_l,	XK_L,
+ 			  XK_lstroke,	XK_Lstroke }},
+   {  47, 0,		{ XK_semicolon,	XK_colon,
+ 			  XK_dead_acute,	XK_dead_doubleacute }},
+   {  48, 0,		{ XK_apostrophe,	XK_at,
+ 			  XK_dead_circumflex,	XK_dead_caron }},
+   {  49, 0,		{ XK_grave,	XK_notsign,
+ 			  XK_bar,	XK_bar }},
+   {  50, ShiftMask,	{ XK_Shift_L }},
+   {  51, 0,		{ XK_numbersign,	XK_asciitilde,
+ 			  XK_dead_grave,	XK_dead_breve }},
+   {  52, 0,		{ XK_z,	XK_Z,
+ 			  XK_guillemotleft,	XK_less }},
+   {  53, 0,		{ XK_x,	XK_X,
+ 			  XK_guillemotright,	XK_greater }},
+   {  54, 0,		{ XK_c,	XK_C,
+ 			  XK_cent,	XK_copyright }},
+   {  55, 0,		{ XK_v,	XK_V,
+ 			  XK_leftdoublequotemark,	XK_grave }},
+   {  56, 0,		{ XK_b,	XK_B,
+ 			  XK_rightdoublequotemark,	XK_apostrophe }},
+   {  57, 0,		{ XK_n,	XK_N }},
+   {  58, 0,		{ XK_m,	XK_M,
+ 			  XK_mu,	XK_masculine }},
+   {  59, 0,		{ XK_comma,	XK_less,
+ 			  XK_horizconnector,	XK_multiply }},
+   {  60, 0,		{ XK_period,	XK_greater,
+ 			  XK_periodcentered,	XK_division }},
+   {  61, 0,		{ XK_slash,	XK_question,
+ 			  XK_dead_belowdot,	XK_dead_abovedot }},
+   {  62, ShiftMask,	{ XK_Shift_R }},
+   {  63, 0,		{ XK_KP_Multiply }},
+   {  64, Mod1Mask,	{ XK_Alt_L,	XK_Meta_L }},
+   {  65, 0,		{ XK_space }},
+   {  66, LockMask,	{ XK_Caps_Lock }},
+   {  67, 0,		{ XK_F1 }},
+   {  68, 0,		{ XK_F2 }},
+   {  69, 0,		{ XK_F3 }},
+   {  70, 0,		{ XK_F4 }},
+   {  71, 0,		{ XK_F5 }},
+   {  72, 0,		{ XK_F6 }},
+   {  73, 0,		{ XK_F7 }},
+   {  74, 0,		{ XK_F8 }},
+   {  75, 0,		{ XK_F9 }},
+   {  76, 0,		{ XK_F10 }},
+   {  77, Mod2Mask,	{ XK_Num_Lock,	XK_Pointer_EnableKeys }},
+   {  78, Mod5Mask,	{ XK_Scroll_Lock }},
+   {  79, 0,		{ XK_KP_Home,	XK_KP_7 }},
+   {  80, 0,		{ XK_KP_Up,	XK_KP_8 }},
+   {  81, 0,		{ XK_KP_Prior,	XK_KP_9 }},
+   {  82, 0,		{ XK_KP_Subtract }},
+   {  83, 0,		{ XK_KP_Left,	XK_KP_4 }},
+   {  84, 0,		{ XK_KP_Begin,	XK_KP_5 }},
+   {  85, 0,		{ XK_KP_Right,	XK_KP_6 }},
+   {  86, 0,		{ XK_KP_Add }},
+   {  87, 0,		{ XK_KP_End,	XK_KP_1 }},
+   {  88, 0,		{ XK_KP_Down,	XK_KP_2 }},
+   {  89, 0,		{ XK_KP_Next,	XK_KP_3 }},
+   {  90, 0,		{ XK_KP_Insert,	XK_KP_0 }},
+   {  91, 0,		{ XK_KP_Delete,	XK_KP_Decimal }},
+   {  92, 0,		{ XK_Print,	XK_Sys_Req }},
+   {  94, 0,		{ XK_backslash,	XK_bar,
+ 			  XK_bar,	XK_brokenbar }},
+   {  95, 0,		{ XK_F11 }},
+   {  96, 0,		{ XK_F12 }},
+   {  97, 0,		{ XK_Home }},
+   {  98, 0,		{ XK_Up }},
+   {  99, 0,		{ XK_Prior }},
+   { 100, 0,		{ XK_Left }},
+   { 102, 0,		{ XK_Right }},
+   { 103, 0,		{ XK_End }},
+   { 104, 0,		{ XK_Down }},
+   { 105, 0,		{ XK_Next }},
+   { 106, 0,		{ XK_Insert }},
+   { 107, 0,		{ XK_Delete }},
+   { 108, 0,		{ XK_KP_Enter }},
+   { 109, ControlMask,	{ XK_Control_R }},
+   { 110, 0,		{ XK_Pause,	XK_Break }},
+   { 111, 0,		{ XK_Print,	XK_Sys_Req }},
+   { 112, 0,		{ XK_KP_Divide }},
+   { 113, Mod3Mask,	{ XK_Mode_switch,	XK_Multi_key }},
+   { 114, 0,		{ XK_Pause,	XK_Break }},
+   { 115, 0,     { XK_Meta_L }}, /* Not really, it's the Windows key */
+   { 117, 0,     { XK_Meta_R }}  /* Menu key. Thanks, Bill. */
+   };

