Sxhkd keybindings not working when started from bspwmrc

IMPORTANT: I am using manjaro architect with bspwm installed afterward, not manjaro bspwm edition.

I am using the default bwpwmrc and sxhkdrc from /usr/share/doc/bspwm/examples, with only one slight modification: substituting urxvt for termite.

The problem is that with the default configs, the keybindings just don’t work. Super + Return doesn’t bring up termite, Super + hjkl don’t move around the windows, etc.

However, if I add termite & to the bspwmrc and then run pkill -x sxhkd followed by sxhkd & in termite after the window manager has started, the keybindings work.

Does anyone have any idea why sxhkd works when started from the terminal but not when started from bspwm?

Hi. Not exactly the answer to your question, but maybe this could help. If you have installed bspwm-manjaro and manjaro-bspwm-settings packages, then example config files are at /etc/skel/.config/bspwm and /etc/skel/.config/sxhkd. You can copy them to your ~/.config/bspwm and ~/.config/sxhkd directories and edit as needed.

1 Like

Thank you for your reply.

I may try what you suggested when I boot back into manjaro (I’m on a dual boot setum rn), but I doubt that it will make a difference - if the bare-bones bspwmrc and sxhkdrc at /usr/share/doc/bspwm/examples don’t work, I don’t see any reason why the more complicated manjaro ones would. But it’s still worth a try I suppose.

After doing a little more testing, I can confirm that this is not a problem with something else in my home directory (such as the .xinitrc or the .xprofile), because the same problem occurs when I make a new user, only add the .config/bspwm/bspwmrc and .config/sxhkd/sxhkdrc files.

I can also confirm that the bspwmrc is working, because sxhkd does start (i.e. pgrep -x sxhkd does print a PID), but for some reason none of the keybindings work. If I have a window open, pressing one of the registered keybindings just makes the current window appear to loose focus (the cursor changes from filled in to a hollow box) for a few milliseconds. If I press a key combination that is not mapped, it simply inputs that key as normal. So the keybindings are being registered by sxhkd, they just aren’t executing the desired commands.

bspwm-manjaro also includes /usr/bin/bspwm-session which is used to start session from DM or xinit. First it runs commands from ~/.config/bspwm/autostart, then it starts sxhkd, and then bspwm. I can’t explain why it is done this way, but that is how it has worked without problems on my system for several years.