another change in this commit is having a separate render
function for the greenhouse caller to handle ui
this means there isnt a hardcoded space at the bottom to
display command and status line
this is a simple command that returns a single key from the user.
this can be used to read keystrokes in an interactive program
like how greenhouse (the pager) does it