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