I have a feeling that my flashlight UI designs aren’t very well aligned with the popular opinion, but Artur asked me to weigh in so here’s my input. This interface setup is what MELD uses in lights with dual switches:
The only difference between the two switches should be that one is for UP and one is for DOWN. Any user input that could have directionality will follow the UP/DOWN designation of the switch that is being used. For any other user input, both buttons should function exactly the same.
For example, here’s a simple ramping UI with dual switches that follows this philosophy:
Click either button to turn on. Click either button to turn off. Press and hold either button from off for momentary usage. While on, hold down either button to ramp; UP button goes up, DOWN button goes down. Double click UP switch shortcuts to max; double click DOWN switch shortcuts to min.
This can be extended to further functions with extended commands (triple click, click-click-press, press both simultaneously, etc.). In any case, a command that doesn’t have any up/down association (on/off, battery check, options menu, etc.) doesn’t matter which switch is used, they both act the same. Any command that does have an up/down association (ramping, shortcuts to high or low, advance through menu options, etc.) will choose the direction based on which button is pressed.