waycrate / swhkd

Sxhkd clone for Wayland (works on TTY and X11 too)
https://git.sr.ht/~shinyzenith/swhkd
BSD 2-Clause "Simplified" License
676 stars 47 forks source link

Key release events seem to be shadowed if a corresponding key press event is defined #159

Closed epetousis closed 2 years ago

epetousis commented 2 years ago

Version Information:

Describe the bug: I'm trying to set up a simple config for a push-to-talk-style binding. I want to run a command when I press a button, and a command when I release that same button. swhks appears to only be running one of the two key down/up events that are bound.

Expected behavior: swhks should run both the "activate" command as soon as I press the F18 key, and the "deactivate" command as soon as I release the F18 key.

Actual behavior: swhks only runs the "activate" command.

To Reproduce:

My config:

f18
    sh ~/discord-ptt.sh activate

@f18
    sh ~/discord-ptt.sh deactivate

Any commands would work, of course - I'm just adding my own for completeness.

Additional information:

I haven't had much of a dig through the code, so it's entirely possible I'm doing something wrong or missed a flag.

Shinyzenith commented 2 years ago

Thanks for the thorough report! @EdenQwQ hi eden could this possibly be a parser issue?

epetousis commented 2 years ago

This is actually an issue in swhkd not swkhs, my bad. Looks like the hotkey handler loop exits too early. If I change line 352 in swhkd/daemon.rs to be continue; rather than break;, my release key starts working as expected.

Shinyzenith commented 2 years ago

Perfect! Feel free to send a pr ❤️