grub-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]