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 | huber@debian.org | | 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 <huber@alum.wpi.edu>, 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 <jwz@jwz.org> + * + * 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 <huber@alum.wpi.edu>, 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 <jwz@jwz.org> + * + * 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 <huber@alum.wpi.edu>, 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 <jwz@jwz.org> + * + * 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 <huber@alum.wpi.edu>, 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 <jwz@jwz.org> + * + * This file describes the surface of the Apple "Pro Keyboard". It + * is based on the pc104 caps header file. + * + * - Josh Huber <huber@alum.wpi.edu>, 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 <jwz@jwz.org> + * + * 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 <huber@alum.wpi.edu>, 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 <jwz@jwz.org> + * + * 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 <huber@alum.wpi.edu>, 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:
pgpPw1ZONLfmx.pgp
Description: PGP signature