Package: xlibs Version: 4.3.0.dfsg.1-10 Severity: wishlist Tags: patch upstream
Hi, I recently installed Debian testing on my iBook G4. This keyboard is different from the Apple Desktop Keyboard. (cfr. http://maconlinux.org/images/adbkeys.gif vs. http://developer.apple.com/documentation/Hardware/Developer_Notes/Macintosh_CPUs-G4/iBookG4/3_Input-Output/chapter_4_section_13.html#//apple_ref/doc/uid/TP40001480-CH207-BCIDDBEG) The most annyoing thing esp. for German users is the missing AltGr functionality. The included patch alows this setup: # setxkbdmap -v 10 Setting verbose level to 10 locale is C Applied rules from xfree86: model: ibook layout: de variant: nodeadkeys Trying to build keymap using the following components: keycodes: xfree86(ibook)+aliases(qwertz) types: complete compat: complete symbols: pc/pc(pc105)+pc/de(nodeadkeys) geometry: macintosh(ibook) For clarification, since kernel 2.6 the ppc keyboard code uses the input driver and supplied PC-keycodes, hence the pc-keycodes and symbols are correct. This patch does: - define an iBook keyboard geometry file - map the Apple key to what AltGr does on a PC keyboard (Originally, this was mapped to windows menu keys, where I never heard of anyone using them, so IMHO the loss is minor. The other "Windows Key" emulation codes are already "taken" by the mouse button emulation kernel driver, so on an ibook, really noone misses them.) - if you specify "ibook" as your keyboard model. Bye, Joerg --- ./geometry/macintosh.orig 2005-01-22 14:44:45.169101088 +0100 +++ ./geometry/macintosh 2005-01-22 15:02:19.259854936 +0100 @@ -153,3 +153,119 @@ }; // End of "Keypad" section }; // End of "default" geometry + +xkb_geometry "ibook" { + + description= "iBook G4 Keyboard"; + width= 325; + height= 200; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; + shape "HALF" { { [ 18, 9] }, { [2,1], [ 16, 8] } }; + shape "BKSP" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "TAB" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "RTRN" { + { [ 0,0], [ 18, 0], [18,37], [4,37], [4,18], [0,18] }, + { [ 2,1], [ 16, 1], [16,36], [6,36], [6,17], [2,17] } }; + shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; + shape "LMTA" { { [ 28,18] }, { [2,1], [ 26,17] } }; + shape "LFSH" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "RTSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; + shape "RALT" { { [ 23,18] }, { [2,1], [ 21,17] } }; + shape "SPCE" { { [ 94,18] }, { [2,1], [ 92,17] } }; + + shape "POWR" { cornerRadius= 9, { [ 18, 18 ] } }; + + shape "LED" { cornerRadius= 2, { [ 4, 4 ] } }; + + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 67; + indicator.shape= "LED"; + indicator "NumLock" { shape = "LED"; top= 57; left= 152; }; + + text.color= "black"; + + section.left= 23; + row.left= 1; + key.shape= "NORM"; + key.gap= 1; + + section "Power" { + top= 16; + left= 240; + key.shape="POWR"; + row { + top= 1; + keys { <POWR> }; + }; + }; // End of "Power" Section + + section "Function" { + top= 52; + key.shape="HALF"; + row { + top= 1; + keys { <ESC>, + { <FK01>, 11 }, <FK02>, <FK03>, <FK04>, <FK05>, + { <FK06>, 10 }, <FK07>, <FK08>, <FK09>, <FK10>, <FK11>, + { <FK12>, 11 } + }; + }; + }; // End of "Function" section + + section "Alpha" { + top= 62; + row { + top= 1; + keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>, + <AE05>, <AE06>, <AE07>, <AE08>, <AE09>, + <AE10>, <AE11>, <AE12>, { <BKSP>, "BKSP" } + }; + }; + row { + top= 20; + keys { { <TAB>, "TAB" }, <AD01>, <AD02>, <AD03>, + <AD04>, <AD05>, <AD06>, <AD07>, <AD08>, <AD09>, + <AD10>, <AD11>, <AD12>, { <RTRN>, "RTRN" } + }; + }; + row { + top= 39; + keys { { <CAPS>, "CAPS" }, <AC01>, <AC02>, <AC03>, + <AC04>, <AC05>, <AC06>, <AC07>, <AC08>, <AC09>, + <AC10>, <AC11>, <BKSL> + }; + }; + row { + top= 58; + keys { { <LFSH>, "LFSH" }, <LSGT>, <AB01>, <AB02>, <AB03>, + <AB04>, <AB05>, <AB06>, <AB07>, <AB08>, <AB09>, + <AB10>, { <RTSH>, "RTSH" } + }; + }; + row { + top= 77; + keys { <FN>, { <LCTL>, "LCTL" }, { <LALT>, "LALT" }, + { <RALT>, "RALT" }, + { <SPCE>, "SPCE" }, + { <RALT>, "RALT" }, <KPEN> + }; + }; + }; // End of "Alpha" section + section "Cursor" { + key.shape="HALF"; + top= 138; + left= 242; + row { + top= 1; + keys { { <UP>, 20} }; + }; + row { + top= 10; + keys { <LEFT>, <DOWN>, <RGHT> }; + }; + }; // End of "Cursor section" +}; --- ./keycodes/xfree86.orig 2005-01-20 08:25:10.000000000 +0100 +++ ./keycodes/xfree86 2005-01-22 15:07:03.359665200 +0100 @@ -12,6 +12,11 @@ include "xfree86(basic)" <BKSL> = 51; <LSGT> = 94; + <RALT> = 113; + // Microsoft keyboard extra keys + <LWIN> = 115; + <RWIN> = 116; + <MENU> = 117; }; xkb_keycodes "basic" { @@ -79,11 +84,6 @@ <LCTL> = 37; <SPCE> = 65; <RCTL> = 109; - <RALT> = 113; - // Microsoft keyboard extra keys - <LWIN> = 115; - <RWIN> = 116; - <MENU> = 117; <ESC> = 9; <FK01> = 67; @@ -258,7 +258,7 @@ // <I5B> = 219; // <I5C> = 220; // <I5D> = 221; - <I5E> = 222; + // <I5E> = 222; <I5F> = 223; <I60> = 224; <I61> = 225; @@ -356,6 +356,18 @@ <BKSL> = 94; <AC12> = 51; <KPPT> = 134; + // Microsoft keyboard extra keys + <LWIN> = 115; + <RWIN> = 116; + <MENU> = 117; }; +xkb_keycodes "ibook" { + include "xfree86(basic)" + <RALT> = 115; + <BKSL> = 51; + <LSGT> = 94; + <POWR> = 222; +}; + --- ./rules/xfree86.orig 2005-01-20 21:29:23.000000000 +0100 +++ ./rules/xfree86 2005-01-22 12:17:15.840403536 +0100 @@ -25,6 +25,7 @@ powerpcps2 = powerpcps2 pc98 = xfree98(pc98) abnt2 = xfree86(abnt2) + ibook = xfree86(ibook) * = xfree86 ! $azerty = be fr fr-latin9 @@ -53,6 +54,7 @@ winbook = winbook(XP5) pc98 = nec(pc98) abnt2 = pc + ibook = macintosh(ibook) macintosh = macintosh(macintosh) macintosh_old = macintosh(macintosh) * = pc(pc104)
signature.asc
Description: Digital signature