Customizing the MeeGo Keyboard
Posted by admin on April 10, 2011 · Leave a Comment
The look & feel of the MeeGo Keyboard (comes with the MeeGo Input Methods) can be easily adjusted to your needs. In the last post I already gave a brief example on how to modify the graphical assets. In fact, you will find that the look is mostly defined by the graphics contained in that one SVG file. The elements’ id’s are referenced from the keyboard’s CSS file, so it is a good idea to just leave them as-is, unless you really need more graphical elements. The CSS file is installed to a slightly different folder than the SVG file:
/usr/share/themes/base/meegotouch/libmeego-keyboard/style/libmeego-keyboard.css
If that looks a bit complex then it’s probably because it is. When hit by new design requirements we didn’t always manage to find a clean solution in time. But at least it works and there’s even documentation available.

Most containers are named MImAbstractKeyAreaStyle – they describe the style of the widgets that we use to represent keyboard layouts. You won’t find containers that describe the actual keys though (am sorry for that). Other than the CSS syntax, those containers don’t share much with regular CSS attributes – MeeGo Touch allows you to define your own custom attributes, and that’s exactly what I did, to quite some extent.
The whole keyboard responds to touch events or mouse clicks. That is, the reactive areas of the keys cover the whole keyboard. A single key’s reactive area is usually aligned with its bounding rectangle, unless spacers are involved. Spacers expand to fill the remaining width in a row, thus allowing flexible alignment of keys. Usability studies showed us that people expect a spacer’s area to be consumed by the reactive area of the neighboring keys. The diagram to the left visualizes how reactive areas are constructed from key margins, keyboard paddings and spacers. Keyboard paddings override key margins, e.g, the top margin of key is replaced by the top padding of the keyboard, if that key is located in the top-most row.
For each keyboard layout, the amount of keys defines its style mode (only works if the amount of keys is in range of 10-15 or 30-45 and if sync-style-mode-with-key-count is enabled). These keyboard layouts can get a fully customized styling on their own, e.g., different paddings, key sizes, images, etc. This helps with pixel-perfect designs, but can also be a lot of work.
We avoided to blend CSS attributes with the keyboard layout files, in order to keep the latter reusable for any kind of device. The basic idea is that – for a new form factor – only the CSS file would need to be adjusted. However, there are certain XML attributes in the layout files that can be controlled from the CSS file. For example: A row of keys can carry a height attribute (small, medium, large, x-large, xx-large) which is then mapped to key-height-* CSS attribute, where the concrete height of each group is eventually specified. Thus, the declarative nature of the XML files is preserved.
I hope this post made it less daunting to go and create your own MeeGo Keyboard design. I would love to see some concepts that could potentially replace the current design!
2011-04-10 14:00 UTC with score 1
VN:F [1.9.22_1171]
Filed under Maemo News · Tagged with app, css, customize nokia keyboard, declarative, features, goo, google latitude n900#sclient=psy, graphics, hen, how to install meego quick keyboard on nokia n900, how to receive a touch key event in maemo, how to use meego keyboard on n900, how to use meego keyboard on the n900, how to use meego quick keyboard in n900, how to use meego-keyboard-quick on n900, http://www.maemonokian900.com/, http://www.maemonokian900.com/maemo-news/customizing-the-meego-keyboard-3/, im, ir, keep-the-latter, key numbers of n900 keyboard layout, keyboard, least-it-works, mad, maemo, maemo customize, maemo keyboard, maemo meego keyboard, maemonokian, maemonokian900.com, maliit virtual keyboard, map, meego, meego add custom keyboard layout, meego adding new keyboard, meego custom keyboard, meego keyboard, meego keyboard events, meego keyboard for maemo, meego keyboard for n900, meego keyboard layout for n900, meego keyboard layout switch, meego keyboard mapping, meego keyboard n900, meego keyboard on n900, meego keyboard quick, meego keyboard quick for n900, meego keyboard quick maemo, meego keyboard quick n900, meego languages, meego n900, meego n900 keyboard, meego n900 keyboard mapping, meego quick keyboard, meego quick keyboard n900, meego replacement for maemo nokia n900, meego theme for n900, meego touch keyboard, meego touch theme margins, meego touch thème n 900, meego update keyboard layout, meego-input-method, meego-keyboard-quick in n900, meego-keyboard-quick maemo n900, meegotouch, meegotouch keyboard, n9, n900, n900 custom keyboard, n900 custom keyboard layout, n900 keyboard layouts, n900 maemo meego keyboard, n900 meego keyboard, n900 meego keyboard quick, n900 theme cusstomiser meego touch theme, neighboring, nokia, nokia n900 customize keyboard, nokia n900 keyboard customization, nokia n900 meego keyboard, nokia n900 meego theme, nokia n900 meego-keyboard-quick, nokian9, nokian900, packages, pdf, png, share, style, svg nokia keyboard file, theme, themes, update, web, widget, www. maemonokian900.com, www.maemo
Customizing the MeeGo Keyboard
Posted by admin on April 10, 2011 · Leave a Comment
The look & feel of the MeeGo Keyboard (comes with the MeeGo Input Methods) can be easily adjusted to your needs. In the last post I already gave a brief example on how to modify the graphical assets. In fact, you will find that the look is mostly defined by the graphics contained in that one SVG file. The elements’ id’s are referenced from the keyboard’s CSS file, so it is a good idea to just leave them as-is, unless you really need more graphical elements. The CSS file is installed to a slightly different folder than the SVG file:
/usr/share/themes/base/meegotouch/libmeego-keyboard/style/libmeego-keyboard.css
If that looks a bit complex then it’s probably because it is. When hit by new design requirements we didn’t always manage to find a clean solution in time. But at least it works and there’s even documentation available.

Most containers are named MImAbstractKeyAreaStyle – they describe the style of the widgets that we use to represent keyboard layouts. You won’t find containers that describe the actual keys though (am sorry for that). Other than the CSS syntax, those containers don’t share much with regular CSS attributes – MeeGo Touch allows you to define your own custom attributes, and that’s exactly what I did, to quite some extent.
The whole keyboard responds to touch events or mouse clicks. That is, the reactive areas of the keys cover the whole keyboard. A single key’s reactive area is usually aligned with its bounding rectangle, unless spacers are involved. Spacers expand to fill the remaining width in a row, thus allowing flexible alignment of keys. Usability studies showed us that people expect a spacer’s area to be consumed by the reactive area of the neighboring keys. The diagram to the left visualizes how reactive areas are constructed from key margins, keyboard paddings and spacers. Keyboard paddings override key margins, e.g, the top margin of key is replaced by the top padding of the keyboard, if that key is located in the top-most row.
For each keyboard layout, the amount of keys defines its style mode (only works if the amount of keys is in range of 10-15 or 30-45 and if sync-style-mode-with-key-count is enabled). These keyboard layouts can get a fully customized styling on their own, e.g., different paddings, key sizes, images, etc. This helps with pixel-perfect designs, but can also be a lot of work.
We avoided to blend CSS attributes with the keyboard layout files, in order to keep the latter reusable for any kind of device. The basic idea is that – for a new form factor – only the CSS file would need to be adjusted. However, there are certain XML attributes in the layout files that can be controlled from the CSS file. For example: A row of keys can carry a height attribute (small, medium, large, x-large, xx-large) which is then mapped to key-height-* CSS attribute, where the concrete height of each group is eventually specified. Thus, the declarative nature of the XML files is preserved.
I hope this post made it less daunting to go and create your own MeeGo Keyboard design. I would love to see some concepts that could potentially replace the current design!
2011-04-10 14:00 UTC with score 1
VN:F [1.9.22_1171]
Filed under Maemo News · Tagged with app, css, development, events-or-mouse, features, goo, hen, http://www.maemonokian900.com/, im, ir, keep-the-latter, keyboard, least-it-works, mad, maemo, maemonokian, maemonokian900.com, map, meego, meego keyboard, meego-input-method, meegotouch, n9, n900, neighboring, nokia, nokian9, nokian900, packages, pdf, png, share, theme, themes, update, web, widget, widgets, www. maemonokian900.com, www.maemo