Subject: Re: Wskeyboard mappings
To: Reinoud Zandijk <imago@kabel065011.kabel.utwente.nl>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: tech-kern
Date: 03/14/2001 20:37:04
>
> Hi Juergen,
>
> On Wed, 14 Mar 2001, Juergen Hannken-Illjes wrote:
> > > - It doenst seem to be posible to place the mathimatical `not' on
> > > the key next to the `1' together with the agauche (spelling?) and the bar.
> >
> > Please explain what characters are on this key (normal, shifted,
> > alt-gr, shift alt-gr).
>
> My current keyboard line is :
> keyc normal shift alt-gr
> KC(14), KS_grave, KS_notsign, KS_bar
>
> (just changed soms stuff so i cant check if this is now correct, but it
> should be)
Looks ok. You get grave/not and bar/bar with alt-gr.
> > > - I noticed that the wskbd driver just assumes every keyboard to
> > > return XT keycodes in its maps !
> >
> > Depends on the map. sys/dev/pckbc/wskbdmap_mfii.c is built around XT
> > scancodes.
>
> yeah .... thats the one i modelled after indeed; my point is really that
> it would IMHO be nicer to seperate keyboard-layout from keyboard-protocol.
>
> > > - Some characters like o^, a" etc seem bolted somewhere in a table
> > > instead of the keyboard mapping tables.
> >
> > This is a compose table to be used if your keyboard is missing some
> > characters. If your keyboard has for example Aumlaut, you don't need
> > <Compose A ">.
>
> AFAIK i dont have a compose in my keyboard mapping; Still alt-w gives some
> composed char (not behind the keyboard now so i cant type it in and check
> it).
Depending on your map alt-w is w with bit 8 set to 1.
Without an alt-gr (usually the right alt) you cannot get more than two
characters (normal/shifted) per key. You need something like
KC(xxx), KS_Mode_switch, ...
in your map.
> > While the input is a more or less abstract scancode (Just numbers) the
> > MI output is already close to 16-bit unicode.
>
> Wich is a good sign indeed ! :)
>
> > > 2) Extend the keyboard mapping in a way to include all keyboard >
> > ``weed'' apart from the obvious `Compose' and toupper() functionality.
> > In > this way the a^, a`, a' as well as the `not' can be placed at
> > arbitrary > positions on the keyboard.
> >
> > Doesn't work, because no keyboard has enough spare keys for all these
> > characters.
>
> Euhm.... i was more refering to say the specific modelling of <alt>w to be
> say ... A" and/or to have <alt>E produce Euro... (is it somewhere else ?)
You need alt-gr instead of alt.
> > > The reasons for me to make a fuzz of it is that the current tables seem to
> > > have both a translation role (keyboard codes->key codes) as well as its
> > > behaviour (i.e. shift 4 is $)
> >
> > If shift-4 is not $, either your keyboard or the map file are wrong.
>
> Esp. English keyboards tend to have " above 2 :) ... so yes a keyboard
> mapping but thats not my point ... my point is the the two functions the
> table fullfills. Or are you suggesting to have #k * #p mappings? i.e. a
> mapping for each layout for every keyboard protocol ?
That is the current implementation. It doesn't consume much space, since nearly
all maps are overlays of a generic map.
We have us: `KC(3), KS_2, KS_at,' and
uk: `KC(3), KS_2, KS_quotedbl, KS_twosuperior, KS_cent,'
While looking at wskbdmap_mfii.c pckbd_keydesc_uk uses alt-gr entries but doesn't
have a alt-gr key. This is an error.
> Cheers,
> Reinoud
>
>
--
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)