1

So I want to create a keybinding using my sxhkd that functions like the binding to create panes in tmux.

I have created bindings before so I know that I can use xev to print out key names, here is the output when pressing % then " :

KeyPress event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8068709, (324,604), root:(325,624), state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False

KeyPress event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8069165, (324,604), root:(325,624), state 0x1, keycode 14 (keysym 0x25, percent), same_screen YES, XLookupString gives 1 bytes: (25) "%" XmbLookupString gives 1 bytes: (25) "%" XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8069236, (324,604), root:(325,624), state 0x1, keycode 14 (keysym 0x25, percent), same_screen YES, XLookupString gives 1 bytes: (25) "%" XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8069615, (324,604), root:(325,624), state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

KeyPress event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8090326, (324,604), root:(325,624), state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False

KeyPress event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8090442, (324,604), root:(325,624), state 0x1, keycode 48 (keysym 0x22, quotedbl), same_screen YES, XLookupString gives 1 bytes: (22) """ XmbLookupString gives 1 bytes: (22) """ XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8090593, (324,604), root:(325,624), state 0x1, keycode 48 (keysym 0x22, quotedbl), same_screen YES, XLookupString gives 1 bytes: (22) """ XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x2200001, root 0x9f, subw 0x0, time 8090652, (324,604), root:(325,624), state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

So in my ~/.config/sxhkd/sxhkdrc I have put:

super + percent
    bspc window -p right && urxvt
super + quotedbl 
    bspc window -p down && urxvt

Now when I restart sxhkd and press super + % keys nothing happens, but the other binding works perfectly.

  • Why is sxhkd not recognising the percent key?
  • Does sxhkd identify the percent key as a different name from the one given by xev?

Edit: I did some more searching in the sxhkd git repo and found the file which stores the keysym numbers for each key.

In parse.c:

{"percent"                     , 0x0025}

I tried changing it to 0x25 and recompiling but still no luck. :(

2

So after alot of testing I have come up with some solutions of my own.

It turns out the percent key is recognised just fine but just doesnt work together with the super key

Option 1) Add @ infront of the key

 @super + percent
     bspc window -p right && urxvt

This works but only functions after you release a key

Option 2) Replace super with any other key

I decided to go with option 2 and replace super with ctrl

ctrl + {percent,quotedbl}
    bspc window -p {right,down} && urxvt

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.