← Back to team overview

ubuntu-tablet team mailing list archive

We could do better on on-screen keyboards..

 

Hi,

As I begun using my new tablet, I became more and more frustrated with the on screen keyboards currently available. The main issue is that keyboard “floats” on the screen, and typically bounces around the screen depending where you’re writing (unless you actually fix it to the screen, which IMHO sucks even more).

This is something that Apple, Android, Nokia et al really do way better – the existing Linux solutions are just conceptual copies of similarly poor Windows solutions.

One of the things I like in the iPad is that the keyboard pops always up from the bottom to the same full-width place – this enables you to lay your hands on the table and type. Good luck trying that on a “floating” keyboard. So, I thought I had to come up with something, at least in my opinion, better.

In short, this is what I did:

- I modified Onboard so that it always keeps at bottom at the same place, as wide as possible.
- Auto-hide works as originally, utilizing at-spi
- If editable field would be behind keyboard, we signal Compiz to move that window up so we can see what we edit.
- After editing – or moving to different field, we restore previous window positions

Here is a video file on how it works:

http://users.tkk.fi/u/hsundeli/onboard_compiz.webm

(framerate really sucks, but thats all the tablet can give.. key point here is that I’m not moving any windows, just changing the focus.)

Technically, Onboard sends dbus messages to Compiz’s dbus & put plugins. Onboard stores state for what has been moved.

I guess this solution is bit more “integrated” that what Linux community is used to, but that is how it has to be if a better user experience is to be desired. I have no idea if this is even possible in say Unity 2D.

Code-wise I’m pondering what to do next – depends on what people think. Either make this a Onboard fork or merge to Onboard capabilities if there is sufficient interest..

Cheers,
//HS