diff -ur /opt/XFree86.1/lib/X11/xkb/keycodes/xfree86 /opt/XFree86/lib/X11/xkb/keycodes/xfree86
--- /opt/XFree86.1/lib/X11/xkb/keycodes/xfree86	Mon Jan 17 12:58:11 2000
+++ /opt/XFree86/lib/X11/xkb/keycodes/xfree86	Sat Apr  1 02:06:40 2000
@@ -1,9 +1,9 @@
 // $TOG: xfree86 /main/5 1997/08/02 10:11:05 kaleb $
-// $XFree86: xc/programs/xkbcomp/keycodes/xfree86,v 3.7 1999/10/13 04:21:38 dawes Exp $
+// $XFree86: xc/programs/xkbcomp/keycodes/xfree86,v 3.10 2000/02/12 02:54:46 dawes Exp $
 default xkb_keycodes "xfree86" {
 
     minimum= 8;
-    maximum= 134;
+    maximum= 255;
 
     <TLDE> =  49;
     <AE01> =  10;
@@ -123,7 +123,139 @@
     <KPEN> = 108;
 
     <KP0>  =  90;
-    <KPDL> = 91;
+    <KPDL> =  91;
+
+    // Extended keys that may be generated on "Internet" keyboards.
+    // These are not standardised, hence the meaningless names.
+    // The entries commented out are never generated because the raw codes
+    // in those positions are already used for well-defined keys.
+    <I01> =   129;
+    <I02> =   130;
+    <I03> =   131;
+    <I04> =   132;
+    <I05> =   133;
+    <I06> =   134;
+    <I07> =   135;
+    <I08> =   136;
+    <I09> =   137;
+    <I0A> =   138;
+    <I0B> =   139;
+    <I0C> =   140;
+    <I0D> =   141;
+    <I0E> =   142;
+    <I0F> =   143;
+    <I10> =   144;
+    <I11> =   145;
+    <I12> =   146;
+    <I13> =   147;
+    <I14> =   148;
+    <I15> =   149;
+    <I16> =   150;
+    <I17> =   151;
+    <I18> =   152;
+    <I19> =   153;
+    <I1A> =   154;
+    <I1B> =   155;
+    // <I1C> =   156;
+    <I1D> =   157;
+    <I1E> =   158;
+    <I1F> =   159;
+    <I20> =   160;
+    <I21> =   161;
+    <I22> =   162;
+    <I23> =   163;
+    <I24> =   164;
+    <I25> =   165;
+    <I26> =   166;
+    <I27> =   167;
+    <I28> =   168;
+    <I29> =   169;
+    // <I2A> =   170;
+    <I2B> =   171;
+    <I2C> =   172;
+    <I2D> =   173;
+    <I2E> =   174;
+    <I2F> =   175;
+    <I30> =   176;
+    <I31> =   177;
+    // <I32> =   178;
+    <I33> =   179;
+    <I34> =   180;
+    <I35> =   181;
+    // <I36> =   182;
+    // <I37> =   183;
+    <I38> =   184;
+    <I39> =   185;
+    <I3A> =   186;
+    <I3B> =   187;
+    <I3C> =   188;
+    <I3D> =   189;
+    <I3E> =   190;
+    <I3F> =   191;
+    <I40> =   192;
+    <I41> =   193;
+    <I42> =   194;
+    // <I43> =   195;
+    <I44> =   196;
+    <I45> =   197;
+    // <I46> =   198;
+    // <I47> =   199;
+    // <I48> =   200;
+    // <I49> =   201;
+    <I4A> =   202;
+    // <I4B> =   203;
+    // <I4C> =   204;
+    // <I4D> =   205;
+    <I4E> =   206;
+    // <I4F> =   207;
+    // <I50> =   208;
+    // <I51> =   209;
+    // <I52> =   210;
+    // <I53> =   211;
+    <I54> =   212;
+    <I55> =   213;
+    <I56> =   214;
+    <I57> =   215;
+    <I58> =   216;
+    <I59> =   217;
+    <I5A> =   218;
+    // <I5B> =   219;
+    // <I5C> =   220;
+    // <I5D> =   221;
+    <I5E> =   222;
+    <I5F> =   223;
+    <I60> =   224;
+    <I61> =   225;
+    <I62> =   226;
+    <I63> =   227;
+    // <I64> =   228;
+    // <I65> =   229;
+    // <I66> =   230;
+    // <I67> =   231;
+    // <I68> =   232;
+    <I69> =   233;
+    <I6A> =   234;
+    <I6B> =   235;
+    <I6C> =   236;
+    <I6D> =   237;
+    <I6E> =   238;
+    <I6F> =   239;
+    <I70> =   240;
+    <I71> =   241;
+    <I72> =   242;
+    // <I73> =   243;
+    // <I74> =   244;
+    <I75> =   245;
+    <I76> =   246;
+    <I77> =   247;
+    <I78> =   248;
+    <CUT>  = 231;
+
+    <HELP> = 232;
+
+    <MUTE> = 165;
+    <VOL-> = 159;
+    <VOL+> = 158;
+    <POWR> = 160;
+
+    indicator 1 = "Caps Lock";
+    indicator 2 = "Num Lock";
+    indicator 3 = "Scroll Lock";
+};
diff -ur /opt/XFree86.broken/lib/X11/xkb/keymap/xfree86 /opt/XFree86/lib/X11/xkb/keymap/xfree86
--- /opt/XFree86.broken/lib/X11/xkb/keymap/xfree86	Wed Feb  9 15:10:36 2000
+++ /opt/XFree86/lib/X11/xkb/keymap/xfree86	Sat Apr  1 13:36:39 2000
@@ -7,6 +7,14 @@
     xkb_symbols		{ include "us(pc105)"		};
     xkb_geometry	{ include "pc"			};
 };
+xkb_keymap "sun_type6_usb" {
+    xkb_keycodes	{ include "xfree86"		};
+    xkb_types		{ include "default"		};
+    xkb_compatibility	{ include "default"		};
+    xkb_symbols		{ include "sun/us(sun5)"	};
+    xkb_geometry	{ include "sun(type5unix)"	};
+};
+
 xkb_keymap "us_microsoft" {
     xkb_keycodes	{ include "xfree86"		};
     xkb_types		{ include "default"		};
diff -ur /opt/XFree86.broken/lib/X11/xkb/rules/xfree86 /opt/XFree86/lib/X11/xkb/rules/xfree86
--- /opt/XFree86.broken/lib/X11/xkb/rules/xfree86	Wed Feb  9 15:10:44 2000
+++ /opt/XFree86/lib/X11/xkb/rules/xfree86	Mon Apr  3 00:48:42 2000
@@ -22,6 +22,8 @@
   pc98		=	xfree98(pc98)	nec(pc98)
   abnt2		=	xfree86(abnt2)	pc(abnt2)
   hp            =       xfree86         pc(pc104)
+  sun_type6_usb	=	xfree86(type6)	sun(type5unix)
 
 //! model		layout	=	symbols
 //  microsoft	us	=	us(pc104)
@@ -68,6 +70,16 @@
   itouch	us	=	us(pc104)+inet(itouch)
   itouch	en_US	=	en_US(pc104)+inet(itouch)
   itouch	*	=	en_US(pc104)+inet(itouch)+%l%(v)
+  sun_type6_usb	*	=	us(sun_type6_usb)
   *		us	=	us(pc101)
   *		en_US	=	en_US(pc101)
   *		intl	=	us(pc101compose)
diff -ur /opt/XFree86.broken/lib/X11/xkb/symbols/us /opt/XFree86/lib/X11/xkb/symbols/us
--- /opt/XFree86.broken/lib/X11/xkb/symbols/us	Wed Feb  9 15:10:41 2000
+++ /opt/XFree86/lib/X11/xkb/symbols/us	Mon Apr  3 01:06:37 2000
@@ -221,6 +221,106 @@
     modifier_map Mod4   { Meta_L, Meta_R };
 };
 
+// definition for Sun Type 6 USB
+xkb_symbols "sun_type6_usb" {
+    include "us(basic)"
+
+    key <RTSH> {	[ 	Shift_R		]	};
+    key <LALT> {	[ 	Alt_L	 	]	};
+    key <RCTL> {	[ 	Control_R	]	};
+    key <RALT> {	[	Alt_R		]	};
+    key <LMTA> {	[	Meta_L		]	};
+    key <RMTA> {	[	Meta_R		]	};
+
+    // Begin "Function" section
+    key <FK01> {	[ 	 F1		]	};
+    key <FK02> {	[	 F2		]	};
+    key <FK03> {	[	 F3		]	};
+    key <FK04> {	[	 F4		]	};
+    key <FK05> {	[	 F5		]	};
+    key <FK06> {	[	 F6		]	};
+    key <FK07> {	[	 F7		]	};
+    key <FK08> {	[	 F8		]	};
+    key <FK09> {	[        F9		]	};
+    key <FK10> {	[        F10		]	};
+    key <FK11> {	[        F11		]	};
+    key <FK12> {	[ 	 F12		]	};
+    // End "Function" section
+
+    // Begin "Editing" section
+    key <PRSC> {
+	type= "PC_SYSRQ",
+	symbols[Group1]= [ Print, Execute ]
+    };
+    key <SCLK> {  [  Scroll_Lock	]	};
+    key <PAUS> {
+	type= "PC_BREAK",
+	symbols[Group1]= [ Pause, Break ]
+    };
+    key  <INS> {  [  Insert		]	};
+    key <HOME> {	[  Home			]	};
+    key <PGUP> {	[  Prior		]	};
+    key <DELE> { [ Delete		]			};
+    key  <END> {	[  End			]	};
+    key <PGDN> {	[  Next			]	};
+
+    key   <UP> {	[  Up			]	};
+    key <LEFT> {	[  Left			]	};
+    key <DOWN> {	[  Down			]	};
+    key <RGHT> {	[  Right		]	};
+
+    // End "Editing" section, begin "Keypad"
+    key <NMLK> {	[  Num_Lock, Pointer_EnableKeys		]	};
+    key <KPDV> {	[  KP_Divide		]	};
+    key <KPMU> {	[  KP_Multiply		]	};
+    key <KPSU> {	[  KP_Subtract		]	};
+
+    key  <KP7> {	[  KP_Home,	KP_7	]	};
+    key  <KP8> {	[  KP_Up,	KP_8	]	};
+    key  <KP9> {	[  KP_Prior,	KP_9	]	};
+    key <KPAD> {	[  	KP_Add		]	};
+
+    key  <KP4> {	[  KP_Left,	KP_4	]	};
+    key  <KP5> {	[  KP_Begin,	KP_5	]	};
+    key  <KP6> {	[  KP_Right,	KP_6	]	};
+
+    key  <KP1> {	[  KP_End,	KP_1	]	};
+    key  <KP2> {	[  KP_Down,	KP_2	]	};
+    key  <KP3> {	[  KP_Next,	KP_3	]	};
+    key <KPEN> {	[  	KP_Enter	]	};
+
+    key  <KP0> {	[  KP_Insert,	KP_0	]	};
+    key <KPDL> {  [  KP_Delete,	KP_Decimal ]	};
+    // End "Keypad" section
+
+    key <MUTE> { [  SunAudioMute,       SunVideoDegauss         ]       };
+    key <VOL-> { [  SunAudioLowerVolume,SunVideoLowerBrightness ]       };
+    key <VOL+> { [  SunAudioRaiseVolume,SunVideoRaiseBrightness ]       };
+    key <POWR> { [  SunPowerSwitch,     SunPowerSwitchShift     ]       };
+
+    // from symbols/sun/us(type5)
+    key <STOP> { [ Cancel       ],      [ F11   ]       };
+    key <AGAI> { [ Redo         ],      [ F12   ]       };
+    key <PROP> { [ SunProps     ],      [ F13   ]       };
+    key <UNDO> { [ Undo         ],      [ F14   ]       };
+    key <FRNT> { [ SunFront     ],      [ F15   ]       };
+    key <COPY> { [ SunCopy      ],      [ F16   ]       };
+    key <OPEN> { [ SunOpen      ],      [ F17   ]       };
+    key <PAST> { [ SunPaste     ],      [ F18   ]       };
+    key <FIND> { [ Find         ],      [ F19   ]       };
+    key <CUT>  { [ SunCut       ],      [ F20   ]       };
+
+    key <HELP> { [ Help                         ]                       };
+
+    // begin modifier mappings
+// XXX should Shift_L be here too?
+    modifier_map Shift  { Shift_R };
+    modifier_map Mod1   { Meta_L, Meta_R };
+    modifier_map Mod2   { Alt_L };
+    modifier_map Mod3   { Mode_switch };
+    modifier_map Mod4   { Num_Lock };
+};
+
 // definition of Euro-style, Right "logo" key == [Mode_switch, Multi_key]
 xkb_symbols "pc104euro" {
     include "us(pc104)"
