xmodmap
1. keycodes are generated by the hardware and vary by keyboard.
2. keysyms are logical names. xmodmap lets you say which keysym a keycode will emit. you can say that will emit a when unshifted, A when shifted.
3. modifiers are another layer of indirection. the keysyms Alt_L and Alt_R can generate modifier Alt. The modifers include shift, lock, control, mod[1-5].
4. applications listen for these modifiers. so bbkeys is described in terms of mod1, mod2, for example.