add option to persist a keyboard listener