A screenshot from the VIA application, showing the button assignments of my Ploopy mouse. Side buttons output pageup and pagedown keys, secondary left button is assigned the macro "M0" which simply outputs the keys "control" and "up arrow" to trigger macOS show all windows. The secondary right button activates layer 1 (the default layer, this one, is considered layer 0)
This is a screenshot of the VIA software showing layer 1 of my Ploopy mouse. The 2 side buttons are set to the Home and End keys. Secondary left button is again set to Macro 0, which is "control + up arrow". Left button is set to Macro 1, which is "command + c" to copy, and right button is set to Macro 2, which is "command + v" to paste. Middle button and DPI change button are left unassigned.
My #Ploopy mouse uses #QMK or #VIA to program its buttons. Which means I can do funky things like have layers, complex macros, all without overly heavyweight "driver" ad software like #logitech or #razor
Such a great feature that no other mice have (that I know of)