I know you prefer the defaultKeymap to be treated as immutable, but so far this is the only way I could achieve the very distinct behavior of key `q`:

    - when entering record mode, keymap receives ['q', 'character']
    - but when exiting record mode, keymap receives ['q']

It's a shame that ['q', 'character'] and ['q'] are mutual-excluding each other in the defaultKeymap,
so I have no choice but to swap them.