Could we not just add another level of indirection here. It seem to me
that the problem is that we treat mouse buttons differently to
keys. We don't say 'the third key on the bottom row', we say 'c'. Why
not do the same with mouse buttons. Have buttons with logical names
(select, enact, paste or some such) and use these in the maps. Then let
the users bind these buttons wherever they like.
Dave