Implement keyboard shortcuts.
Merge branch 'wip-shortcuts' into integration