lxqt/lxqt-globalkeys

Super_L "Show/hide main menu" binding blocks WM keybinds using Win key

rkitover opened this issue · 7 comments

When I enable the Super_L "Show/hide main menu" binding in lxqt-globalkeys, my Openbox keybindings that use the Win key as a modifier such as W-Right to tile a window right no longer work.

Possible Solution

I realize that as LXQT now considers itself WM agnostic it is not responsible for WM incompatibilities, I'd just like some guidance as to the most appropriate place to fix this if it can be fixed.

Steps to Reproduce (for bugs)
  1. Make a keybind in the Openbox rc.xml such as W-e to run pcmanfm-qt.
  2. Enable Super_L for "Show/hide main menu" in lxqt-globalkeys.
  3. Try to use the Openbox W-e keybinding, it won't work.
Context

I'd like to be able to use the Super_L keybinding, as I'm used to it from things like Windows and KDE, without it interfering with Openbox. I could probably just move some of my Openbox keybindings to lxqt-globalkeys instead, although I'm not sure how I'd make it do things like tiling keybindings.

System Information
  • Distribution & Version: Gentoo unstable, systemd profile
  • Kernel: 5.19.0-rc6-x86_64+
  • Qt Version: 5.15.5
  • liblxqt Version: 1.1.0
  • lxqt-build-tools Version: 0.11.0
  • Package version: lxqt-globalkeys 1.1.0

I'm afraid we can do nothing about Openbox. It isn't our app. Nobody can either; its development stopped a long time ago.

But is this definitely a problem with Openbox or could it potentially be fixed in lxqt-globalkeys? If so, I am willing to do the work for that.

is this definitely a problem with Openbox

As you already know, KWin doesn't have this issue. But even if KWin had it, it would be a bug in KWin.

I am willing to do the work for that.

Openbox problems can't be fixed in lxqt-globalkeys. They shouldn't be circumvented by lxqt-globalkeys either (if possible at all); we don't add WM-specific patches.

I just tried this in JWM, which is the WM I switched to from Openbox and is one of the most actively maintained WMs right now.

The behavior in JWM is the same, the Super_L key blocks JWM keybindings using Mod4.

This leads me to think that this problem may not necessarily be a WM bug.

I will take a look if some kind of solution exists that is not particularly WM-specific and ask you.

Also, I found a workaround for all of this. The command xdotool supports performing many WM operations such as moving/resizing windows, switching desktops, etc.. So most keybindings can be done in lxqt-globalkeys without involving the WM. Maybe I'll add some documentation/examples about this in the right place.

So apparently this doesn't work in KWin either. The Super_L keybind in lxqt-globalkeys will block any WM keybind that is a combination of Super_L/Win/Mod4 with another key.

This is problematic because the user may want to have things like tiling keybinds in their WM such as Win-Right to tile to the right half of the screen.

It may be possible to handle listening for the press and release of Super_L or other single modifier keys by themselves and not break other keybindings.

Simple solution: don't use it for the menu if you need those from the WM (and all of them can be changed to something else too)

There are various workarounds sure, I just think that the Super_L by itself to open the taskbar menu/search is such an ubiquitous thing that we should fix it if possible.