diff --git a/rtv/config.py b/rtv/config.py index b75e92b..daef147 100644 --- a/rtv/config.py +++ b/rtv/config.py @@ -261,6 +261,7 @@ class Config(object): if config.has_section('rtv'): rtv = dict(config.items('rtv')) + # convert non-string params to their typed representation params = { 'ascii': partial(config.getboolean, 'rtv'), 'monochrome': partial(config.getboolean, 'rtv'), @@ -274,7 +275,8 @@ class Config(object): 'max_comment_cols': partial(config.getint, 'rtv'), 'max_pager_cols': partial(config.getint, 'rtv'), 'hide_username': partial(config.getboolean, 'rtv'), - 'flash': partial(config.getboolean, 'rtv') + 'flash': partial(config.getboolean, 'rtv'), + 'force_new_browser_window': partial(config.getboolean, 'rtv') } for key, func in params.items(): diff --git a/rtv/templates/rtv.cfg b/rtv/templates/rtv.cfg index 40b07e3..3cca8a2 100644 --- a/rtv/templates/rtv.cfg +++ b/rtv/templates/rtv.cfg @@ -57,6 +57,9 @@ hide_username = False ; been installed into either the custom of default theme paths. ;theme = molokai +; Open a new browser window instead of a new tab in existing instance +force_new_browser_window = False + ################ # OAuth Settings ################ diff --git a/rtv/terminal.py b/rtv/terminal.py index 73e4918..185ff75 100644 --- a/rtv/terminal.py +++ b/rtv/terminal.py @@ -599,7 +599,10 @@ class Terminal(object): try: os.dup2(null, 1) os.dup2(null, 2) - webbrowser.open_new_tab(url) + if self.config['force_new_browser_window']: + webbrowser.open_new(url) + else: + webbrowser.open_new_tab(url) finally: try: os.close(null) @@ -629,7 +632,10 @@ class Terminal(object): pass else: with self.suspend(): - webbrowser.open_new_tab(url) + if self.config['force_new_browser_window']: + webbrowser.open_new(url) + else: + webbrowser.open_new_tab(url) def open_pager(self, data, wrap=None): """