I think some of that can be dealt with by the Tool Invocation section of the Canvas Input Settings (but maybe not so much for brush swapping):
But see these comments by @angrymidget4728 when trying a similar thing in a different but related topic:
Enhanced Popup Palette (and more) for a complete UI-less & keyboard-less workflow - #14 by angrymidget4728
Go to the beginning of that topic to see how that particular situation started.
