So, I've added support for the two keyboards I have to xkeycaps:

* Powerbook lombard
* Apple Pro Keyboard (USB, ships with new G4s)

I've attached the patch...if you have either of these keyboards, tell
me what you think.  especially with the lombard.

try like so:
apt-get source xkeycaps
cd xkeycaps-2.46
patch -sp1 < xkeycaps-2.46-apple.diff
dpkg-buildpackage -rfakeroot
./xkeycaps

It's pretty useful, and I encourage people to add more Apple
keyboards, as it would be helpful, esp for newbies who don't like to
screw around with xmodmap :)

ttyl,

-- 
Josh Huber                                   | [EMAIL PROTECTED] |
                                             | Debian Developer |
1024D/6B21489A 61F0 6138 BE7B FEBF A223  E9D1 BFE1 2065 6B21 489A
diff -urN xkeycaps-2.46/kbds/all-kbds.h xkeycaps-2.46.huber/kbds/all-kbds.h
--- xkeycaps-2.46/kbds/all-kbds.h       Sun Dec 12 20:13:39 1999
+++ xkeycaps-2.46.huber/kbds/all-kbds.h Thu Jan 25 13:04:34 2001
@@ -88,6 +88,27 @@
 #endif
 
 #ifdef KBD
+  KBD ("MacProUSB", "Apple", "Pro Keyboard USB (XFree86; US)", 0,
+       &macpro104_geom, macpro104_caps, macpro104_codes, mac_linux_input_map),
+#else
+# include "macpro104-geom.h"
+# include "macpro104-caps.h"
+# include "macpro104-codes.h"
+# include "mac-linux-input-map.h"
+#endif
+
+#ifdef KBD
+  KBD ("MacLombard", "Apple", "PowerBook [Lombard] (XFree86; US)", 0,
+       &maclombard_geom, maclombard_caps, maclombard_codes,
+       mac_linux_input_map),
+#else
+# include "maclombard-geom.h"
+# include "maclombard-caps.h"
+# include "maclombard-codes.h"
+# include "mac-linux-input-map.h"
+#endif
+
+#ifdef KBD
   KBD ("MacADB", "Apple", "Standard ADB (NetBSD; US)", 0,
        &macstd_geom, macstd_caps, macstd_codes, macstd_map),
 #else
diff -urN xkeycaps-2.46/kbds/mac-linux-input-map.h 
xkeycaps-2.46.huber/kbds/mac-linux-input-map.h
--- xkeycaps-2.46/kbds/mac-linux-input-map.h    Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/mac-linux-input-map.h      Thu Jan 25 14:14:45 2001
@@ -0,0 +1,131 @@
+#ifndef __MAC_LINUX_INPUT_MAP_H__
+#define __MAC_LINUX_INPUT_MAP_H__
+
+/* 
+ * This file was generated from a machine running Linux, with the new
+ * input layer enabled.  The input layer translates Apple style scancodes
+ * to PC style scancodes for better compatibility out of the box.  We
+ * still need a special map file due to the extra keys on a mac keyboard.
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ *
+ */
+
+static const struct default_keycode_map mac_linux_input_map [] = {
+       /* these keys have keycodes but no keysyms in the default map */
+       {  93, 0, { 0 }}, /* F13 */
+       { 133, 0, { 0 }}, /* Left Command */
+       { 134, 0, { 0 }}, /* Right Command */
+
+       {   9, 0,               { XK_Escape }},
+       {  10, 0,               { XK_1, XK_exclam }},
+       {  11, 0,               { XK_2, XK_at }},
+       {  12, 0,               { XK_3, XK_numbersign }},
+       {  13, 0,               { XK_4, XK_dollar }},
+       {  14, 0,               { XK_5, XK_percent }},
+       {  15, 0,               { XK_6, XK_asciicircum }},
+       {  16, 0,               { XK_7, XK_ampersand }},
+       {  17, 0,               { XK_8, XK_asterisk }},
+       {  18, 0,               { XK_9, XK_parenleft }},
+       {  19, 0,               { XK_0, XK_parenright }},
+       {  20, 0,               { XK_minus,     XK_underscore }},
+       {  21, 0,               { XK_equal,     XK_plus }},
+       {  22, 0,               { XK_BackSpace }},
+       {  23, 0,               { XK_Tab }},
+       {  24, 0,               { XK_q, XK_Q }},
+       {  25, 0,               { XK_w, XK_W }},
+       {  26, 0,               { XK_e, XK_E }},
+       {  27, 0,               { XK_r, XK_R }},
+       {  28, 0,               { XK_t, XK_T }},
+       {  29, 0,               { XK_y, XK_Y }},
+       {  30, 0,               { XK_u, XK_U }},
+       {  31, 0,               { XK_i, XK_I }},
+       {  32, 0,               { XK_o, XK_O }},
+       {  33, 0,               { XK_p, XK_P }},
+       {  34, 0,               { XK_bracketleft,       XK_braceleft }},
+       {  35, 0,               { XK_bracketright,      XK_braceright }},
+       {  36, 0,               { XK_Return }},
+       {  37, ControlMask,     { XK_Control_L }},
+       {  38, 0,               { XK_a, XK_A }},
+       {  39, 0,               { XK_s, XK_S }},
+       {  40, 0,               { XK_d, XK_D }},
+       {  41, 0,               { XK_f, XK_F }},
+       {  42, 0,               { XK_g, XK_G }},
+       {  43, 0,               { XK_h, XK_H }},
+       {  44, 0,               { XK_j, XK_J }},
+       {  45, 0,               { XK_k, XK_K }},
+       {  46, 0,               { XK_l, XK_L }},
+       {  47, 0,               { XK_semicolon, XK_colon }},
+       {  48, 0,               { XK_apostrophe,        XK_quotedbl }},
+       {  49, 0,               { XK_grave,     XK_asciitilde }},
+       {  50, ShiftMask,       { XK_Shift_L }},
+       {  51, 0,               { XK_backslash, XK_bar }},
+       {  52, 0,               { XK_z, XK_Z }},
+       {  53, 0,               { XK_x, XK_X }},
+       {  54, 0,               { XK_c, XK_C }},
+       {  55, 0,               { XK_v, XK_V }},
+       {  56, 0,               { XK_b, XK_B }},
+       {  57, 0,               { XK_n, XK_N }},
+       {  58, 0,               { XK_m, XK_M }},
+       {  59, 0,               { XK_comma,     XK_less }},
+       {  60, 0,               { XK_period,    XK_greater }},
+       {  61, 0,               { XK_slash,     XK_question }},
+       {  62, ShiftMask,       { XK_Shift_R }},
+       {  63, 0,               { XK_KP_Multiply }},
+       {  64, Mod1Mask,        { XK_Alt_L }},
+       {  65, 0,               { XK_space }},
+       {  66, LockMask,        { XK_Caps_Lock }},
+       {  67, 0,               { XK_F1,        XK_F11 }},
+       {  68, 0,               { XK_F2,        XK_F12 }},
+       {  69, 0,               { XK_F3,        XK_F13 }},
+       {  70, 0,               { XK_F4,        XK_F14 }},
+       {  71, 0,               { XK_F5,        XK_F15 }},
+       {  72, 0,               { XK_F6,        XK_F16 }},
+       {  73, 0,               { XK_F7,        XK_F17 }},
+       {  74, 0,               { XK_F8,        XK_F18 }},
+       {  75, 0,               { XK_F9,        XK_F19 }},
+       {  76, 0,               { XK_F10,       XK_F20 }},
+       {  77, Mod2Mask,        { XK_Num_Lock }},
+       {  78, Mod5Mask,        { XK_Scroll_Lock }},
+       {  79, 0,               { XK_KP_7 }},
+       {  80, 0,               { XK_KP_8 }},
+       {  81, 0,               { XK_KP_9 }},
+       {  82, 0,               { XK_KP_Subtract }},
+       {  83, 0,               { XK_KP_4 }},
+       {  84, 0,               { XK_KP_5 }},
+       {  85, 0,               { XK_KP_6 }},
+       {  86, 0,               { XK_KP_Add }},
+       {  87, 0,               { XK_KP_1 }},
+       {  88, 0,               { XK_KP_2 }},
+       {  89, 0,               { XK_KP_3 }},
+       {  90, 0,               { XK_KP_0 }},
+       {  91, 0,               { XK_KP_Decimal }},
+       {  94, 0,               { XK_less,      XK_greater }},
+       {  95, 0,               { XK_F11 }},
+       {  96, 0,               { XK_F12 }},
+       { 104, 0,               { XK_KP_Enter }},
+       { 105, ControlMask,     { XK_Control_R }},
+       { 106, 0,               { XK_KP_Divide }},
+       { 108, Mod1Mask,        { XK_Alt_R }},
+       { 109, 0,               { XK_Break }},
+       { 110, 0,               { XK_Home }},
+       { 111, 0,               { XK_Up }},
+       { 112, 0,               { XK_Prior }},
+       { 113, 0,               { XK_Left }},
+       { 114, 0,               { XK_Right }},
+       { 115, 0,               { XK_End }},
+       { 116, 0,               { XK_Down }},
+       { 117, 0,               { XK_Next }},
+       { 118, 0,               { XK_Insert }},
+       { 119, 0,               { XK_Delete }},
+       { 120, 0,               { XK_Menu }},
+       { 121, 0,               { XK_F13 }},
+       { 122, 0,               { XK_F14 }},
+       { 123, 0,               { XK_Help }},
+       { 124, 0,               { XK_Execute }},
+       { 125, 0,               { XK_F17 }},
+       { 126, 0,               { XK_KP_Subtract }},
+       { 127, 0,               { XK_Pause }},
+};
+
+#endif
diff -urN xkeycaps-2.46/kbds/maclombard-caps.h 
xkeycaps-2.46.huber/kbds/maclombard-caps.h
--- xkeycaps-2.46/kbds/maclombard-caps.h        Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/maclombard-caps.h  Thu Jan 25 14:10:58 2001
@@ -0,0 +1,138 @@
+/* xkeycaps, Copyright (c) 1991, 1992, 1993, 1997
+ *  Jamie Zawinski <[EMAIL PROTECTED]>
+ *
+ * This file describes the PowerBook Lombard (1999) laptop
+ * keyboard from Apple.  There is a block of fake keys in the map
+ * to the right that shows what keys are generated when the 'fn'
+ * key is held down.
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ */
+
+static const struct key_strings maclombard_caps [] = {
+
+  /* Row 0 */
+
+  {"Esc", 0},
+  {"F1", 0},
+  {"F2", 0},
+  {"F3", 0},
+  {"F4", 0},
+  {"F5", 0},
+  {"F6", 0},
+  {"F7", 0},
+  {"F8", 0},
+  {"F9", 0},
+  {"F10", 0},
+  {"F11", 0},
+  {"F12", 0},
+
+  /* Row 2 */
+
+  {"~", "`", 0},
+  {"!", "1", 0},
+  {"@", "2", 0},
+  {"#", "3", 0},
+  {"$", "4", 0},
+  {"%", "5", 0},
+  {"^", "6", 0},
+  {"&", "7", 0},
+  {"*", "8", 0},
+  {"(", "9", 0},
+  {")", "0", 0},
+  {"_", "-", 0},
+  {"+", "=", 0},
+  {"Delete (BS)", 0},
+  /* fn generated keys */
+  {"Home", 0},
+  {"Page", "Up", 0},
+  {"Clear", 0},
+  {"=", 0},
+  {"/", 0},
+  {"*", 0},
+
+  /* Row 3 */
+
+  {"Tab", 0},
+  {"Q", 0},
+  {"W", 0},
+  {"E", 0},
+  {"R", 0},
+  {"T", 0},
+  {"Y", 0},
+  {"U", 0},
+  {"I", 0},
+  {"O", 0},
+  {"P", 0},
+  {"{", "[", 0},
+  {"}", "]", 0},
+  {"|", "\\", 0},
+  /* fn generated keys */
+  {"End", 0},
+  {"Page", "Down", 0},
+  {"7", 0},
+  {"8", 0},
+  {"9", 0},
+  {"-", 0},
+
+  /* Row 4 */
+
+  {"Caps Lock", 0},
+  {"A", 0},
+  {"S", 0},
+  {"D", 0},
+  {"F", 0},
+  {"G", 0},
+  {"H", 0},
+  {"J", 0},
+  {"K", 0},
+  {"L", 0},
+  {":", ";", 0},
+  {"\"", "'", 0},
+  {"Return", 0},
+  /* fn generated keys */
+  {"4", 0},
+  {"5", 0},
+  {"6", 0},
+  {"+", 0},
+
+  /* Row 5 */
+
+  {"Shift", 0},
+  {"Z", 0},
+  {"X", 0},
+  {"C", 0},
+  {"V", 0},
+  {"B", 0},
+  {"N", 0},
+  {"M", 0},
+  {"<", ",", 0},
+  {">", ".", 0},
+  {"?", "/", 0},
+  {"Shift", 0},
+  /* fn generated keys */
+  {"1", 0},
+  {"2", 0},
+  {"3", 0},
+  {"Enter", 0},
+
+  /* Row 6 */
+
+  {"Fn", 0},
+  {"Ctrl", 0},
+  {"Alt", "Option", 0},
+  {"Cmd", 0},
+  {" ", 0},
+  {"enter", 0},
+  {"Alt", "Option", 0},
+  {"UpArrow", 0},
+  /* fn generated keys */
+  {"0", 0},
+  {".", 0},
+
+  /* row 7 */
+
+  {"LeftArrow", 0},
+  {"DownArrow", 0},
+  {"RightArrow", 0},
+};
diff -urN xkeycaps-2.46/kbds/maclombard-codes.h 
xkeycaps-2.46.huber/kbds/maclombard-codes.h
--- xkeycaps-2.46/kbds/maclombard-codes.h       Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/maclombard-codes.h Thu Jan 25 14:12:48 2001
@@ -0,0 +1,43 @@
+/* xkeycaps, Copyright (c) 1998, 1999 Jamie Zawinski <[EMAIL PROTECTED]>
+ *
+ * This file describes the keycodes that are sent via the XFree86
+ * x server on Linux with the new USB input layer enabled, using a
+ * powerbook Lombard (1999) laptop from Apple.
+ *
+ * note: the 'fn' key does not send a keyevent to the x-server
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ */
+
+static const KeyCode maclombard_codes [] = {
+  /* Row 1 */
+  9, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 95, 96,
+
+  /* Row 2 */
+  49, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+  /* fn */
+  110, 112, 77, 125, 106, 63,
+
+  /* Row 3 */
+  23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 51,
+  /* fn */
+  115, 117, 79, 80, 81, 82,
+  
+  /* Row 4 */
+  66, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 36,
+  /* fn */
+  83, 84, 85, 86,
+
+  /* Row 5 */
+  50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 50,
+  /* fn */
+  87, 88, 89, 104,
+
+  /* Row 6 */
+  0, 37, 64, 133, 65, 104, 64, 111,
+  /* fn */
+  90, 91,
+
+  /* Row 7 -- a hack */
+  113, 116, 114,
+};
diff -urN xkeycaps-2.46/kbds/maclombard-geom.h 
xkeycaps-2.46.huber/kbds/maclombard-geom.h
--- xkeycaps-2.46/kbds/maclombard-geom.h        Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/maclombard-geom.h  Thu Jan 25 13:53:55 2001
@@ -0,0 +1,100 @@
+/* xkeycaps, Copyright (c) 1998, 1999 Jamie Zawinski <[EMAIL PROTECTED]>
+ *
+ * This file describes the keyboard on the Apple Powerbook G3
+ * Lombard (1999) model.  I've placed the keysyms that are emited
+ * when the 'fn' key is held in a block of keys to the right
+ * so it looks like a number pad.
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ */
+
+static const struct key_geometry maclombard_geom_row1 [] = {
+       {14, 7},
+       {7, 0},
+       {14, 7}, {14, 7}, {14, 7}, {14, 7},
+       {7, 0},
+       {14, 7}, {14, 7}, {14, 7}, {14, 7},
+       {7, 0},
+       {14, 7}, {14, 7}, {14, 7}, {14, 7},
+};
+
+static const struct key_geometry maclombard_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},
+       {21, 14},
+
+       /* fake keys for fn-KEY combinations */
+       {7, 0},
+       {14, 14}, {14, 14},
+       {7, 0},
+       {14, 14}, {14, 14}, {14, 14}, {14, 14},
+};
+
+static const struct key_geometry maclombard_geom_row3 [] = {
+       {21, 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, 14},
+
+       /* fake keys for fn-KEY combinations */
+       {7, 0},
+       {14, 14}, {14, 14},
+       {7, 0},
+       {14, 14}, {14, 14}, {14, 14}, {14, 14},
+};
+
+static const struct key_geometry maclombard_geom_row4 [] = {
+       {24, 14},
+       {14, 14}, {14, 14}, {14, 14}, {14, 14}, {14, 14}, 
+       {14, 14}, {14, 14}, {14, 14}, {14, 14}, {14, 14}, 
+       {14, 14},
+       {25, 14},
+
+       /* fake keys for fn-KEY combinations */
+       {42, 0},
+       {14, 14}, {14, 14}, {14, 14}, {14, 14},
+};
+
+static const struct key_geometry maclombard_geom_row5 [] = {
+       {31, 14},
+       {14, 14}, {14, 14}, {14, 14}, {14, 14}, {14, 14}, 
+       {14, 14}, {14, 14}, {14, 14}, {14, 14}, {14, 14}, 
+       {32, 14},
+
+       /* fake keys for fn-KEY combinations */
+       {42, 0},
+       {14, 14}, {14, 14}, {14, 14}, {14, 28},
+};
+
+static const struct key_geometry maclombard_geom_row6 [] = {
+       {14, 14}, {14, 14}, {14, 14}, {18, 14},
+       {69, 14},
+       {18, 14}, {14, 14},
+       {14, 0}, {14, 7}, {14, 0},
+
+       /* fake keys for fn-KEY combinations */
+       {42, 0},
+       {28, 14}, {14, 14},
+};
+
+/* a little hack due to apple's funny arrow keys */
+static const struct key_geometry maclombard_geom_row7 [] = {
+       {161, 0}, /* skip */
+       {14, 7}, {14, 7}, {14, 7}, /* three lower arrow keys */
+};
+
+static const struct keyboard_row_geometry maclombard_geom_rows [] = {
+  ROW (maclombard_geom_row1, 7),
+  ROW (maclombard_geom_row2, 14),
+  ROW (maclombard_geom_row3, 14),
+  ROW (maclombard_geom_row4, 14),
+  ROW (maclombard_geom_row5, 14),
+  ROW (maclombard_geom_row6, 14),
+  ROW (maclombard_geom_row7, 7),
+};
+
+static const struct keyboard_geometry maclombard_geom = {
+  sizeof (maclombard_geom_rows) / sizeof (struct keyboard_row_geometry),
+  maclombard_geom_rows, 3, 3, 3
+};
diff -urN xkeycaps-2.46/kbds/macpro104-caps.h 
xkeycaps-2.46.huber/kbds/macpro104-caps.h
--- xkeycaps-2.46/kbds/macpro104-caps.h Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/macpro104-caps.h   Thu Jan 25 12:06:11 2001
@@ -0,0 +1,137 @@
+/* xkeycaps, Copyright (c) 1991, 1992, 1993, 1997
+ *  Jamie Zawinski <[EMAIL PROTECTED]>
+ *
+ * This file describes the surface of the Apple "Pro Keyboard". It
+ * is based on the pc104 caps header file.
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ */
+
+static const struct key_strings macpro104_caps [] = {
+
+  /* Row 0 */
+
+  {"Esc", 0},
+  {"F1", 0},
+  {"F2", 0},
+  {"F3", 0},
+  {"F4", 0},
+  {"F5", 0},
+  {"F6", 0},
+  {"F7", 0},
+  {"F8", 0},
+  {"F9", 0},
+  {"F10", 0},
+  {"F11", 0},
+  {"F12", 0},
+  {"F13", 0},
+  {"F14", 0},
+  {"F15", 0},
+  {"Vol", " - ", 0},
+  {"Vol", " + ", 0},
+  {"Vol", "Mute", 0},
+  {"Eject", 0},
+
+  /* Row 2 */
+
+  {"~", "`", 0},
+  {"!", "1", 0},
+  {"@", "2", 0},
+  {"#", "3", 0},
+  {"$", "4", 0},
+  {"%", "5", 0},
+  {"^", "6", 0},
+  {"&", "7", 0},
+  {"*", "8", 0},
+  {"(", "9", 0},
+  {")", "0", 0},
+  {"_", "-", 0},
+  {"+", "=", 0},
+  {"Delete (BS)", 0},
+  {"Help", 0},
+  {"Home", 0},
+  {"Page", "Up", 0},
+  {"NL", "Clear", 0},
+  {"=", 0},
+  {"/", 0},
+  {"*", 0},
+
+  /* Row 3 */
+
+  {"Tab", 0},
+  {"Q", 0},
+  {"W", 0},
+  {"E", 0},
+  {"R", 0},
+  {"T", 0},
+  {"Y", 0},
+  {"U", 0},
+  {"I", 0},
+  {"O", 0},
+  {"P", 0},
+  {"{", "[", 0},
+  {"}", "]", 0},
+  {"|", "\\", 0},
+  {"Del", "[X]", 0},
+  {"End", 0},
+  {"Page", "Down", 0},
+  {"7", 0},
+  {"8", 0},
+  {"9", 0},
+  {"-", 0},
+
+  /* Row 4 */
+
+  {"Caps Lock", 0},
+  {"A", 0},
+  {"S", 0},
+  {"D", 0},
+  {"F", 0},
+  {"G", 0},
+  {"H", 0},
+  {"J", 0},
+  {"K", 0},
+  {"L", 0},
+  {":", ";", 0},
+  {"\"", "'", 0},
+  {"Return", 0},
+  {"4", 0},
+  {"5", 0},
+  {"6", 0},
+  {"+", 0},
+
+  /* Row 5 */
+
+  {"Shift", 0},
+  {"Z", 0},
+  {"X", 0},
+  {"C", 0},
+  {"V", 0},
+  {"B", 0},
+  {"N", 0},
+  {"M", 0},
+  {"<", ",", 0},
+  {">", ".", 0},
+  {"?", "/", 0},
+  {"Shift", 0},
+  {"UpArrow", 0},
+  {"1", 0},
+  {"2", 0},
+  {"3", 0},
+  {"Enter", 0},
+
+  /* Row 6 */
+
+  {"Ctrl", 0},
+  {"Alt", "Option", 0},
+  {"Cmd", 0},
+  {" ", 0},
+  {"Cmd", 0},
+  {"Alt", "Option", 0},
+  {"Ctrl", 0},
+  {"LeftArrow", 0},
+  {"DownArrow", 0},
+  {"RightArrow", 0},
+  {"0", 0},
+  {".", 0}
+};
diff -urN xkeycaps-2.46/kbds/macpro104-codes.h 
xkeycaps-2.46.huber/kbds/macpro104-codes.h
--- xkeycaps-2.46/kbds/macpro104-codes.h        Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/macpro104-codes.h  Thu Jan 25 12:06:11 2001
@@ -0,0 +1,48 @@
+/* xkeycaps, Copyright (c) 1991, 1992, 1993, 1997
+ *  Jamie Zawinski <[EMAIL PROTECTED]>
+ *
+ * This file describes the Apple Pro Keyboard on Linux with
+ * X Free 4.x, using the new USB input layer in the kernel.  This
+ * translates the keysyms to intel-ish style, so most things do
+ * not have to be changed.  This keyboard however has a slightly
+ * different layout than a standard PC keyboard, and a few different
+ * keys.
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ */
+
+static const KeyCode macpro104_codes [] = {
+  /* Row 0 */
+  9,
+  67, 68, 69, 70,
+  71, 72, 73, 74,
+  75, 76, 95, 96,
+  93, 123, 127,
+  0, 0, 0, 0, /* these keys do nothing right now! */
+
+  /* Row 1 -- no space here on the Apple Pro Keyboard */
+  49, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+  118, 110, 112,
+  77, 125, 106, 63,
+
+  /* Row 2 */
+  23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 51,
+  119, 115, 117,
+  79, 80, 81, 82,
+  
+  /* Row 3 */
+  66, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 36,
+  83, 84, 85, 86,
+
+  /* Row 4 */
+  50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 
+  111,
+  87, 88, 89, 104,
+
+  /* Row 5 */
+  37, 64, 133,
+  65,
+  134, 108, 105,
+  113, 116, 114,
+  90, 91
+};
diff -urN xkeycaps-2.46/kbds/macpro104-geom.h 
xkeycaps-2.46.huber/kbds/macpro104-geom.h
--- xkeycaps-2.46/kbds/macpro104-geom.h Wed Dec 31 19:00:00 1969
+++ xkeycaps-2.46.huber/kbds/macpro104-geom.h   Thu Jan 25 12:06:11 2001
@@ -0,0 +1,68 @@
+/* xkeycaps, Copyright (c) 1991, 1992, 1993, 1997
+ * Jamie Zawinski <[EMAIL PROTECTED]>
+ *
+ * This file describes the layout of the Apple "Pro Keyboard".  This is 
+ * a USB keyboard that is shipping with the G4 desktop machines.
+ * This file is based on the pc104 layout. (short enter [return] key,
+ * wide backspace key.)
+ *
+ * - Josh Huber <[EMAIL PROTECTED]>, 1/25/2001
+ */
+
+static const struct key_geometry macpro104_geom_row0 [] = {
+ {7, 7}, {5, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}, {5, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}, {5, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}, {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7},
+};
+
+static const struct key_geometry macpro104_geom_row1 [] = {
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}, {15, 7}, {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}
+};
+
+static const struct key_geometry macpro104_geom_row2 [] = {
+ {10, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}, {12, 7}, {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7}
+};
+
+static const struct key_geometry macpro104_geom_row3 [] = {
+ {13, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},
+ {7, 7}, {7, 7}, {7, 7}, {16, 7}, {29, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 7},
+};
+
+static const struct key_geometry macpro104_geom_row4 [] = {
+ {16, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},
+ {7, 7}, {7, 7}, {20, 7}, {11, 0},
+ {7, 7}, {11, 0},
+ {7, 7}, {7, 7}, {7, 7}, {7, 14}
+};
+
+static const struct key_geometry macpro104_geom_row5 [] = {
+ {10, 7}, {9, 7},
+ {11, 7}, {46, 7}, {11, 7}, {9, 7}, {10, 7},
+ {4, 0},
+ {7, 7}, {7, 7}, {7, 7}, {4, 0},
+ {14, 7}, {7, 7}
+};
+
+static const struct keyboard_row_geometry macpro104_geom_rows [] = {
+  ROW (macpro104_geom_row0, 7),
+  ROW (macpro104_geom_row1, 7),
+  ROW (macpro104_geom_row2, 7),
+  ROW (macpro104_geom_row3, 7),
+  ROW (macpro104_geom_row4, 7),
+  ROW (macpro104_geom_row5, 7),
+};
+
+static const struct keyboard_geometry macpro104_geom = {
+  sizeof (macpro104_geom_rows) / sizeof (struct keyboard_row_geometry),
+  macpro104_geom_rows, 6, 3, 3
+};

Attachment: pgpdeWqXVl1So.pgp
Description: PGP signature

Reply via email to