-
Notifications
You must be signed in to change notification settings - Fork 778
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hotkeys do not work on certain keyboard mappings... #500
Comments
Thank you for this very detailed investigation! I'll fix the crash you pointed, but that doesn't solve the actual issue. I spent a lot of time fighting with all kinds of different bugs in One option could be KGlobalAccel, but at the moment it's Linux-only. Maybe it could solve the problem at least for KDE users. I am all for having a one unified library, that handles global shortcuts. We could try to polish someone's implementation, or start from scratch. Also worth noting that Wayland-based DEs are coming as well, so another backend might be required soon. |
I'm currently trying ton understand the x window system protocol and the differences between the client libraries xlib and libxcb. Unfortunately the xcb documentation is virtually not existant. But the protocol is the same so I try to understand xcb by reading xlib documentation. Well while reading I recognized that modifier mappings arent considered either. |
I've just fixed the crash, once again thanks for reporting. It's really hard to force myself into digging into the XCB hell. :( I wonder if grabbing all key codes returned by |
For a temporary solution (more like a workaround) resetting the shortcut and enabling Zeal to start on Fedora 32, see below. Problem detailsAfter assigning a global keyboard shortcut and pressing "Apply" on Fedora 32, Zeal abruptly exits. Then, when called from the desktop shortcut it does not start. The incident reporting tool reports an error that happened in the function When calling Zeal from console, the output is: $ zeal
QSocketNotifier: Can only be used with threads started with QThread
zeal.core.applicationsingleton: Starting as a primary instance. (PID: 5115)
[1] 5115 segmentation fault (core dumped) zeal SolutionTo start Zeal, you can disable the shortcut directly in the configuration file. Zeal stores config at
To remove the shortcut, remove whatever is after the equality sign ("="), leaving the declaration empty as below:
Save the file and Zeal should start normally now. When Zeal.conf is not thereIn some cases, the configuration file may be located elsewhere. If that is true, to identify the path, try: |
@kocielnik thanks for the detailed report. It's a different problem. Can you create a separate issue? Please add information about Zeal version. A full stack trace would be helpful as well. |
@trollixx just a note because i was fed up with xcb and moved to QHotkey. maybe you should check it. it works quite well for me (in albertlauncher). Ill close this one because it is pretty old |
I recognized that several hotkeys do not work on my machine (arch linux, xorg-server 1.18.1). I even encountered a segfault. The problematic line is
native = keycodes.data()[0];
. When there is no keycode this will result in a segfault.I debugged the code and realized that the keys reported by the nativeEventFilter are different from the ones that I wanted to be grabbed before via
xcb_grab_key_checked
. The reason why my hotkey has no effect, is that the key reported by the nativeEventFilter is the one inkeycodes.data()[1]
. keycodes.data()[0] is adiaeresis (german Ä). Now I know that after registering Alt+Y, I can open zeal by pressing Alt+Ä.Well I printed my keycode mapping like this (xmodmap -pke does it as well)
which looks like this (snippet)
And, yes, keysym Y (keycode 52 on my keyboard) is listed in the mapping of keycode 48 ( keysym Ä on my keyboard)... I stopped here working on this. Well this stuff is boring and annoying. Even xcb itelf states
I wish nobody to have to do this again, so I want to ask, if you are willing to make some kind of qxt-community organization (or soimething like that, doesnt have to be qxt). Qxt has been discontinued and there are several projects that are maintaining qxtglobalshortcut on their own, e.g. CopyQ, zeal, albert (mine, partially). If we'd unite our effort we could have more stability for less effort.
I think of a separated library for hotkey handling, not even necessarily using Qt.
The text was updated successfully, but these errors were encountered: