[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC] Different keyborad layouts
From: |
Carles Pina i Estany |
Subject: |
Re: [RFC] Different keyborad layouts |
Date: |
Tue, 30 Sep 2008 00:51:52 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hello,
On Sep/29/2008, Vesa Jääskeläinen wrote:
> Carles Pina i Estany wrote:
> > Hello,
> >
> > I was thinking how we could have different keyboard layouts and after
> > have some ideas I sent some emails to Robert about this topic (who had some
> > better ideas :-) )
> >
> > Let me to explain here some plan/design. I would like to research on it
> > after some weeks, but if we need some discussion we could have it before
> > :-)
> >
> > (this is the result of some mails with Robert, so I'm copying/pasting and
> > changing some things, if I'm wrong Robert correct me!)
> >
> > Plan:
> > - in term/i386/pc/at_keyboard.c we could have something like this:
> >
> > static char english_map[] = { x, x, x };
> > char *map = english_map;
>
> Explain this a bit more...
>
> Remember that in some keyboard you need to press combos in order to
> generate some character. Like in Finnish keyboard you press alt-gr + e
> in order to generate euro sign (or alt-gr + 5). Also there are
> multi-keypress sequences like in order to make '^' this sign you have to
> press ctrl + '^' button and when released then press space. If you
> happen to press in example 'a' after ctrl + '^' key you get 'â'. And I
> do not think this is the only keyboard with this feature. Also there is
> those dec input sequences like alt+number sequence. In example alt
> (pressed) + '6', '5' you get 'A'.
Spanish one is similar (well, vowells are easier to pronunce ;-) )
> > - have a new module with different layouts and variable hook
> >
> > - when user (or grub.cfg) change some variable (KEY_LAYOUT?), this module
> > would
> > redefine the term/i386/pc/at_keybord.c char *map to KEY_LAYOUT_map (es_map,
> > de_map, etc.)
>
> I do not like the idea of using variable for this as it will most likely
> require loading of keymap definition form disk. So I would prefer something:
>
> insmod keymap
> keymap /boot/grub/keyboard/fi
from below problems (difficult to handle with the static char *map (that
we currenty have) plus this idea from you, my understanding is that we
should go having something like
/usr/share/keymaps/i386/qwerty/fi.kmap.gz (change your layout and
architecture, etc.)
So, the layout is not an easy char *map but it's a definition inside a
file. Maybe same one that Linux console?
> Also remember that you most likely want to play with scancodes when
> transcoding keysequences. I would propose that you convert those
> sequences to unicode so it would be easier to process. And if key is not
> possible to code as unicode then some kinda of keyevent with flag that
> this is eg. key up or something like that.
I take note.
All this "a bit more complicated case" if we want full layout in Grub.
Actually, what I miss in Grub is some characters like / ( ) = " ' < > :
; . & (I don't write texts in Grub :) )
I mean, we could:
a) do nothing (worst option?)
b) parcial implementation (still using the char *map with different
basic layouts)
c) full implementation, like Linux console
Do you have some strong opinion about what to do? I guess that c) is
better, do we need it?
Anyway, next days I will study how the Linux keymaps are working and are
handled.
--
Carles Pina i Estany GPG id: 0x17756391
http://pinux.info