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 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel