How can I show/hide Onboard from another process?

Asked by Gabriel C. Stabel

Hi.
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.

Thanks.
Gabriel

Question information

Language:
English Edit question
Status:
Solved
For:
Onboard Edit question
Assignee:
No assignee Edit question
Solved by:
marmuta
Solved:
Last query:
Last reply:
Revision history for this message
Best marmuta (marmuta) said :
#1

Thanks for the question. Have a look at this recent, similar one:
https://answers.launchpad.net/onboard/+question/204775

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:
https://bugs.launchpad.net/bugs/1032042

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

Revision history for this message
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.

Revision history for this message
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.

Revision history for this message
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 'osk.so' rigth? Like the deb package.
Am I missing something?

Revision history for this message
Gabriel C. Stabel (gstabel) said :
#5

Solved

Revision history for this message
Gabriel C. Stabel (gstabel) said :
#6

Thanks marmuta, that solved my question.

Revision history for this message
marmuta (marmuta) said :
#7

Osk is a local python extension, it's built with Onboard's setup.py.
$ ./setup.py 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?

Revision history for this message
marmuta (marmuta) said :
#8

Sorry,
$ dbuild binary
should read:
$ debuild binary

Revision history for this message
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 (http://packages.ubuntu.com/):
 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: https://launchpad.net/ubuntu/precise/amd64/libfontconfig1-dev/2.8.0-3ubuntu9.1
 $ sudo dpkg -i libfontconfig1-dev_2.8.0-3ubuntu9.1_amd64.deb