Is there a way to have a non-blocking version that returns `None` or raises an exception if there no current key? Or, even better, to have a timeout, and then do the above after the timeout has passed and no key was pressed or no character entered, respectively?