[maemo-users] Virtual keyboards (was: Re: my two big fustrations with the N800 - please help me find aworkaround!)

From: Tomas Junnonen tomas.junnonen at nokia.com
Date: Mon Jul 23 14:09:28 EEST 2007
ext James Knott wrote:
> I have demonstrated with two different virtual 
> keyboards, that it is indeed possible to run an X app via ssh, with a
>  virtual keyboard.  Now that this fact has been established, perhaps
> you can explain why the N800 virtual keyboard fails in this regard.
> It is not because it is not possible with X.  Incidentally, xvkbd
> occupies a small area of my screen and while onBoard uses a larger
> area, it is still smaller than my desktop.  As for the keyboard
> showing or not showing all the time, I'm not expecting it to
> disappear, when not needed.  It would be nice if it could simply be
> available for me to use, in the manner I might use xvkbd or onBoard

There are many ways to implement a virtual keyboard. For example, you
can do it on the X level or using a toolkit (gtk in our case) as David
mentioned. As there are benefits and drawbacks to each approach, please
let me tell you a bit of the design decisions that have gone into the
N800 virtual keyboard (VKB).

An X level VKB closely emulates a hardware keyboard; you press a key on
the VKB and an X event is generated. From an application point of view
there is no distinction whether the key press is generated by the VKB or
a physical keyboard, therefore an X level VKB has the advantage that it
will work with just about any application.

A VKB implemented using a toolkit on the other hand allows the keyboard
to instrument with the running application through the API of that
toolkit. This means communication is bi-directional between the
application and the VKB, allowing a different set of features and
"smart" behavior:
 - The VKB is aware of the context; is the user entering text into a web
browser, an instant messenger, a password field, a date field? The input
itself or just the UI can be optimized for each separate case.
 - The VKB can access the text in the application. This allows for
features such as automatic capitalization based on cursor position and
transferring of the existing content to the fullscreen thumb keyboard in
the N800.
 - It allows for non-sequential input as seen in the handwriting mode on
the N800, as in any piece of the text can be edited by overwriting the
existing content regardless of the actual cursor position.
 - The VKB is aware of the application and widget focus. While you may
disagree, having the VKB on the screen only when needed is an important
feature from my point of view.

> Is it possible to call the N800 virtual keyboard as an app?

Currently, no. That leaves a few choices for your use case:
 - Embed each remote window into a local window ala VNC Viewer for Maemo.
 or, perhaps more practical:
 - Just use xvkbd on the N800 if it does what you're looking for.
There's also Matchbox-keyboard which runs fine on the device, just needs
a bit of packaging.


More information about the maemo-users mailing list