def __enter__(self): # init curses and it'screen wrapper self.screen = curses.initscr() self.display = Display(self.screen, self.encoding) # keyhandler self.keyhandler = KeyHandler(self.screen) # create view self.view = SelectorView(percol=self) self.command_candidate = SelectorCommand(self.model_candidate, self.view) signal.signal(signal.SIGINT, lambda signum, frame: None) # handle special keys like <f1>, <down>, ... self.screen.keypad(True) curses.raw() curses.noecho() curses.cbreak() # Leave newline mode. Make percol distinguish between "C-m" and "C-j". curses.nonl() return self