Recently Dublin got busy with the first ever MeeGo conference being organized for developers. For 3 days, geeks invaded the shiny (and overly expensive) Aviva stadium for talks, fun and code. It was also a cool opportunity to meet up with some esteemed Novell colleagues.

Among other goodness (hat off to the organizers for a truly top-notch event), Nokia and Intel in their great wisdom decided to hand out a free Lenovo S10-3t netbook/slate (pre)loaded with MeeGo to get our hand dirty with. I’ll probably discuss about MeeGo itself in another blog but for now I want to write here the couple of step I had to take to turn the Netbook edition into something suitable for the slate mode the Lenovo can adopt.

Basically by following this guide you will have: a working on-screen virtual keyboard and a tweaked Chromium understanding touch for scrolling.

The first step is to setup the keyboard. First of all, you have to enable the Handset repository to pull down some compatibility component (i.e. GTK+ immodule):

$ cd /etc/zypp/repos.d/
$ sudo -s
$ cp netbook.repo handset.repo
$ sed 's/netbook/handset/' -i handset.repo
$ zypper refresh # at this point you will probably have a security alert, ignore it
$ zypper install meegotouch-inputmethodbridges meegotouch-inputmethodkeyboard meegotouch-theme meegotouch-theme-meego libmeegotouch-qtstyle meegotouch-systemui

To avoid a weird parsing bug, comment out line 715 in /usr/share/themes/base/meegotouch/libmeegotouchcore/style/commonlayouts.css.

Then, open up the file /etc/xdg/autostart/meego-im-uiserver.desktop and change the Exec line to /usr/bin/meego-im-uiserver -target slate -bypass-wm-hint. Finally, append ;X-MEEGO-NB to the OnlyShowIn line (or remove it altogether), save, close up and restart your computer (all applications including MeeGo panel basically need to be relaunched to load up the new input engine so it’s the most straightforward way).

If everything went well (if not check that the process is alive and not choking), you should have a fair sized keyboard appearing at the bottom of the screen when a text field gets the focus.

Some comments here. The enter key on this keyboard is hidden behind the two modifier keys (bottom-left) and is only a n appender (read, it won’t fire any activated event). Thus when you need to validate something you have to either use your real Enter key or find a way around (“clicking” chrome first completion for an address, tweet/publish buttons, …). To make the keyboard go away (because it doesn’t resize any part of the UI it’s hiding) you have to use a ninja swipe to the bottom that precisely start at the top of the keyboard without touching a key (I did prepended ninja there).

On the web browser side (who use a slate for something else?), there is an extension that provide the scrolling gesture Android & IPhone user will be familiar with. To get websites to take you as a slate you can resort to the good old user-agent trick and make yourself look like an iPad though, as far as I tried using it, special interface such as GMail one doesn’t work.

To get back the MeeGo panel on the top when you don’t have access to the Windows key, a really high touch-click on the screen will still get it to slide down for you.

EDIT: on the matter of having the keyboard hiding the UI beneath it, if you don’t use the keyboard in software mode (that is, no -software switch in your .desktop), you can make most of the keyboard transparent by opening /usr/share/themes/base/meegotouch/svg/meegotouch-keyboard.svg and adding an opacity value in the style attribute of the svg root node, something like (extra attributes stripped for readability):

<svg version="1.1" 
  id="meegotouch-keyboard-layer" 
  viewBox="0 0 500 480" 
  style="enable-background:new 0 0 500 480; opacity:0.4"
  xml:space="preserve">

EDIT2: I updated the zypper install line with package that I thought were pulled down automatically but apparently weren’t.

If everything goes well you should get that result: