In addition to the file's syntax, defined above, binding actions to keystrokes or mouse clicks requires a string argument. This string argument describes which keys and buttons along with which modifier keys are to be bound.
The binding grammar has tokens from three groups:
<X11/keysym.h>, with the "XK_" prefix removed, except for the
following symbols which are not tokens: Shift_L Shift_R Control_L Control_R Meta_L Meta_R Alt_L Alt_R Super_L Super_R Hyper_L Hyper_R Caps_Lock Shift_Lock All of the symbols in this group are CASE-SENSITIVE.
Shift, ShiftMask Control, ControlMask Mod1, Mod1Mask Mod2, Mod2Mask Mod3, Mod3Mask Mod4, Mod4Mask Mod5, Mod5Mask Alt, AltMask Meta, MetaMask Hyper, HyperMask Super, SuperMask All of the symbols in this group are case-insensitive.
Button1 Button2 Button3 Button4 Button5 All of the symbols in this group are case-insensitive.
You can see what keysyms your keystrokes generate by launching the X program
xev(1) and typing into the window. See also
xmodmap(1) for more information. The buttons are usually
interpreted as follows:
Button1 is the left mouse button.
Button2 is the middle mouse button.
Button3 is the right mouse button.
Button4 is mouse wheel down.
Button5 is mouse wheel up.
The informal grammar for binding to keystrokes is:
|"
The grammar to binding to mouse events is equivalent to that for binding to keystrokes except that buttons are used instead of KeySyms.