我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用curses.initscr()。
def __init__(self, file): self.file = file self.scr = curses.initscr() self.scr.border() self.scr_height, self.scr_width = self.scr.getmaxyx() self.text_win = curses.newwin(self.scr_height - 1, self.scr_width, 1, 0) self.file_text = file.content if self.file_text != None: self.text_win.addstr(self.file_text) curses.noecho() #curses.start_color() #curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN) if self.file.exists: self.start_editor() else: curses.endwin() gc.error('An error occurred while editing this file.')
def __init__(self, username): os.environ.setdefault('ESCDELAY', '25') # shorten esc delay self.username = username # set up IRC self.channel = "##HTP" # set up curses self.scr = curses.initscr() self.disconnect = False curses.start_color() self.scr_height, self.scr_width = self.scr.getmaxyx() self.chatbar = curses.newwin(5, self.scr_height - 1, 5, 10) self.msg_text = '' self.logfile = '../data/irc.txt' self.log_text = [] # curses color config curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN) # start the client try: curses.wrapper(self.start_loop()) except Exception as e: self.scr.addstr(2, 0, str(e), curses.A_REVERSE) # client game loop
def setup(): """ sets environment up and creates main window :returns: the main window object """ # setup the console mmask = curses.ALL_MOUSE_EVENTS # for now accept all mouse events main = curses.initscr() # get a window object y,x = main.getmaxyx() # get size if y < 24 or x < 80: # verify minimum size rqmts raise RuntimeError("Terminal must be at least 80 x 24") curses.noecho() # turn off key echoing curses.cbreak() # turn off key buffering curses.mousemask(mmask) # accept mouse events initcolors() # turn on and set color pallet main.keypad(1) # let curses handle multibyte special keys main.clear() # erase everything banner(main) # write the banner mainmenu(main) # then the min and menu main.attron(CPS[RED]) # make the border red main.border(0) # place the border main.attroff(CPS[RED]) # turn off the red curses.curs_set(0) # hide the cursor main.refresh() # and show everything return main
def initialize(self): # initialize curses self._stdscr = curses.initscr() # TODO generalize this: begin_x = 0 begin_y = 0 # self._info_win_width = 20 self._info_win_height = 4 self.height, self.width = self._stdscr.getmaxyx() self._win = self._stdscr.subwin(self.height, self.width, begin_y, begin_x) # create info box with reward and time self._info_win = self._win.subwin(self._info_win_height, self.width, 0, 0) curses.noecho() curses.cbreak()
def initscr(): import _curses, curses # we call setupterm() here because it raises an error # instead of calling exit() in error cases. setupterm(term=_os.environ.get("TERM", "unknown"), fd=_sys.__stdout__.fileno()) stdscr = _curses.initscr() for key, value in _curses.__dict__.items(): if key[0:4] == 'ACS_' or key in ('LINES', 'COLS'): setattr(curses, key, value) return stdscr # This is a similar wrapper for start_color(), which adds the COLORS and # COLOR_PAIRS variables which are only available after start_color() is # called.
def __init__(self): self.selected_index_stack = [0] self.returnString = "" self.play_in_room = None self.dir = DirBrowse() self.selected_index = 0 self.selected_column = 0 self.window = curses.initscr() curses.start_color() curses.noecho() curses.cbreak() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_RED) curses.init_pair(5, curses.COLOR_YELLOW, curses.COLOR_BLUE) self.window.keypad(1) self.draw_ui()
def __init__(self, hosts): self.stdscr = curses.initscr() curses.start_color() self.height, self.width = self.stdscr.getmaxyx() curses.cbreak() curses.noecho() self.stdscr.keypad(1) self.hosts = hosts self.format = ( '%(hostname)10.10s ' '%(pid)7.7s ' '%(ppid)7.7s ' '%(pcpu)6.6s ' '%(rss)5.5s ' '%(command)20s' )
def main(): try: screen = curses.initscr() size = screen.getmaxyx() sky = generateSky(size[0]-1, size[1]-1, 0.025) while True: if size[0] != screen.getmaxyx()[0] and size[1] != screen.getmaxyx()[1]: size = screen.getmaxyx() sky = generateSky(size[0]-1, size[1]-1, 0.05) animateSky(sky) renderSky(screen, sky) time.sleep(1) curses.endwin() except KeyboardInterrupt: curses.endwin() except: curses.endwin() traceback.print_exc()
def test_main_menu_config_global_module_removal(self, write_config_mock): """Test removal of a module named Global.""" original_length = len(self.ec2rl._modules) global_mod = ec2rlcore.module.get_module("test/modules/bad_mod.d/global.yaml") self.ec2rl._modules.append(global_mod) self.assertNotEqual(len(self.ec2rl._modules), original_length) curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) with contextlib.redirect_stdout(self.output): self.assertTrue(self.ec2rl.menu_config()) self.assertEqual(len(self.output.getvalue()), 129) self.assertTrue(re.match(r"^\n----------\[Configuration File\]----------\n\nConfiguration file saved:\n" r"/var/tmp/ec2rl/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}_[0-9]{2}_[0-9]{2}.[0-9]{6}" r"/configuration.cfg\n$", self.output.getvalue())) self.assertEqual(len(self.ec2rl._modules), original_length) self.assertTrue("Global" not in self.ec2rl._modules) self.assertTrue(write_config_mock.called)
def test_menu_config_global_arg_selection(self): """Test setting the Global arg 'only-domains' to 'performance'""" curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch(curses.KEY_DOWN) curses.ungetch(" ") curses.ungetch(curses.KEY_DOWN) curses.ungetch(" ") curses.ungetch(curses.KEY_DOWN) curses.ungetch(" ") # This key sequence may need to change if the Global args in the menu are modified. curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) curses.ungetch("\n") self.menu() self.assertFalse(self.menu["Configure global module arguments"]["only-domains"]["application"].toggled) self.assertFalse(self.menu["Configure global module arguments"]["only-domains"]["net"].toggled) self.assertFalse(self.menu["Configure global module arguments"]["only-domains"]["os"].toggled) self.assertTrue(self.menu["Configure global module arguments"]["only-domains"]["performance"].toggled)
def test_menu_config_global_arg_clear_int_index(self): """ Test setting that the "Clear" footer option sets the Concurrency value to an empty string. Verify using an integer index (e.g. list access). """ curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_LEFT) curses.ungetch(curses.KEY_LEFT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch(curses.KEY_RIGHT) curses.ungetch(curses.KEY_RIGHT) # This key sequence may need to change if the Global args in the menu are modified. curses.ungetch("\n") curses.ungetch("1") curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch("\n") self.menu() self.assertEqual(self.menu["Configure global module arguments"][3].get_value(), "")
def test_menu_config_menu_scrolling_up(self): """Test paging down to the bottom of the Modules sub-menu thens scrolling up to the top.""" curses.initscr() # Exit the menu curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) # Test scrolling up to the top for i in range(len(self.modules)): curses.ungetch(curses.KEY_UP) # Go to the bottom of the Modules sub-menu for iteration in range(15): curses.ungetch(curses.KEY_NPAGE) # Get into the Modules submenu curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) self.assertTrue(self.menu())
def test_menu_config_menu_scrolling_down(self): """Test scrolling down through the Modules sub-menu.""" curses.initscr() # Exit the menu curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) # Test scrolling down, line by line for i in range(len(self.modules)): curses.ungetch(curses.KEY_DOWN) # Get into the Modules submenu curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) self.assertTrue(self.menu())
def test_menu_config_menu_scrolling_down_single_page(self): """Test scrolling down through the Global sub-menu.""" curses.initscr() # Exit the menu curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) # Test scrolling down, line by line, and one past the bottom for i in range(len(self.menu["Configure global module arguments"])): curses.ungetch(curses.KEY_DOWN) # Get into the Global submenu curses.ungetch("\n") self.assertTrue(self.menu())
def test_menu_config_toggle_all_off(self): """Test that "N" deselects all items in the only-classes menu.""" curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) # Deselect all items curses.ungetch("N") curses.ungetch("\n") curses.ungetch("\n") self.assertTrue(self.menu()) for item in self.menu["Configure global module arguments"]["only-classes"]: self.assertFalse(item.toggled)
def test_menu_config_toggle_all_on_mixed_items(self): """Test that "N" deselects then selects "perfimpact" in the Global args menu.""" curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) # Select all items (turns perfimpact on) curses.ungetch("N") # Deselect all items (perfimpact is already off) curses.ungetch("N") # Toggle perfimpact off curses.ungetch(" ") curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch("\n") self.assertTrue(self.menu()) self.assertTrue(self.menu["Configure global module arguments"]["perfimpact"].toggled)
def test_menu_config_view_module_help(self): """ Test drawing the menu, selecting the modules menu, a module, and the module help, and then exiting the menu. """ curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") # _draw_notifications only reacts to ord("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) self.assertTrue(self.menu())
def test_menu_config_view_long_module_help(self): """ Test drawing the menu, selecting the modules menu, a module, and the module help, and then exiting the menu. In this test the help string is more (separated) lines than the window and should be truncated by the _draw_notification method. """ # TODO working here num_messages = 0 while num_messages < 100: self.menu["View all modules"]["aptlog"].helptext += "a\n" num_messages += 1 curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) self.assertTrue(self.menu())
def test_menu_config_set_module_value(self): """Test drawing module option menu, configuring the period module option, and then exiting the menu.""" curses.initscr() curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch(curses.KEY_RIGHT) curses.ungetch("\n") curses.ungetch("1") curses.ungetch("\n") curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch(curses.KEY_DOWN) curses.ungetch("\n") curses.ungetch(curses.KEY_DOWN) self.assertTrue(self.menu()) self.assertEqual(self.menu["View all modules"]["atop"]["period"].get_value(), "1")
def __enter__(self): # Default delay when pressing ESC is too long, at 1000ms os.environ["ESCDELAY"] = "25" self.pairs = Pairs() # Make curses use unicode locale.setlocale(locale.LC_ALL, "") self.screen = curses.initscr() curses.noecho() # Using raw instead of cbreak() gives us access to CTRL+C and others curses.raw() self.screen.keypad(True) if not self.blocking_events: self.screen.timeout(33) curses.start_color() curses.use_default_colors() self.hide_cursor() return self
def __init__(self, enable=True): self.enable = enable if not self.enable: return self.logger = logging.getLogger('trader-logger') self.stdscr = curses.initscr() self.pad = curses.newpad(23, 120) self.order_pad = curses.newpad(10, 120) self.timestamp = "" self.last_order_update = 0 curses.start_color() curses.noecho() curses.cbreak() curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_RED) self.stdscr.keypad(1) self.pad.addstr(1, 0, "Waiting for a trade...")
def __init__(self): self.stdscr = curses.initscr() # don't display keys curses.noecho() # don't need key + enter curses.cbreak() # remove cursor curses.curs_set(0) self.stdscr.keypad(1) #stdscr.border(0) self.height, self.width = self.stdscr.getmaxyx() self.header = self.stdscr.subwin(3, self.width, 0, 0) self.header.box() self.main_win = self.stdscr.subwin(20, self.width-2, 3, 1) self.main_win.scrollok(True) self.setup_colours() # self.main()
def get_screen(self): self.screen = curses.initscr() curses.start_color() curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK) if self.x == 0: starty, startx = self.screen.getmaxyx() self.x = startx self.y = starty resize = curses.is_term_resized(self.y, self.x) # Action in loop if resize is True: if resize is True: y, x = self.screen.getmaxyx() self.screen.clear() curses.resizeterm(self.y, self.x) self.screen.refresh() self.show_header() return self.screen
def init(): height_term, width_term = get_terminal_size() height_min = COL_HEIGHT * HEIGHT + 2 + 9 width_min = COL_WIDTH * WIDTH + 2 + 5 if height_term < height_min or width_term < width_min: # resize the terminal to fit the minimum size to display the connect4 before exit stdout.write("\x1b[8;{h};{w}t".format(h=max(height_min, height_term), w=max(width_min, width_term))) exit('\033[91m' + 'The terminal was too small, you can now restart ' + '\033[1m' + 'Connect4' + '\033[0m') stdscr = curses.initscr() height,width = stdscr.getmaxyx() if height < height_min or width < width_min: # abort the program if the terminal can't be resized curses.endwin() exit('Please resize your terminal [%d%s%d] (minimum required %d%s%d)' %(width, 'x', height, width_min, 'x', height_min)) curses.noecho() curses.cbreak() curses.curs_set(0) stdscr.keypad(1) #define the different colors if curses.can_change_color(): defineColors() #return stdscr, width stdscr.clear() stdscr.border(0) return stdscr, width, height
def top(args): scr = curses.initscr() #scr.start_color() curses.noecho() curses.cbreak() hx, wm = scr.getmaxyx() scr.keypad(True) try: header = curses.newwin(HEADER_SIZE, wm, 0, 0) body = curses.newwin(BODY_SIZE, wm, HEADER_SIZE, 0) while True: draw_header(header) draw_body(body) draw_footer(scr) sleep(0.2) except KeyboardInterrupt: curses.nocbreak() scr.keypad(False) curses.echo() curses.endwin()
def _create_desktop(self): global _s_screen _s_screen = curses.initscr() curses.noecho() curses.curs_set(0) curses.start_color() self._desktop = Form(None, 0, 0) self._stats = Form(self._desktop, 0, 0, 70, 20) self._stats.set_centering(True, True) self._title = Label(self._stats, 0, 0, 'S2E') self._title.set_centering(True, False) self._exitmsg = Label(self._stats, 0, 17, 'Press q to exit') self._exitmsg.set_centering(True, False) self._table = Table(self._stats, 2, 2, self._data, self._legend, self._layout) self._table.set_centering(True, True)
def __init__(self, file, n, godmode): """ main is the wrapper window There are two nested windows, namely header and stdscr. """ self.main = curses.initscr() self.ROWS, self.COLS = self.main.getmaxyx() self.header = self.main.subwin(2, self.COLS, 0, 0) # center the text # cast it to int for python3 support center = int((self.COLS / 2) - (len(HEADER) / 2)) self.header.addstr(center * ' ' + HEADER) self.header.refresh() self.stdscr = self.main.subwin(self.ROWS-1, self.COLS, 1, 0) self.stdscr.idlok(True) self.stdscr.scrollok(True) curses.cbreak() curses.noecho() self.stdscr.keypad(1) self.stdscr.refresh() self.file = file # this is for handling the backspaces self.virtualfile = file.split('\n') self.godmode = godmode self.n = n # handle terminal size if self.COLS < 100: curses.endwin() print ('Error: Increase the width of your terminal') sys.exit(1)
def __enter__(self): """ init curses library """ self.stdscr = curses.initscr() curses.noecho() curses.cbreak() self.stdscr.keypad(1) return self
def initialize(self): # initialize curses self._stdscr = curses.initscr() begin_x = 0 begin_y = 0 self._teacher_seq_y = 0 self._learner_seq_y = 1 self._reward_seq_y = 2 self._world_win_y = 4 self._world_win_x = 0 self._info_win_width = 20 self._info_win_height = 4 self._user_input_win_y = 4 self._user_input_win_x = 10 self.height, self.width = self._stdscr.getmaxyx() self._scroll_msg_length = self.width - self._info_win_width - 1 self._win = self._stdscr.subwin(self.height, self.width, begin_y, begin_x) self._worldwin = self._win.subwin(self.height - self._world_win_y, self.width - self._world_win_x, self._world_win_y, self._world_win_x) # create info box with reward and time self._info_win = self._win.subwin(self._info_win_height, self._info_win_width, 0, self.width - self._info_win_width) self._user_input_win = \ self._win.subwin(1, self.width - self._user_input_win_x, self._user_input_win_y, self._user_input_win_x) self._user_input_label_win = \ self._win.subwin(1, self._user_input_win_x - 1, self._user_input_win_y, 0) curses.noecho() curses.cbreak()
def __init__(self, this_plant, this_data): '''Initialization''' self.initialized = False self.screen = curses.initscr() curses.noecho() curses.raw() curses.start_color() try: curses.curs_set(0) except curses.error: # Not all terminals support this functionality. # When the error is ignored the screen will look a little uglier, but that's not terrible # So in order to keep botany as accesible as possible to everyone, it should be safe to ignore the error. pass self.screen.keypad(1) self.plant = this_plant self.user_data = this_data self.plant_string = self.plant.parse_plant() self.plant_ticks = str(self.plant.ticks) self.exit = False self.infotoggle = 0 self.maxy, self.maxx = self.screen.getmaxyx() # Highlighted and Normal line definitions self.define_colors() self.highlighted = curses.color_pair(1) self.normal = curses.A_NORMAL # Threaded screen update for live changes screen_thread = threading.Thread(target=self.update_plant_live, args=()) screen_thread.daemon = True screen_thread.start() self.screen.clear() self.show(["water","look","garden","instructions"], title=' botany ', subtitle='options')
def wrapper(func, *args, **kwds): """Wrapper function that initializes curses and calls another function, restoring normal keyboard/screen behavior on error. The callable object 'func' is then passed the main window 'stdscr' as its first argument, followed by any other arguments passed to wrapper(). """ try: # Initialize curses stdscr = curses.initscr() # Turn off echoing of keys, and enter cbreak mode, # where no buffering is performed on keyboard input curses.noecho() curses.cbreak() # In keypad mode, escape sequences for special keys # (like the cursor keys) will be interpreted and # a special value like curses.KEY_LEFT will be returned stdscr.keypad(1) # Start color, too. Harmless if the terminal doesn't have # color; user can test with has_color() later on. The try/catch # works around a minor bit of over-conscientiousness in the curses # module -- the error return from C start_color() is ignorable. try: curses.start_color() except: pass return func(stdscr, *args, **kwds) finally: # Set everything back to normal if 'stdscr' in locals(): stdscr.keypad(0) curses.echo() curses.nocbreak() curses.endwin()
def init_curses(self): """Setup the curses""" self.window = curses.initscr() self.window.keypad(True) curses.noecho() curses.cbreak() curses.start_color() curses.init_pair(1, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_CYAN) self.current = curses.color_pair(2)
def _startWindow(): stdscr = curses.initscr() curses.noecho() curses.cbreak() stdscr.keypad(1) curses.curs_set(0) return stdscr
def __init__(self, arena_size): self.arena_size = arena_size self.max_moves = int(25*(2*arena_size*COLORS)/(28*6)) self.screen = curses.initscr() curses.noecho() curses.cbreak() curses.start_color() try: curses.curs_set(False) except curses.error: pass self.screen.nodelay(True) self.window_size = self.screen.getmaxyx() if self.window_size[0] < self.arena_size+4 or self.window_size[1] < self.arena_size*2: print('Your screen is too short!') exit() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_GREEN) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_CYAN) curses.init_pair(4, curses.COLOR_WHITE, curses.COLOR_RED) curses.init_pair(5, curses.COLOR_WHITE, curses.COLOR_MAGENTA) curses.init_pair(6, curses.COLOR_WHITE, curses.COLOR_YELLOW) curses.init_pair(7, curses.COLOR_WHITE, curses.COLOR_WHITE) self.offset_x = int((self.window_size[1]-2*self.arena_size)/2) self.offset_y = int((self.window_size[0]-self.arena_size)/2) self.moves_position=[ self.offset_y+self.arena_size+1, self.offset_x+self.arena_size-5 ] self.arena_initialize() self.screen.addstr( self.offset_y-2, self.offset_x, self.title, curses.color_pair(0)) self.screen.addstr( self.offset_y-2, self.offset_x+2*self.arena_size-17, "Press '?' to help", curses.color_pair(0))
def __init__(self): self.notification_count = 0 self.window = curses.initscr() curses.start_color() curses.noecho() curses.cbreak() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_WHITE, curses.COLOR_RED) curses.init_pair(5, curses.COLOR_YELLOW, curses.COLOR_BLUE) self.window.keypad(1) self.draw_ui()
def __init__(self, ts, injector, tests, do_tick, disassembler=disas_capstone): self.ts = ts; self.injector = injector self.T = tests self.gui_thread = None self.do_tick = do_tick self.ticks = 0 self.last_ins_count = 0 self.delta_log = deque(maxlen=self.RATE_Q) self.time_log = deque(maxlen=self.RATE_Q) self.disas = disassembler self.stdscr = curses.initscr() curses.start_color() # doesn't work # self.orig_colors = [curses.color_content(x) for x in xrange(256)] curses.use_default_colors() curses.noecho() curses.cbreak() curses.curs_set(0) self.stdscr.nodelay(1) self.sx = 0 self.sy = 0 self.init_colors() self.stdscr.bkgd(curses.color_pair(self.WHITE)) self.last_time = time.time()
def start(self, no_delay): self.window = curses.initscr() curses.start_color() curses.use_default_colors() curses.noecho() curses.cbreak() curses.curs_set(0) self.window.nodelay(no_delay) self.init_colors() self.window.bkgd(curses.color_pair(self.WHITE)) locale.setlocale(locale.LC_ALL, '') # set your locale self.code = locale.getpreferredencoding()
def init_scr(self): self.stdscr = curses.initscr() curses.noecho() curses.curs_set(0) self.stdscr_size = self.stdscr.getmaxyx() self.task_total = count_file_linenum(self.config.seedfile) self.pgsscr_size = (self.config.proc_num + 2, 40) self.pgsscr = curses.newpad(*self.pgsscr_size) self.cntscr_size = (4, 40) self.cntscr = curses.newpad(*self.cntscr_size) self.optscr_size = (18, 80) self.optscr = curses.newpad(*self.optscr_size)
def __init__(self): """ Initialize a new TUI window in terminal. """ locale.setlocale(locale.LC_ALL, '') self._stdscr = curses.initscr() curses.start_color() curses.noecho() curses.cbreak() curses.curs_set(0) # Set colors curses.use_default_colors() for i, color in enumerate(self.colorpairs): curses.init_pair(i + 1, *color)
def run(self): ''' Runs all the windows added to the application, and returns a `Result` object. ''' result = Result() try: self.scr = curses.initscr() self.MAX_HEIGHT, self.MAX_WIDTH = self.scr.getmaxyx() curses.noecho() curses.cbreak() curses.start_color() curses.use_default_colors() self.window = self.scr.subwin(0, 0) self.window.keypad(1) self.window.nodelay(1) self._run_windows() self.threads += [gevent.spawn(self._input_loop)] gevent.joinall(self.threads) for thread in self.threads: if thread.exception: result._extract_thread_exception(thread) except KeyboardInterrupt: result._extract_exception() except Exception: result._extract_exception() finally: if self.scr is not None: self.scr.keypad(0) curses.echo() curses.nocbreak() curses.endwin() return result
def __init__(self): # print('start') locale.setlocale(locale.LC_ALL, '') self.screen = curses.initscr() # Initialize curses. curses.noecho() curses.cbreak() # don't need to hit enter curses.curs_set(0) # disable mouse cursor self.screen.nodelay(True) # non-blocking on getch - not sure this works # pass self.windows = {} self.windows['commands'] = CommandWindow(4, 1) self.windows['light'] = LightBumperWindow(11, 1) self.dummy = -100.0