Dedupe keyboard, add global state for pause and mute
fix sticky pause/mute, correctly initialize default state