On Thu, Oct 31, 2002 at 09:12:57PM +0000, Aled Thomas wrote: > mine reads- > Section "InputDevice" > Identifier "Generic Keyboard" > Driver "keyboard" > Option "CoreKeyboard" > Option "CustomKeyCodes" > Option "XkbRules" "xfree86" > Option "XkbModel" "amiga" > Option "XkbLayout" "usa1" > EndSection
How grody. There should be a keycodes file for the amiga that translates the scancodes into symbolic names. Then amiga keyboards could use the symbols files that everyone else uses. Hmm, in fact, there *is* an amiga keycodes file: /etc/X11/xkb/keycodes/amiga ...but the file written rather stupidly as far as I can tell. Perhaps the person who wrote it didn't have a proper understanding of XKB (few people do). For example, there is precious little difference between the "usa1" and "de" keycode delcarations: -default xkb_keycodes "usa1" { +xkb_keycodes "de" { minimum= 8; maximum= 111; @@ -59,8 +59,10 @@ <AC09> = 48; <AC10> = 49; <AC11> = 50; + <AC12> = 51; <LFSH> = 104; + <LSGT> = 56; <AB01> = 57; <AB02> = 58; <AB03> = 59; Silly, silly. Anyway, the above tells me that the German keyboard has a "less-than/greater-than" key, which I know is common on European keyboards. There is also an additional key on the 3rd row from the bottom in the alphabetic section of the keyboard -- one that U.S. keyboards don't have. I'm attaching what I think may be an improved /etc/X11/xkb/keycodes/amiga file. Note that the sections are now called "basic" and "euro". Also attached is a new /etc/X11/xkb/rules/xfree86 file that should recognize the "amiga" as a keyboard model. Just for grins I also updated /etc/X11/xkb/geometry/amiga to use the new section names ("basic" and "euro" instead of "usa1" and "de"). > this gives me a US amiga keymap, i then use xmodmap to convert the # > into £ signs, and the ` into #, and the DEL key into DEL (its set as a > backspace). the alt keys are set up correctly. > however, if u are using XkbDisable then the alt key should be set the > same as it is in your console keymap (i think) Well, if you guys are feeling brave, please try the attached files. All you should have to do is install them to /etc/X11 and restart the X server. I suggest backing up the existing versions of the files first. I don't expect the "amiga" keys to work, nor some of the keys on the numeric keypads, because Amiga keyboards map scancodes to some symbolic names for keys that the PC-centric symbols files don't recognize, but what I have provided should let us know if we're in the ballpark. -- G. Branden Robinson | The last Christian died on the Debian GNU/Linux | cross. [EMAIL PROTECTED] | -- Friedrich Nietzsche http://people.debian.org/~branden/ |
// $Xorg: amiga,v 1.3 2000/08/17 19:54:37 cpqbld Exp $ // $XFree86: xc/programs/xkbcomp/keycodes/amiga,v 3.3 2001/01/17 23:45:51 dawes Exp $ // keycodes for U.S. Amiga keyboards default xkb_keycodes "basic" { minimum= 8; maximum= 111; <ESC> = 77; <FK01> = 88; <FK02> = 89; <FK03> = 90; <FK04> = 91; <FK05> = 92; <FK06> = 93; <FK07> = 94; <FK08> = 95; <FK09> = 96; <FK10> = 97; <TLDE> = 8; <AE01> = 9; <AE02> = 10; <AE03> = 11; <AE04> = 12; <AE05> = 13; <AE06> = 14; <AE07> = 15; <AE08> = 16; <AE09> = 17; <AE10> = 18; <AE11> = 19; <AE12> = 20; <BKSL> = 21; <BKSP> = 73; <TAB> = 74; <AD01> = 24; <AD02> = 25; <AD03> = 26; <AD04> = 27; <AD05> = 28; <AD06> = 29; <AD07> = 30; <AD08> = 31; <AD09> = 32; <AD10> = 33; <AD11> = 34; <AD12> = 35; <RTRN> = 76; <LCTL> = 107; <CAPS> = 106; <AC01> = 40; <AC02> = 41; <AC03> = 42; <AC04> = 43; <AC05> = 44; <AC06> = 45; <AC07> = 46; <AC08> = 47; <AC09> = 48; <AC10> = 49; <AC11> = 50; <LFSH> = 104; <AB01> = 57; <AB02> = 58; <AB03> = 59; <AB04> = 60; <AB05> = 61; <AB06> = 62; <AB07> = 63; <AB08> = 64; <AB09> = 65; <AB10> = 66; <RTSH> = 105; <LALT> = 108; <LAMI> = 110; <SPCE> = 72; <RAMI> = 111; <RALT> = 109; <DELE> = 78; <HELP> = 103; <UP> = 84; <LEFT> = 87; <DOWN> = 85; <RGHT> = 86; <KPLP> = 98; <KPRP> = 99; <KPDV> = 100; <KPMU> = 101; <KP7> = 69; <KP8> = 70; <KP9> = 71; <KPSU> = 82; <KP4> = 53; <KP5> = 54; <KP6> = 55; <KPAD> = 102; <KP1> = 37; <KP2> = 38; <KP3> = 39; <KP0> = 23; <KPDC> = 68; <KPEN> = 75; }; // additional keycodes for European Amiga keyboards xkb_keycodes "euro" { include "amiga(basic)" <AC12> = 51; <LSGT> = 56; };
// $Xorg: amiga,v 1.3 2000/08/17 19:54:35 cpqbld Exp $ // $XFree86: xc/programs/xkbcomp/geometry/amiga,v 3.3 2001/01/17 23:45:49 dawes Exp $ default xkb_geometry "basic" { description= "Amiga (basic)"; width= 490; height= 175; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "FCTS" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "TLDE" { { [ 28,18] }, { [2,1], [ 21,17] } }; shape "TABK" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "CTRL" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "CAPS" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "RTRN" { approx = { [ 16, 0], [42,37] }, { [16, 0], [42, 0], [42,37], [ 0,37], [ 0,19], [16,19] }, { [18, 1], [40, 1], [40,36], [ 2,36], [ 2,20], [18,20] } }; shape "LFSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "MODK" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; shape "DELE" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 22; row.left= 1; key.shape= "FCTS"; key.gap= 1; section "Function" { top= 28; row { top= 1; keys { { <ESC>, shape="NORM" }, { <FK01>, 9 }, <FK02>, <FK03>, <FK04>, <FK05>, { <FK06>, 9 }, <FK07>, <FK08>, <FK09>, <FK10> }; }; }; // End of "Function" section key.shape= "NORM"; section "Alpha" { top= 56; row { top= 1; keys { { <TLDE>, shape="TLDE" }, <AE01>, <AE02>, <AE03>, <AE04>, <AE05>, <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <BKSL>, { <BKSP>, "BKSP" } }; }; row { top= 20; keys { { <TAB>, "TABK" }, <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, <AD11>, <AD12>, { <RTRN>, "RTRN", -15 } }; }; row { top= 39; keys { { <LCTL>, "CTRL" }, { <CAPS>, "CAPS" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, <AC11> }; }; row { top= 58; keys { { <LFSH>, "LFSH" }, <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, { <RTSH>, "RTSH" } }; }; row { top= 77; key.shape= "MODK"; keys { { <LALT>, 10 }, <LAMI>, { <SPCE>, "SPCE" }, <RAMI>, <RALT> }; }; }; // End of "Alpha" section section "Editing" { top= 56; left= 326; row { top= 1; key.shape = "DELE"; keys { <DELE>, <HELP> }; }; row { top= 39; left = 20; keys { <UP> }; }; row { top= 58; keys { <LEFT>, <DOWN>, <RGHT> }; }; }; // End of "Editing" section section "Keypad" { top= 56; left= 392; row { top= 1; keys { <KPLP>, <KPRP>, <KPDV>, <KPMU> }; }; row { top= 20; keys { <KP7>, <KP8>, <KP9>, <KPSU> }; }; row { top= 39; keys { <KP4>, <KP5>, <KP6>, <KPAD> }; }; row { top= 58; keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPEN" } }; }; row { top= 77; keys { { <KP0>, "KP0" }, <KPDC> }; }; }; // End of "Keypad" section }; xkb_geometry "euro" { description= "Amiga (European)"; width= 490; height= 175; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "FCTS" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "TLDE" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "TABK" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "CTRL" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "CAPS" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "RTRN" { { [ 0, 0], [28,0], [28,37], [5,37], [5,18], [ 0,18] }, { [ 2, 1], [26,1], [26,36], [7,36], [7,17], [ 2,17] } }; shape "LFSH" { { [ 32,18] }, { [2,1], [ 29,17] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "MODK" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; shape "DELE" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 22; row.left= 1; key.shape= "FCTS"; key.gap= 1; section "Function" { top= 28; row { top= 1; keys { { <ESC>, shape="NORM" }, { <FK01>, 9 }, <FK02>, <FK03>, <FK04>, <FK05>, { <FK06>, 9 }, <FK07>, <FK08>, <FK09>, <FK10> }; }; }; // End of "Function" section key.shape= "NORM"; section "Alpha" { top= 56; row { top= 1; keys { { <TLDE>, shape="TLDE" }, <AE01>, <AE02>, <AE03>, <AE04>, <AE05>, <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <BKSL>, { <BKSP>, "BKSP" } }; }; row { top= 20; keys { { <TAB>, "TABK" }, <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, <AD11>, <AD12>, { <RTRN>, "RTRN" } }; }; row { top= 39; keys { { <LCTL>, "CTRL" }, { <CAPS>, "CAPS" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, <AC11>, <AC12> }; }; row { top= 58; keys { { <LFSH>, "LFSH" }, <LSGT>, <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, { <RTSH>, "RTSH" } }; }; row { top= 77; key.shape= "MODK"; keys { { <LALT>, 14 }, <LAMI>, { <SPCE>, "SPCE" }, <RAMI>, <RALT> }; }; }; // End of "Alpha" section section "Editing" { top= 56; left= 326; row { top= 1; key.shape = "DELE"; keys { <DELE>, <HELP> }; }; row { top= 39; left = 20; keys { <UP> }; }; row { top= 58; keys { <LEFT>, <DOWN>, <RGHT> }; }; }; // End of "Editing" section section "Keypad" { top= 56; left= 392; row { top= 1; keys { <KPLP>, <KPRP>, <KPDV>, <KPMU> }; }; row { top= 20; keys { <KP7>, <KP8>, <KP9>, <KPSU> }; }; row { top= 39; keys { <KP4>, <KP5>, <KP6>, <KPAD> }; }; row { top= 58; keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPEN" } }; }; row { top= 77; keys { { <KP0>, "KP0" }, <KPDC> }; }; }; // End of "Keypad" section };
// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $ // // Rules for resolving XKB components for use with XFree86 // Copyright 1996 by Joseph Moss // // $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.41 2001/12/28 16:03:30 dawes Exp $ // ! model = keycodes geometry microsoft = xfree86 microsoft(natural) dell101 = xfree86 dell(dell101) flexpro = xfree86 keytronic(FlexPro) omnikey101 = xfree86 northgate(omnikey101) pc101 = xfree86 pc(pc101) pc102 = xfree86 pc(pc102) pc104 = xfree86 pc(pc104) pc105 = xfree86 pc(pc105) jp106 = xfree86 pc(jp106) everex = xfree86 everex(STEPnote) winbook = xfree86 winbook(XP5) pc98 = xfree98(pc98) nec(pc98) abnt2 = xfree86(abnt2) pc(abnt2) hp = xfree86 pc(pc104) itouch = xfree86 pc(pc104) logiinetnav = xfree86 pc(pc104) logicordless = xfree86 pc(pc104) logiinternet = xfree86 pc(pc104) compaq = xfree86 pc(pc104) microsoftpro = xfree86 microsoft(natural) geniuscomfy = xfree86 pc(pc104) btc9000 = xfree86 pc(pc104) rapidaccess = xfree86 pc(pc104) rapidaccess2 = xfree86 pc(pc104) chicony = xfree86 pc(pc104) dell = xfree86 pc(pc104) macintosh = xfree86 macintosh(macintosh) macintosh_old = macintosh macintosh(macintosh) powerpcps2 = powerpcps2 pc(pc104) amiga = amiga amiga(basic) amiga_euro = amiga(euro) amiga(euro) ! model variant = symbols pc102 nodeadkeys = en_US(pc102%_v)+%l%(v) pc104 nodeadkeys = en_US(pc104%_v)+%l%(v) pc105 nodeadkeys = en_US(pc105%_v)+%l%(v) microsoft nodeadkeys = en_US(pc104%_v)+%l%(v) macintosh nodeadkeys = macintosh/us(extended)+macintosh/%l%(v) macintosh_old nodeadkeys = macintosh/us(extended)+macintosh/%l%(v) powerpcps2 nodeadkeys = en_US(pc104%_v)+%l%(v) * nodeadkeys = en_US(pc101%_v)+%l%(v) ! model layout = symbols pc102 us = us(pc102) pc102 en_US = en_US(pc102) pc102 intl = us(pc102compose) pc102 * = en_US(pc102)+%l%(v) pc104 us = us(pc104) pc104 en_US = en_US(pc104) pc104 intl = us(pc104compose) pc104 * = en_US(pc104)+%l%(v) pc105 us = us(pc105) pc105 en_US = en_US(pc105) pc105 intl = us(pc105compose) pc105 * = en_US(pc105)+%l%(v) microsoft us = us(pc104) microsoft en_US = en_US(pc104) microsoft intl = us(pc104compose) microsoft * = en_US(pc104)+%l%(v) pc104 us = us(pc104) pc104 en_US = en_US(pc104) pc104 * = en_US(pc104)+%l%(v) pc105 us = us(pc105) pc105 en_US = en_US(pc105) pc105 * = en_US(pc105)+%l%(v) pc101 us_intl = us(pc101)+us_intl pc98 nec/jp = nec/jp(pc98) abnt2 br = us(pc101)+br hp us = us(pc104)+inet(hp) hp en_US = en_US(pc104)+inet(hp) hp * = en_US(pc104)+inet(hp)+%l%(v) compaq us = us(pc104)+inet(compaq) compaq en_US = en_US(pc104)+inet(compaq) compaq * = en_US(pc104)+inet(compaq)+%l%(v) itouch us = us(pc104)+inet(itouch) itouch en_US = en_US(pc104)+inet(itouch) itouch * = en_US(pc104)+inet(itouch)+%l%(v) logiinetnav us = us(pc104)+inet(logiinetnav) logiinetnav en_US = en_US(pc104)+inet(logiinetnav) logiinetnav * = en_US(pc104)+inet(logiinetnav)+%l%(v) logicordless us = us(pc104)+inet(logicordless) logicordless en_US = en_US(pc104)+inet(logicordless) logicordless * = en_US(pc104)+inet(logicordless)+%l%(v) logiinternet us = us(pc104)+inet(logiinternet) logiinternet en_US = en_US(pc104)+inet(logiinternet) logiinternet * = en_US(pc104)+inet(logiinternet)+%l%(v) microsoftpro us = us(pc104)+inet(microsoftpro) microsoftpro en_US = en_US(pc104)+inet(microsoftpro) microsoftpro * = en_US(pc104)+inet(microsoftpro)+%l%(v) geniuscomfy us = us(pc104)+inet(geniuscomfy) geniuscomfy en_US = en_US(pc104)+inet(geniuscomfy) geniuscomfy * = en_US(pc104)+inet(geniuscomfy)+%l%(v) btc9000 us = us(pc104)+inet(btc9000) btc9000 en_US = en_US(pc104)+inet(btc9000) btc9000 * = en_US(pc104)+inet(btc9000)+%l%(v) rapidaccess us = us(pc104)+inet(rapidaccess) rapidaccess en_US = en_US(pc104)+inet(rapidaccess) rapidaccess * = en_US(pc104)+inet(rapidaccess)+%l%(v) rapidaccess2 us = us(pc104)+inet(rapidaccess2) rapidaccess2 en_US = en_US(pc104)+inet(rapidaccess2) rapidaccess2 * = en_US(pc104)+inet(rapidaccess2)+%l%(v) chicony us = us(pc104)+inet(chicony) chicony en_US = en_US(pc104)+inet(chicony) chicony * = en_US(pc104)+inet(chicony)+%l%(v) dell us = us(pc104)+inet(dell) dell en_US = en_US(pc104)+inet(dell) dell * = en_US(pc104)+inet(dell)+%l%(v) macintosh us = macintosh/us(extended) macintosh en_US = macintosh/us(extended) macintosh * = macintosh/us(extended)+macintosh/%l%(v) macintosh_old us = macintosh/us(extended) macintosh_old en_US = macintosh/us(extended) macintosh_old * = macintosh/us(extended)+macintosh/%l%(v) powerpcps2 us = us(pc104) powerpcps2 en_US = en_US(pc104) powerpcps2 * = en_US(pc104)+%l%(v) amiga us = us(pc104) amiga en_US amiga * amiga_euro us amiga_euro en_US amiga_euro * * us = us(pc101) * en_US = en_US(pc101) * intl = us(pc101compose) * * = en_US(pc101)+%l%(v) * jp = jp ! model layout = compat types pc98 nec/jp = pc98(basic) complete * * = complete complete ! option = symbols grp:switch = +group(switch) grp:win_switch = +group(win_switch) grp:lwin_switch = +group(lwin_switch) grp:rwin_switch = +group(rwin_switch) grp:toggle = +group(toggle) grp:shift_toggle = +group(shift_toggle) grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) grp:caps_toggle = +group(caps_toggle) grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) grp:alt_shift_toggle = +group(alt_shift_toggle) grp:menu_toggle = +group(menu_toggle) grp:lwin_toggle = +group(lwin_toggle) grp:rwin_toggle = +group(rwin_toggle) lv3:switch = +level3(switch) lv3:menu_switch = +level3(menu_switch) lv3:win_switch = +level3(win_switch) lv3:lwin_switch = +level3(lwin_switch) lv3:rwin_switch = +level3(rwin_switch) ctrl:nocaps = +ctrl(nocaps) ctrl:swapcaps = +ctrl(swapcaps) ctrl:ctrl_ac = +ctrl(ctrl_ac) ctrl:ctrl_aa = +ctrl(ctrl_aa) altwin:menu = +altwin(menu) altwin:meta_alt = +altwin(meta_alt) altwin:meta_win = +altwin(meta_win) altwin:left_meta_win = +altwin(left_meta_win) altwin:super_win = +altwin(super_win) altwin:hyper_win = +altwin(hyper_win) compose:ralt = +compose(ralt) compose:rwin = +compose(rwin) compose:menu = +compose(menu) ! option = compat grp_led:num = +leds(num) grp_led:caps = +leds(caps) grp_led:scroll = +leds(scroll) ! option = types caps:internal = +caps(internal) caps:internal_nocancel = +caps(internal_nocancel) caps:shift = +caps(shift) caps:shift_nocancel = +caps(shift_nocancel)
pgpFG6wnw7QUX.pgp
Description: PGP signature