Close to system tray

Asked by Zen25000 on 2013-09-23

Onboard is excellent, but has one annoyance (for me).

When I hit the close button on the window header bar (X) it closes completely.
I can find no option to change this so it drops to the to the system tray as is done in xchat, gnote, etc.

I do know that it will 'minimise' to the system tray, but old habits die hard and I repeatedly use the X as I am used to doing with other similar 'standby' type applications.

I feel that this would be a major enhancement.

Thanks,
Barry

System is Mageia Linux, KDE, x86_64, 3.10.10-desktop-3.mga4

Question information

Language:
English Edit question
Status:
Answered
For:
Onboard Edit question
Assignee:
No assignee Edit question
Last query:
2013-10-06
Last reply:
2013-10-22
marmuta (marmuta) said : #1

Hi, thanks for your question. What version of Onboard do you have installed?

You're right, the close button in the title bar quits Onboard. There was a bug report for this once:
https://bugs.launchpad.net/onboard/+bug/584119

However, is there a reason why you want to keep window decoration enabled? We're turning it off by default for quite a while now. There's no title bar to hit out of habit then, only a "hide" button, that should behave closer to what you're asking for. Once decoration is disabled you'll get another button to move the keyboard too.

Zen25000 (zen25000) said : #2

Hi,
Version is 0.95.2 which I now realize is quite old.

I don't want the window decoration, but in this version the keyboard cannot be re-located without it.

I have looked at 0.98.1 and it does go some way to improving things.
However it now takes two clicks, (right click to open the context menu and left to select 'show onboard') where previously one left click worked. (I don't want the floating icon).

Sadly 0.98.1 segfaults when any other window opens or closes, so it is unusable.
I will revert for now to 0.95.2 which is stable.

I did try building several other versions from 0.96.0 onwards, but builds failed, with obscure errors.

marmuta (marmuta) said : #3

I see, it shows that we never tested on Mageia or KDE... Let me try to get the latest revision to run there. If we had to change anything, this would be the version for you to install anyway.

Left click on the status icon not showing the keyboard might be because of support for AppIndicator. Middle-click might work in that case and later versions can be shown by launchers and auto-show.

Zen25000 (zen25000) said : #4

Maybe I should mention that I do some packaging for Mageia and would like to see Onboard updated in the distro if we can resolve the stability problem.
My testing has only been in Mageia 4 (development version which is currently in Alpha).
Here is a build log:
http://mtf.no-ip.co.uk/pub/linux/barjac/distrib/cauldron/x86_64/core/release/log/onboard-0.98.1-1.mga4.src.rpm/build.0.20130925091639.log
I will test also in Mageia 3 (stable) although any update to Onboard would only go into Mageia 4 due for release early next year.

marmuta (marmuta) said : #5

Yes, thank you, I was just about to install Mageia 3. Will look for the development version then.
Is there a problem with the build log? I don't immediately see anything obvious.
BTW, why are you building last year's 0.98.1? Is that because you have to use python 2? Onboard 0.99.0 is the latest but it requires python 3.2+.

Zen25000 (zen25000) said : #6

Ah - thanks - I had mis-read the releases info - I didn't realize that 0.99.0 was a full release.

I have re-packaged 0.99.0 with python3 and all is now working fine in Mageia 4 :)

It will be good to get a current version into the distro.

It's a shame that left click does not do what the middle button does, but we can't have everything - at least it's not closed every time I need it now ;)

Thanks again for your help.

marmuta (marmuta) said : #7

Great, that's good to hear. I managed to run Onboard from source in Mageia 4 alpha2 too, but hit a few glitches.

The click buttons, right, middle, double, drag click, do nothing. It seems we are not allowed to grab XInput devices there. If you see this too, one workaround is to set Preferences->Keyboard->Advanced->Input Event Source to "GTK".
You could make this the default by setting input-event-source=GTK in onboard-defaults.conf.

In my straight KDE install, left click on the status icon still works. Onboard falls back to GtkStatusIcon as apparently AppIndicator isn't installed yet. Drawback: the icon isn't found, it shows only the missing-icon icon. Bug in Onboard, probably.

Auto-show and word-suggestions do nothing for QT applications. There's got to be a QT AT-SPI bridge somewhere, but I haven't found the right packages to install. Where you able to solve that?

Zen25000 (zen25000) said : #8

Ah good - glad you have a Mga4 installation.

>> You could make this the default by setting input-event-source=GTK in onboard-defaults.conf.

I now copy (during package build) onboard-defaults.conf.example as /etc/onboard/onboard-defaults.conf, and append "input-event-source=GTK".

In a fresh install of the package the file is there, but does not affect the setting in the prefs GUI.
Should it be added under a particular section? ...or are the personal prefs stored elsewhere? I have searched but found no other conf file, yet personal changes are remembered.

>>In my straight KDE install, left click on the status icon still works.
Mine still does not.

The icons are all ok here except the + and - signs for the timing settings for hover click.

If you would like to test the package as it is now you can find it in here:
http://mtf.no-ip.co.uk/pub/linux/barjac/distrib/cauldron/x86_64/media/extra/release/
Check the date/time for the latest build.

>> There's got to be a QT AT-SPI bridge somewhere.
I can't find one either - if you are unfamiliar with urpmi then this will list available packages with *foo* in the name.
urpmq -y foo
I tried:
urpmq -y spi | grep qt
but it returns nothing.

marmuta (marmuta) said : #9

'input-event-source' has to be under the keyboard section. There was no example entry before, unfortunately. I've just added one.
The keys in onboard-defaults.conf generally mirror the gsettings hierarchy. You can usually figure out which keys there are and where to put them with something like
gsettings list-recursively | grep org.onboard | grep input-event-source

> Mine still does not.
Yeah, you're not the first one to come across this problem. AppIndicator is sneaking into peoples systems with UI ideas that are alien to many desktop environments. I think it's time to make the status icon provider selectable in Onboard.

>The icons are all ok here except the + and - signs for the timing settings for hover click.
All the spin buttons, yes, same here.

> urpmq -y foo
> I tried:
> urpmq -y spi | grep qt
Thanks, I was looking for something like this. I coped with urpmf, which was quite handy, actually.
I'll try to figure out what Ubuntu does with QT apps. It kinda works there, though, last I tried, AT-SPI interfaces crucial for word suggestions appeared unfinished/not implemented.

Zen25000 (zen25000) said : #10

The latest package build now has in /etc/onboard/onboard-defaults.conf:
...
[keyboard]
input-event-source=GTK
# label popup
#touch-feedback-enabled=True
...

I have tested in both my current real KDE system and in a VM, and the result is the same - it appears to have no effect on the setting at launch.
Changing the gsettings directly or via onboard's GUI does work. (Thanks for that pointer - I am not familiar with gsettings)

In KDE I have found that auto-show does work, but only with Gnome applications like gnote and gedit.

marmuta (marmuta) said : #11

onboard-defaults.conf looks like it should work, I just tried it again, it does here. I can't explain why it wouldn't work in a fresh VM, but to have most system defaults applied in an existing installation you have to
$ gsettings reset org.onboard use-system-defaults

Try
$ onboard -ddebug

this should print a line close to the beginning with
Found system default '[keyboard] input-event-source=GTK'
and no errors or warnings in the vicinity.

Auto-show and word suggestion with Gnome widgets did work for me too in Mageia. What I think is missing is the AT-SPI bridge for QT. In Ubuntu it is apparently
qt-at-spi
"A plugin to export Qt widgets over AT-SPI2. This allows them
to be read by accessibility tools such as the Orca screen reader."
The file to look for would be
/usr/lib/x86_64-linux-gnu/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so

I thought I found some similarly named package two days ago, but it did nothing. Haven't been able to try again yet.

Trunk revision 1617 can be configured to use GtkStatusIcon now:
$ gsettings set org.onboard status-icon-provider GtkStatusIcon
or in onboard-defaults.conf
[main]
status-icon-provider=GtkStatusIcon

Packaging trunk would be too risky, but maybe you want to cherry pick that single revision and patch 0.99.0 with it. Perhaps wait until I figured out what's wrong with the icon, though.

Zen25000 (zen25000) said : #12

-ddebug shows the conf is read correctly.
After running:
gsettings reset org.onboard use-system-defaults
XInput is set and a re-launch of onboard then switches correctly to GTK, so it does seem to work, but only after the reset. I admit to not understanding this.

I did find the souce for qtatspi the other day and made a quick package which did install libqspiaccessiblebridge.so, but it did not seem to have any effect. I do not really have enough knowledge to investigate why.

I will try to figure how to diff a patch for your commit 1617 - should be an interesting excercise in itself as I am just trying to get up to speed with git :)

Thanks for your help.

Zen25000 (zen25000) said : #13

Ah it's bzr - google will be busy!

Zen25000 (zen25000) said : #14

It works - nice :)

Google came good:
bzr log -r1617 -p > onboard-0.99.0-mga-upstream_1617_StatusIconProvider.patch

I also added the config change in the spec and it now works, but ONLY after running:
gsettings reset org.onboard use-system-defaults
...just as with the other change, so I'm guessing that if onboard had not been previously installed, then this would work without the reset?

The new package is here just in case you want to test and comment before I push it into Mga4.
http://mtf.no-ip.co.uk/pub/linux/Mageia/distrib/cauldron/x86_64/media/extra/release/onboard-0.99.0-1.mga4.noarch.rpm

BTW (I should read the docs), but afaict the 'drag click' button provides access to the accented character set, I don't understand the button naming.

marmuta (marmuta) said : #15

Awesome, you figured out how to get the patch :).

Yes, if Onboard was never started before, use-system-defaults would have its default value 'true'. 'gsettings reset' returns it to that. Onboard then applies system defaults and sets use-system-defaults to false on next start. That key is a crutch that I had to add because gsettings dropped features from its predecessor gconf.

Btw, one can reset whole schemas with gsettings reset recursively org.onboard for example. This is handy for testing how Onboard would behave on newly installed systems. For some reason sub-schemas of org.onboard aren't all traversed recursively though. I have to list them manually
gsettings reset-recursively org.onboard
gsettings reset-recursively org.onboard.window
gsettings reset-recursively org.onboard.window.portrait
...

I tried to install your package, but it didn't let me because either mousetweaks or AppIndocator3 couldn't be installed. Somehow I had a lot of trouble with Mageia today, I couldn't (re-)enable the Core Release (distrib1) mirror list. Will try again tomorrow.

The drag click button is supposed to simulate a held down mouse button on first click and button release on second click, basically a drag operation without having to keep the physical button pressed. This worked today in the Onboard I built from source. No accented characters there, but those did show as expected when long pressing vowels.

I tried to build the qtatspi plugin today, but wasn't able to install lib64qt-devel. urpmi installed all the dependencies and then couldn't download the package itself. Will try this too again tomorrow.
Btw., the README hints that export QT_ACCESSIBILITY=1 has to be set in the environment for the plugin to be loaded.

I've installed Kubuntu, Ubuntu's KDE flavor, to see what is possible, and there auto-show works with various text entries, e.g. in dolphin, reKonq, VirtualBox etc., but not in Konsole. Konsole perhaps uses some custom widget that isn't written with accessibility in mind.
Word suggestions partially work, but learning doesn't happen. Onboard is basically blind to changes in those text entries. No text-changed notifications arrive for Qt widgets, while all is good for GTK widgets. Probably a limitation of the qt-at-spi plugin.

Zen25000 (zen25000) said : #16

Thanks for all you explanations - makes sense now.

I just packaged qtatspi which you can install in Mageia4, it has no docs yet but the lib is there.
I remember seeing some notes in the README so I will look again.

If you want to use my unofficial mirror for all packages you can use:
urpmi.removemedia -a
urpmi.addmedia --distrib http://mtf.no-ip.co.uk/pub/linux/Mageia/distrib/cauldron/x86_64

...then enable Extra Release just while you install qtatspi and onboard. Don't leave it enabled as there is other (possibly broken) stuff in extra ;)
Ignore the warning that they are unsigned packages.

marmuta (marmuta) said : #17

Thank you for the mirror and the instructions. I did install qtatspi from there, added QT_ACCESSIBILITY=1 to /etc/environment and after reboot auto-show worked in QT widgets. There are a number of glitches, though. No learning of word suggestions as in Kubuntu and focus lost+Onboard hiding by hovering over menu bars, for example. I probably can't work around this in Onboard, needs to be addressed in qtatspi.

I found firefox wants to have at-spi2-atk installed, then auto-show and word suggestions fully worked there too.

I tried to install onboard 0.99.0 from your mirror, but it somehow wants to install mono, which we absolutely don't need. I'd try again anyway if you think there is no way around it. Here's the list of packages rpmdrake asked to install
- glib-sharp2-2.12.21-1.mga4.x86_64
- gtk-sharp2-2.12.21-1.mga4.x86_64
- lib64appindicator3-gir0.1-12.10.0-6.mga4.x86_64
- lib64appindicator3_1-12.10.0-6.mga4.x86_64
- lib64dbusmenu-glib4-12.10.2-1.mga4.x86_64
- lib64dbusmenu-gtk3_4-12.10.2-1.mga4.x86_64
- lib64gdiplus0-2.10.9-4.mga4.x86_64
- lib64indicator3_7-12.10.1-1.mga4.x86_64
- lib64mono0-3.2.1-1.mga4.x86_64
- lib64mono2.0_1-3.2.1-1.mga4.x86_64
- lib64sqlite0-2.8.17-17.mga3.x86_64
- mono-3.2.1-1.mga4.x86_64
- mono-data-3.2.1-1.mga4.x86_64
- mono-data-sqlite-3.2.1-1.mga4.x86_64
- mono-extras-3.2.1-1.mga4.x86_64
- mono-wcf-3.2.1-1.mga4.x86_64
- mono-web-3.2.1-1.mga4.x86_64
- mono-winforms-3.2.1-1.mga4.x86_64
- mono-winfxcore-3.2.1-1.mga4.x86_64
- mousetweaks-3.10.0-1.mga4.x86_64

I went on debugging why the click buttons don't work with input-event-source=XInput. There was a bug in Onboard actually, we were not prepared to handle Mageia's 64bit XIDs. This is fixed in revision 1618. If you cherry picked this one too, you could drop the work around with input-event-source=GTK. XInput is the preferred event source, because it allows typing into firefox's url bar and elsewhere without losing keystrokes. See this bug for more info:
https://bugs.launchpad.net/onboard/+bug/905636
If you like, you can get the patch the way you did before, or run
bzr diff -r 1618..1617 lp:onboard

Zen25000 (zen25000) said : #18

No joy yet with qtatspi here, or Firefox auto-show with at-spi2-atk installed.

Yes I was surprised to see mono, but here is the relevant debug output from urpmi:

chosen onboard-0.99.0-3.mga4.x86_64 for onboard|onboard|onboard|onboard|onboard|onboard|onboard|onboard|onboard
selecting onboard-0.99.0-3.mga4.x86_64
requiring mousetweaks,typelib(AppIndicator3) for onboard-0.99.0-3.mga4.x86_64
selecting mousetweaks-3.10.0-1.mga4.x86_64
chosen lib64appindicator3-gir0.1-12.10.0-6.mga4.x86_64 for typelib(AppIndicator3)
selecting lib64appindicator3-gir0.1-12.10.0-6.mga4.x86_64
requiring lib64appindicator3_1[== 12.10.0-6.mga4] for lib64appindicator3-gir0.1-12.10.0-6.mga4.x86_64
chosen lib64appindicator3_1-12.10.0-6.mga4.x86_64 for lib64appindicator3_1[== 12.10.0-6.mga4]
selecting lib64appindicator3_1-12.10.0-6.mga4.x86_64
requiring libdbusmenu-glib.so.4()(64bit),libdbusmenu-gtk3.so.4()(64bit),libindicator3.so.7()(64bit),mono(gdk-sharp)[== 2.12.0.0],mono(glib-sharp)[== 2.12.0.0],mono(gtk-sharp)[== 2.12.0.0],mono(mscorlib)[== 2.0.0.0] for lib64appindicator3_1-12.10.0-6.mga4.x86_64
chosen mono-3.2.1-1.mga4.x86_64 for mono(mscorlib)[== 2.0.0.0]

Maybe you can see something in the BuildRequires and Requires that I currently have: http://svnweb.mageia.org/packages/cauldron/onboard/current/SPECS/onboard.spec?view=markup

With the 1618 patch XInput now works - great!

Assuming that I can get the qtatspi bit going, could the QT_ACCESSIBILITY var be set from within onboard?

I have pushed the version with 1617 patch to Mageia4/Cauldron repo (0.99.0-2) . The 1618 patched one is in my 'extra' repo (0.99.0-3).

marmuta (marmuta) said : #19

at-spi2-registryd is running on your system, right? I guess it has to when auto-show works with gnome wigets. Some package must be still missing. How can I get a list of all installed packages?

I think processes need to have QT_ACCESSIBILITY defined before they start. If Onboard would set it, then all processes launched before would be invisible to AT-SPI. This is better done before login. There are other applications that would be happy about working a11y too, the orca screen reader for example.
I checked, Ubuntu does it in /etc/X11/Xsession.d/90qt-a11y. That file is installed with the at-spi2-core package, which contains at-spi2-registry.
# -*- sh -*-
# Xsession.d script to set the QT_ACCESSIBILITY env variable when accessibility
# is enabled.
#
# This file is sourced by Xsession(5), not executed.

if [ -x "/usr/bin/gsettings" ]; then
 a11y_enabled=$(gsettings get org.gnome.desktop.interface toolkit-accessibility)
 if [ "$a11y_enabled" = "true" ]; then
  export QT_ACCESSIBILITY=1
 fi
fi

I have a hunch that libappindicator pulls in mono. Will test that later.

There are a bunch of gtk2 packages in your onboard.spec that I think (hope) shouldn't be necessary. We switched to GTK-3 and gobject introspection long ago.
BuildRequires: gnome-python-gconf
BuildRequires: pygtk2.0-devel
Requires: GConf2

I would perhaps add some typelibs instead. The Debian package has
         gir1.2-gtk-3.0,
         gir1.2-pango-1.0 (>= 1.29.3),
         gir1.2-glib-2.0,
         gir1.2-gdkpixbuf-2.0,
as Requires. I'll figure out the Mageia packages when I'm back.

Zen25000 (zen25000) said : #20

To get a list of all installed pkgs use:
$ rpm -qa

To fuzzy search available packages (in enabled repos):
$ urpmq -y foo

I can't see any at-spi* service (this returns nothing):
# systemctl -all | grep spi
..but maybe I'm looking in the wrong place.

Removing those two BuildRequires does not break anything so that is noted.
Thanks.
Will try to check more later.

marmuta (marmuta) said : #21

OK, I tried Onboard with the XInput fix from your repository and it works pretty well. Two things

1) The super key label shows an unavailable character. I would change or remove the Ubuntu branding from onboard-defaults.conf.
#superkey-label=
#superkey-label-independent-size=True
This is the default label for all super keys, aka. Windows keys. Default is 'Win'. You could replace it with a Mageia branding character of course, I haven't found one myself, though. You can test super key labels in Preferences->Theme->Customize Theme->Labels->Super Key.

Maybe set the default font instead of 'Ubuntu' to Sans or DejaVu Sans
key-label-font=DejaVu Sans
I think Sans Serif fonts are a good fit for Onboard, but that's up to you.

2) Add runtime dependencies to typelibs. Onboard needs them to access gnome libraries from python. The packages I installed manually a couple of days ago are
lib64gtk-gir3.0
lib64pango-gir1.0
lib64glib-gir2.0
lib64gdk_pixbuf-gir2.0
lib64atspi-gir2.0
'atspi-gir' in particular might be the reason auto-show doesn't work for you. Those package are from my 64bit Mageia Install, I don't know how to install them in an arch-independent way.

> I can't see any at-spi* service (this returns nothing):
> # systemctl -all | grep spi
I would simply do
$ ps ax | grep -i [s]pi
 2446 ? Sl 0:00 /usr/libexec/at-spi-bus-launcher
 2450 ? R 0:22 /usr/bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3
 2453 ? Sl 0:01 /usr/libexec/at-spi2-registryd --use-gnome-session

I don't think systemd is responsible for starting the at-spi2-registryd. On Mageia it seems to be launched only by D-Bus activation, i.e. on the fly by the qtatspi plugin and/or Onboard. The service file is this one:
/usr/share/dbus-1/services/org.a11y.atspi.Registry.service

The other way, starting by autostart desktop file seems broken.
I think /etc/xdg/autostart/at-spi-registryd.desktop is outdated, referencing Gnome 2's GConf. A current one would reference gsettings and the toolkit-accessibility key. It would contain something like
Exec=/usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately
AutostartCondition=GSETTINGS org.gnome.desktop.interface toolkit-accessibility

If you still have problems with auto-show, these are the related packages I have installed:
$ rpm -qa|grep spi
at-spi2-core-2.10.0-1.mga4
qtatspi-1-0.426.0.mga4
libatspi0-2.10.0-1.mga4
lib64at-spi0-1.32.0-6.mga3
at-spi-1.32.0-6.mga3
at-spi2-atk-2.10.0-1.mga4
lib64atspi-gir2.0-2.10.0-1.mga4
lib64atspi0-2.10.0-1.mga4

I would definitely start with
lib64atspi-gir2.0-2.10.0-1.mga4

This one I think is unrelated, but just in case:
$ rpm -qa|grep accessibility
qt4-accessibility-plugin-4.8.5-4.mga4

Finally, yes libappindicator pulled in mono here.

Zen25000 (zen25000) said : #22

Wow - quite a bit to absorb, but it's getting there.

For now I have settled for the win supekey label, but will ask the artwork people for a Mageia icon - does this need to be a .svg?

I have switched to DejaVu

I have added the typelib Requires as suggested.
In Mageia you can find the arch independant package names using e.g.:
urpmq --provides lib64gtk-gir3.0
lib64gtk-gir3.0: lib64gtk-gir3.0[== 3.10.0-2.mga4]
lib64gtk-gir3.0: lib64gtk-gir3.0(x86-64)[== 3.10.0-2.mga4]
lib64gtk-gir3.0: typelib(Gdk)[== 3.0]
lib64gtk-gir3.0: typelib(GdkX11)[== 3.0]
lib64gtk-gir3.0: typelib(Gtk)[== 3.0]
lib64gtk-gir3.0: lib64gtk-gir3.0[== 3.9.14-3.mga4]
lib64gtk-gir3.0: lib64gtk-gir3.0(x86-64)[== 3.9.14-3.mga4]
lib64gtk-gir3.0: typelib(Gdk)[== 3.0]
lib64gtk-gir3.0: typelib(GdkX11)[== 3.0]
lib64gtk-gir3.0: typelib(Gtk)[== 3.0]

So in this case I used "typelib(Gtk)"
(urpmi needs it in quotes BTW)

The at-spi2-registryd is running, and auto show is working now in Firefox.

The new version in Cauldron (0.99.0-3) has the new patch and the changes I have mentioned so far.

Regarding qtatspi and QT_ACCESSIBILITY, I hit a problem that wasted me a whole night. I (possibly mistakenly) added "export QT_ACCESSIBILITY=1" to ~/.bashrc. This totally wrecked KDE. Kate, dolphin etc. segfaulted on launch, and I didn't connect it with that change until I started to backtrack what I had done.

Did you create the /etc/environment file in Mageia? It does not exist by default.

Zen25000 (zen25000) said : #23

After testing in Gnome I find there is no visible icon to open the keyboard unless the floating icon is enabled. Is this the only option in gnome3? (I am not a Gnome user)

Zen25000 (zen25000) said : #24

Ah my mistake - /etc/environment is there - I was probably looking for a dir at the time (it was late).
However using that and qtatspi, on reboot KDE krunner segfaults shortly after login (testing in VM this time):

Application: Run Command Interface (krunner), signal: Segmentation fault
Using host libthread_db library "/lib/i686/libthread_db.so.1".
[Current thread is 1 (Thread 0xb5195980 (LWP 2340))]

Thread 2 (Thread 0xae18cb40 (LWP 2367)):
#0 0xb59adcd0 in g_mutex_unlock () from /lib/libglib-2.0.so.0
#1 0xb5969a72 in g_main_context_acquire () from /lib/libglib-2.0.so.0
#2 0xb596a908 in g_main_context_iterate.isra.22 () from /lib/libglib-2.0.so.0
#3 0xb596aba8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4 0xb6dc94af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4
#5 0xb6d98a33 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4
#6 0xb6d98d59 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4
#7 0xb6c86d7d in QThread::exec() () from /lib/libQtCore.so.4
#8 0xb6d78e54 in QInotifyFileSystemWatcherEngine::run() () from /lib/libQtCore.so.4
#9 0xb6c896cf in QThreadPrivate::start(void*) () from /lib/libQtCore.so.4
#10 0xb6c0dd70 in start_thread () from /lib/i686/libpthread.so.0
#11 0xb5fa871e in clone () from /lib/i686/libc.so.6

Thread 1 (Thread 0xb5195980 (LWP 2340)):
[KCrash Handler]
#6 0xb681fb0c in QAbstractItemView::reset() () from /lib/libQtGui.so.4
#7 0xb6844f59 in QListView::reset() () from /lib/libQtGui.so.4
#8 0xb681384d in QAbstractItemView::setModel(QAbstractItemModel*) () from /lib/libQtGui.so.4
#9 0xb66c266f in QComboBoxPrivate::viewContainer() () from /lib/libQtGui.so.4
#10 0xb66c27a2 in QComboBoxPrivate::adjustComboBoxSize() () from /lib/libQtGui.so.4
#11 0xb66c4355 in QComboBox::setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy) () from /lib/libQtGui.so.4
#12 0xaf31ca3d in KrunnerHistoryComboBox::KrunnerHistoryComboBox(bool, QWidget*) () from /usr/lib/libkdeinit4_krunner.so
#13 0xaf31406d in Interface::Interface(Plasma::RunnerManager*, QWidget*) () from /usr/lib/libkdeinit4_krunner.so
#14 0xaf3107fd in KRunnerApp::initialize() () from /usr/lib/libkdeinit4_krunner.so
#15 0xaf310f25 in KRunnerApp::KRunnerApp() () from /usr/lib/libkdeinit4_krunner.so
#16 0xaf310fae in KRunnerApp::self() () from /usr/lib/libkdeinit4_krunner.so
#17 0xaf31148d in kdemain () from /usr/lib/libkdeinit4_krunner.so
#18 0x0804f5a3 in launch(int, char const*, char const*, char const*, int, char const*, bool, char const*, bool, char const*) ()
#19 0x08050473 in handle_launcher_request(int, char const*) [clone .isra.12] ()
#20 0x08050b11 in handle_requests(int) ()
#21 0x0804c196 in main ()

Also attempting to open dolphin etc. (as before on my main real system).
Executable: dolphin PID: 3358 Signal: Segmentation fault (11) Time: 02/10/2013 11:07:19

The KDE bug reporting tool then also crashes on attempting to report the bug.

Zen25000 (zen25000) said : #25

This seems to be an issue with qtatspi, as on removing it the problem goes away.

marmuta (marmuta) said : #26

> For now I have settled for the win supekey label, but will ask the
> artwork people for a Mageia icon - does this need to be a .svg?
Actually, there's no support for images at all in the label overrides. The Ubuntu logo is just text, a custom Unicode character. I realize we can't expect distributions to patch their fonts, though. There should be support for images. I'll see what I can do.
If this works out, then yes, svg would be preferred, all other images are scalable too. Other formats might actually be accepted, but I never felt the need to try.

Thank you for urpmq --provides, I'll add it to my notes.

I guess I was lucky with QT_ACCESSIBILITY=1, no crashes here.

/etc/environment existed already, apparently 'pam' installed it. I had only added the last line. I used the DVD image to install Mageia, selected KDE and, apart from the build environment, didn't install all that much else.
$ cat /etc/environment
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
QT_ACCESSIBILITY=1

> After testing in Gnome I find there is no visible icon to open the keyboard
Right, I had second thoughts myself about making status-icon-provider=GtkStatusIcon the default in Mageia. With this, the status icon won't appear in the top panel in Gnome shell or Unity (if available). They both need AppIndicator, though last I tried, in Gnome shell GtkStatusIcons would at least show in a hidden panel at the lower right.

I still think it's good to have the status-icon-provider key, but perhaps we should leave it to the users to set it to GtkStatusIcon on request.
Alternatively Onboard could allow for different settings depending on the active desktop-environment. We're detecting window managers already, so this might be possible. I'm not sure it's worth it, though.

Zen25000 (zen25000) said : #27

Sorry about all the messages, but just trying to keep you in the loop.

OK the segfault issue is gone with qt4-accessibility-plugin installed with qtatspi, AND auto-show is now working in dolphin and kwrite.

OK - great progress. I will go away and finish packaging qtatspi properly. :)

marmuta (marmuta) said : #28

The stack trace of Thread 1 starts at #6, do you have the rest? I'm not sure I see the crash location yet.

marmuta (marmuta) said : #29

Oh, ignore that. I missed your post again. Good to hear it works now.

Zen25000 (zen25000) said : #30

We do have a Mageia ttf font - it's packaged as fonts-ttf-mageia. I have tested it as the key font, and it works, however I can find no way to increase the glyph size in relation to the key outline. They display too small by default.

The Mageia logo (with varying quantities of bubbles) is in the font, but I cannot figure out how to use it as the superkey label.

I have removed the typelib requires in our package as these are autogenerated.

My local build system is broken at present so no progress on the qtatspi front until it's fixed.

marmuta (marmuta) said : #31

Ah, fonts-ttf-mageia does it here. The font itself is small, yes. For some reason it was designed to not fill the glyph boxes. You don't have to use it, though. Once installed, the logos show up in the other fonts too. After some trials I settled on this in onboard-defaults.conf, keep what you like:
key-label-font=DejaVu Sans condensed
superkey-label=
superkey-label-independent-size=True

The superkey-label is U+F009. I used Kcharmap (from memory) to pick a logo with bubbles and pasted it into the editor (vim). The editor may or may not display the character correctly, but it should show up fine in Onboard. Python's configparser doesn't seem to allow for alternative unicode notation like \uf009.

superkey-label-independent-size=True is supposed to scale the logo to fill the whole key, but that doesn't fully happen. Probably because the logo font is designed to be so small. The size seems acceptable, though. DejaVu Sans *condensed* helps matching up the different weights.

Zen25000 (zen25000) said : #32

Hey thanks!
I have that working locally, but I'm somewhat confused, as it continues to work after fonts-ttf-mageia has been un-installed.
Could you explain briefly the mechanics of why that happens and whether that font will need to be a require of the package?

marmuta (marmuta) said : #33

Onboard caches stuff at various levels for performance reasons. Keys are rendered to cairo surfaces and only re-rendered when really necessary. It is quite likely that you don't immediately see changes after uninstalling fonts-ttf-mageia. Anything that causes keys to resize should clear the caches, though, but then PangoLayout might still keep glyphs of various sizes around. However, nothing is saved to disk, so restarting Onboard would definitely show the current font situation.

So yes, fonts-ttf-mageia would be required or the logo won't show. Ubuntu installs its logo font by default, so we don't have to care for it there.
We could still go the svg image route (yet to be implemented), but that image has to come from somewhere too.

Zen25000 (zen25000) said : #34

All sorted now - qtatspi-plugin package is now in mga4 and I am currently testing a modified at-spi2-core with a slightly modified 90qt-a11y which installs in xinit.d.

The updated at-spi2-core is in my extra repo.

The only outstanding issues we have are the missing spin-wheel graphics.

Thanks for all your help in bringing this up to date - I have now taken over maintainership of Onboard for Mageia.

marmuta (marmuta) said : #35

> The only outstanding issues we have are the missing spin-wheel graphics.
I did some digging, but no luck yet. There must be something wrong with the Gnome icon theme. GtkSpinButton seems to look for the icons list-add-symbolic and list-remove-symbolic. These exist as svg files, but apparently aren't used. Installing the Adwaita theme, since this seems to be the default for Gnome, did nothing.

> Thanks for all your help in bringing this up to date -
> I have now taken over maintainership of Onboard for Mageia.
Thank you and great to have a maintainer on Mageia. Don't hesitate to ask or file bug reports if you need help.

Launchpad Janitor (janitor) said : #36

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

marmuta (marmuta) said : #37

I believe we can consider the original question answered.

Zen25000 (zen25000) said : #38

The spin-wheel graphics issue is now fixed in Mageia 4 since recent updates to gtk :)

marmuta (marmuta) said : #39

Excellent, here too, after a gigantic update.
I also noticed there is now an official qtatspi-plugin package for the qt at-spi bridge. Great job!

Can you help with this problem?

Provide an answer of your own, or ask Zen25000 for more information if necessary.

To post a message you must log in.