Kupfer (pandora's box)

<Super>space shortcut not working on natty

Reported by Eric Hartmann on 2011-04-22
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
kupfer
Undecided
Unassigned

Bug Description

I'm using Kupfer with natty (gnome 2.32 desktop, not the unity one).
I'm unable to use the <Super>space shortcut.
I've tried the python sample program in the keybinder library and it does not work also.
I have no other keybinding that should be conflicted (checked in compiz settings & gnome keyboard shortcuts).

Something strange is that Super+Shift+Space is working for the shortcut <Super>space. So it may be in the keybinder library.

Unity uses a lot of Super bindings. Can you be sure that it is not taken by Unity?

All indications point towards 'Super+space' being grabbed by unity. In that case it can't be used.

libkeybinder will grab related keybindings like Shift+Super+space, and in this case the bug in libkeybinder is mostly that it should fail on this keybinding completely, instead of binding it partially.

For kupfer: wontfix: unity uses this shortcut, use something without Super?

See also Kupfer FAQ: https://live.gnome.org/Kupfer/FAQ#Can_I_use_Super.2B-Space_in_Unity.3F

Changed in kupfer:
assignee: nobody → Ulrik Sverdrup (ulrik-sverdrup)
status: New → Won't Fix
Eric Hartmann (hartmann-eric) wrote :

Sorry for the long delay.
I'm not using Unity as a desktop, I'm just using Gnome 2.32 without unity.
Other applications like synapse are able to bind the <Super>+Space shortcut without trouble.
Of course, I can use another key.
Thanks for having looked at this bug.

You need to make sure Super+Space is not taken by another application, something that is not running when kupfer is starting. I'm pretty sure it has to be something like that.

Eric Hartmann (hartmann-eric) wrote :

I've checked on compiz, killed every applications.
Without Kupfer, nothing seems to be launched with Super + Space, but is there any good method to be sure that there is not another application catching the key ?

Rob Kiggen (rob-kiggen) wrote :

As of today Kupfer doesn't respond to Super + Space anymore, instead it gets activated when I enter Super + Shift + Space.
I suspect it has something todo with the updates I ran today, because until today Kupfer worked just fine when I entered Super + Space. Only Kupfer has the Super + Space keybinding, if I bind other programs to Super + Space they respond correctly.

I'm running Linux Mint XFCE (XFCE version 4.8). I've included a file with the performed updates, perhaps this can give you a clue as where the problem occurs.

Kind regards,

Rob Kiggen

Changed in kupfer:
status: Won't Fix → New

Thanks for providing this information.

Does kupfer produce any output when this happens? Anything similar to "WARNING **: Binding '<Control>space' failed!" ?

It can be that there is a bug in libkeybinder or something that libkeybinder uses. I'll need someone affected to compile libkeybinder manually using "make CFLAGS=-DDEBUG=1" to produce a library with debug output. Someone with time can attempt to find me on jabber or in #kupfer irc channel on freenode. http://kaizer.se/wiki/contact/

Also, are you using multiple keyboard layouts, which layout is the default layout and which are you using? This is quite complicated, but libkeybinder will try to use the default (first) layout only.

Rob Kiggen (rob-kiggen) wrote :

Hi Ulrik,

that is it!

Usually I only use my laptops keyboard (US Qwerty keyboard), but today I worked 8 hours at a clients site and used an external keyboard which had the Belgian keyboard layout. I also performed the aforementioned updates after which I assumed Kupfer stopped responding.

But just now I decided to remove the obsolete Belgian keyboard layout and Kupfer started to respond again to Super + space.

What I don't understand is that it didn't affect other programs if I bound them to Super + space, only Kupfer displayed this strange behavior.

Well libkeybinder tries to be smart about this so there can certainly be problems with special cases. Thanks a lot again for the information, I'll try to reproduce it using something similar.

Rob Kiggen (rob-kiggen) wrote :

Steps to reproduce the problem (in my case):

1. Start with default US International (with dead keys) Keyboard Layout;
2. Add Keyboard layout Belgium (Iso standard);
3. Reboot

As long as I didn't reboot Kupfer responded just fine, but from the minute I rebooted, Kupfer only responded to Shift + Super + Space. Upon removal of the 2nd keyboard layout Kupfer worked just fine (even without rebooting).

Eric Hartmann (hartmann-eric) wrote :

Hi,

Here is the debug log.

With only french keyboard layout :

/usr/share/kupfer/kupfer/ui/browser.py:636: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed
  requisition.width, requisition.height = self.__child.size_request ()

** (kupfer.py:13314): CRITICAL **: cr_parser_new_from_buf: assertion `a_buf && a_len' failed

** (kupfer.py:13314): CRITICAL **: cr_parser_set_sac_handler: assertion `a_this' failed

(kupfer.py:13314): librsvg-WARNING **: Error setting CSS SAC handler

** (kupfer.py:13314): CRITICAL **: cr_parser_destroy: assertion `a_this && PRIVATE (a_this)' failed
Grabbing keyval: 32, vmodifiers: 0x4000000, name: <Super>space
grab/ungrab keycode: 65, lev: 0, grp: 0, modifiers: 0x4000043 (consumed: 0x3)
grab/ungrab keycode: 65, lev: 1, grp: 0, modifiers: 0x4000041 (consumed: 0x1)
grab/ungrab keycode: 65, lev: 2, grp: 0, modifiers: 0x40000c0 (consumed: 0x80)
grab/ungrab keycode: 65, lev: 4, grp: 0, modifiers: 0x4000044 (consumed: 0x4)
[kupfer.ui.browser] WindowController: Trying to register <Super>space to spawn kupfer.. success
[kupfer.core.sources] PeriodicRescanner: Starting new campaign, interval 3 s
 Got KeyPress keycode: 65, modifiers: 0x51
Translated keyval: 32, vmodifiers: 0xc000000, name: <Hyper><Super>space
Calling handler for '<Super>space'...
Got KeyRelease!

I've added US International keyboard as first layout (but not the selected one, I'm still using french keyboard layout) :

** (kupfer.py:14707): CRITICAL **: cr_parser_destroy: assertion `a_this && PRIVATE (a_this)' failed
Grabbing keyval: 32, vmodifiers: 0x4000000, name: <Super>space
grab/ungrab keycode: 65, lev: 0, grp: 0, modifiers: 0x4000040 (consumed: 0x0)
[kupfer.ui.browser] WindowController: Trying to register <Super>space to spawn kupfer.. success
Got KeyPress keycode: 65, modifiers: 0x50
Translated keyval: 32, vmodifiers: 0xc000000, name: <Hyper><Super>space
Calling handler for '<Super>space'...

It's working with this workaround.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers