How can I show/hide Onboard from another process?

Asked by Gabriel C. Stabel on 2012-08-22

I'm building a "stand-alone" aplication (in Linux using C++/Qt) for a customized hardware and I would like to use Onboard for user input. Like an automotive GPS there is no keyboard avaible, just a touch-screen LCD.

There is any way to control show/hide Onboard actions directly from another procress? In other words, overriding the operational system behavior.


Question information

English Edit question
Onboard Edit question
No assignee Edit question
Solved by:
Last query:
Last reply:
Best marmuta (marmuta) said : #1

Thanks for the question. Have a look at this recent, similar one:

In short, you can show a running instance of Onboard by launching "onboard" again. However there is no supported way to hide the keyboard yet. Plans exist to add one though:

The only solution known to work right now is killing Onboard (with SIGTERM) and restarting it as needed.

Gabriel C. Stabel (gstabel) said : #2

Thankx, marmuta. We will going to use your solution (kill - restart) for now.

Bug #1032042: RFE: Add a way to hide Onboard by shell command

This "bug" (added to whishlist) could solve my problem too. In fact it goes further from my problem. Maybe I can help.

marmuta (marmuta) said : #3

Help is always welcome of course. I've added that D-Bus interface already now, but perhaps there is something else you are interested in.

Gabriel C. Stabel (gstabel) said : #4

For now I think I will do an Onborad Qt Class to test de D-Bus inteface in Qt. I publish soon when I did it.
(Unfortunely I don't have too much extra time this days).

BTW, I try to run from source (trunk), but got stucked on how to compile osk-stuff... found no makefile, and I found no notes either about it. So I got an import no-module-found error in the python script.
I need compile and create a '' rigth? Like the deb package.
Am I missing something?

Gabriel C. Stabel (gstabel) said : #5


Gabriel C. Stabel (gstabel) said : #6

Thanks marmuta, that solved my question.

marmuta (marmuta) said : #7

Osk is a local python extension, it's built with Onboard's
$ ./ build

If all dependencies are met you can then run Onboard right from the project directory
$ ./onboard

but the first time it will probably fail and at best complain about missing gesettings keys.
I'd recommend you build and install the debian package, that takes care of building osk and installing the gsettings schema. Normally this would go like this:

$ apt-get build-deb onboard
$ bzr branch lp:onboard
$ cd onboard
$ dbuild binary
$ sudo dpkg -i ../onboard*.deb

However the switch to python 3 makes this more complicated. Are you trying to run it on Precise or Quantal?

marmuta (marmuta) said : #8

$ dbuild binary
should read:
$ debuild binary

Gabriel C. Stabel (gstabel) said : #9

Thankx again.
I got it work... after some packages fun. ;)

I'm on Precise (12.04) amd64. I could go to Quantal (12.10) on a virtual machine if needed.

For the record:

I had to install some python3 packages to be able to build/run.
 I remember at least these form Precise repository: python3-gi python3-dbus python3-cairo python3-gi-cairo

 And this packages from Quantal (
 libdconf1_0.13.90-0ubuntu1_amd64.deb libglib2.0-0_2.33.10-0ubuntu3_amd64.deb libglib2.0-dev_2.33.10-0ubuntu3_amd64.deb libdconf-dev_0.13.90-0ubuntu1_amd64.deb libglib2.0-bin_2.33.10-0ubuntu3_amd64.deb

A got a dependence problem with 'libfontconfig1-dev' package. The binary and dev package are at diferent versions on Precise repository (libfontconfig1 = 2.8.0-3ubuntu9.1 and libfontconfig1-dev = 2.8.0-3ubuntu9).
So I got it from:
 $ sudo dpkg -i libfontconfig1-dev_2.8.0-3ubuntu9.1_amd64.deb