They're not cheap! You can also choose latching or momentary buttons when you purchase. I'm using momentary to work alongside an M-Unit.
And good question. I will be using a Motogadget M-Unit to wire the motorcycle which takes care of most of the below functions.
Here's an idea on how I think will run them. Left side
Top button: Left indicator. Press to start, press to stop. Will time out after 30sec.
Bottom button: Horn.
Back button: M-Unit Config. Right side
Top button: Right indicator. Press to start, press to stop. Will time out after 30sec.
Bottom button: Headlight. Always on. Tap to flash highbeam, hold down to turn on highbeam. Hold down longer to turn headlight off.
Back button: Not assigned as of yet. Maybe electric starter if I decide to get that working or a momentary kill switch.
Hope that all makes sense!