From 5f8afabc54e29f301064b5ad1750da84f5005109 Mon Sep 17 00:00:00 2001 From: Pablo Arias Date: Sun, 14 Apr 2019 19:05:18 +0200 Subject: [PATCH 1/3] Add option to force opening links in new browser window --- rtv/config.py | 4 +++- rtv/templates/rtv.cfg | 3 +++ rtv/terminal.py | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) 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..0c9f7d3 100644 --- a/rtv/templates/rtv.cfg +++ b/rtv/templates/rtv.cfg @@ -82,6 +82,9 @@ oauth_scope = edit,history,identity,mysubreddits,privatemessages,read,report,sav ; See https://imgur.com/account/settings/apps to generate your own key. imgur_client_id = 93396265f59dec9 +; Open a new browser window instead of a new tab in existing instance +force_new_browser_window = False + [bindings] ############## # Key Bindings diff --git a/rtv/terminal.py b/rtv/terminal.py index 73e4918..415940d 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) From 9e6b4e50aa438f33391e09b703e41c0daf36bf97 Mon Sep 17 00:00:00 2001 From: Pablo Arias Date: Wed, 17 Apr 2019 22:35:28 +0200 Subject: [PATCH 2/3] Move force_new_browser_window option to the main options --- rtv/templates/rtv.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtv/templates/rtv.cfg b/rtv/templates/rtv.cfg index 0c9f7d3..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 ################ @@ -82,9 +85,6 @@ oauth_scope = edit,history,identity,mysubreddits,privatemessages,read,report,sav ; See https://imgur.com/account/settings/apps to generate your own key. imgur_client_id = 93396265f59dec9 -; Open a new browser window instead of a new tab in existing instance -force_new_browser_window = False - [bindings] ############## # Key Bindings From d4a749901825698f662c7eb1682f7bcdbe3aeb07 Mon Sep 17 00:00:00 2001 From: Pablo Arias Date: Wed, 17 Apr 2019 22:36:28 +0200 Subject: [PATCH 3/3] Enforcing new browser window option also for non-graphical browsers --- rtv/terminal.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtv/terminal.py b/rtv/terminal.py index 415940d..185ff75 100644 --- a/rtv/terminal.py +++ b/rtv/terminal.py @@ -632,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): """