commit 9264b37174c80ee2c8bd3bd412ea290cef45e91b Author: Damian Johnson atagar@torproject.org Date: Thu Sep 15 20:45:34 2016 -0700
Move ACS support into curses.start()
Our start method accepts flags for other curses features. ACS would be a perfect fit, and lets us make one of our functions private. --- nyx/controller.py | 4 ---- nyx/curses.py | 9 ++++++--- nyx/starter.py | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/nyx/controller.py b/nyx/controller.py index d304527..76fa549 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -28,7 +28,6 @@ def conf_handler(key, value):
CONFIG = conf.config_dict('nyx', { - 'features.acsSupport': True, 'features.redrawRate': 5, 'features.confirmQuit': True, 'start_time': 0, @@ -40,9 +39,6 @@ def start_nyx(): Main draw loop context. """
- if not CONFIG['features.acsSupport']: - nyx.curses.disable_acs() - # provides notice about any unused config keys
for key in sorted(conf.get_config('nyx').unused_keys()): diff --git a/nyx/curses.py b/nyx/curses.py index d6176f9..1717067 100644 --- a/nyx/curses.py +++ b/nyx/curses.py @@ -25,7 +25,6 @@ if we want Windows support in the future too. get_color_override - provides color we override requests with set_color_override - sets color we override requests with
- disable_acs - renders replacements for ACS characters is_wide_characters_supported - checks if curses supports wide character
draw - renders subwindow that can be drawn into @@ -181,11 +180,12 @@ CONFIG = stem.util.conf.config_dict('nyx', { }, conf_handler)
-def start(function, transparent_background = False, cursor = True): +def start(function, acs_support = True, transparent_background = False, cursor = True): """ Starts a curses interface, delegating to the given function.
:param funtion: function to invoke when curses starts + :param bool acs_support: uses wide characters for pipes :param bool transparent_background: allows background transparency :param bool cursor: makes cursor visible """ @@ -195,6 +195,9 @@ def start(function, transparent_background = False, cursor = True):
CURSES_SCREEN = stdscr
+ if not acs_support: + _disable_acs() + if transparent_background: try: curses.use_default_colors() @@ -608,7 +611,7 @@ def _color_attr(): return COLOR_ATTR
-def disable_acs(): +def _disable_acs(): """ Replaces ACS characters used for showing borders. This can be preferable if curses is `unable to render them diff --git a/nyx/starter.py b/nyx/starter.py index 0126c3c..7ff37b2 100644 --- a/nyx/starter.py +++ b/nyx/starter.py @@ -85,7 +85,7 @@ def main(config): _set_process_name()
try: - nyx.curses.start(nyx.controller.start_nyx, transparent_background = True, cursor = False) + nyx.curses.start(nyx.controller.start_nyx, acs_support = config.get('features.acsSupport', True), transparent_background = True, cursor = False) except UnboundLocalError as exc: if os.environ['TERM'] != 'xterm': print(msg('setup.unknown_term', term = os.environ['TERM']))