sxhkd
sxhkd copied to clipboard
sxhkd does not properly recognize all keysys mapped to keycodes that are not accessed with press or shift+press
When mapping certain keys in keysys such as ¤ and ¢ in sxhkdrc they do not function as intended, if they are not accessed via keycodes with press or shift+press (ie Mode_switch or ISO_Level3_Shift)
super + Return
$TERMINAL
super + ¢
$TERMINAL
the first instance of the bind works as intended, but the second does not.
For reference, here is a list of all keysys. https://wiki.linuxquestions.org/wiki/List_of_keysyms
At the very least, adding support for all keysys that are supported by Xmodmap would be appreciated, as most people would be binding these keys to their keyboards https://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap
Try using cent
instead of ¢
..
super + cent
$TERMINAL
Still doesn't work. If I map ¢ to a normal, or shift, on a keycode, it seems to work fine.
After doing some more digging I've found out that at sxhkd.c:231, it seems to only allow shift, caps lock, and scroll lock to pass though and have normal behavior in modifcation of what is pulled from the keycodes.
If it was possible to optionally add modifier keys to this list (via the config) that would probably solve the issue.
Some extra pointers after snooping around more:
grab_key_button
function in grab.c
get_lock_fields
in parse.c
These functions don't account for Mode_switch
or ISO_Level3_Shift
even though they probably should, so that looks like something that probably should be changed as well.
Also in some areas there's a straight up blacklist on reading modkeys, I'm unsure if on these, it includes shift or not in these evaluations of XCB_MOD_MASK_ANY
but I think it would be worth checking out if there are still issues.