]> git.phdru.name Git - dotfiles.git/commitdiff
bin/webbrowser: Open a private window/tab
authorOleg Broytman <phd@phdru.name>
Tue, 9 May 2023 12:22:17 +0000 (15:22 +0300)
committerOleg Broytman <phd@phdru.name>
Tue, 9 May 2023 12:25:03 +0000 (15:25 +0300)
Private in Mozilla Firefox, incognito in Google Chrome.

.vimrc
bin/browser_stack.py
bin/webbrowser

diff --git a/.vimrc b/.vimrc
index 49702499dac2c1078a8f7ec7776b7e819ed4ffe1..5546bdfc2904e60543a0357d458e793572ca3f9b 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -523,10 +523,12 @@ endfunction
 nmap \b :call ExtractOpenURL('')<CR>
 nmap \w :call ExtractOpenURL('-n')<CR>
 nmap \t :call ExtractOpenURL('-t')<CR>
+nmap \p :call ExtractOpenURL('-p')<CR>
 " Send visual block to a browser
 vmap \b ""y:call OpenURL('<C-R>"', '')<CR>
 vmap \w ""y:call OpenURL('<C-R>"', '-n')<CR>
 vmap \t ""y:call OpenURL('<C-R>"', '-t')<CR>
+vmap \p ""y:call OpenURL('<C-R>"', '-p')<CR>
 " Encode and send visual block to a browser
 vmap \B ""y:call EncodeOpenURL('<C-R>"', '')<CR>
 vmap \W ""y:call EncodeOpenURL('<C-R>"', '-n')<CR>
index 47b17744c0eda98734bc8e08de3a6adeaa0836e2..7018dc6527e69a4b33676a0e3862c537411c3b64 100644 (file)
@@ -19,4 +19,5 @@ def save_stack(stack):
 def set_current_browser():
     stack = get_stack()
     if stack:
-        os.environ['BROWSER'] = stack[0].strip()
+        os.environ['BROWSER'] = browser = stack[0].strip()
+        return browser
index 189ed2441216733303271d46b850cddfbac295ac..146da8ce3bea2958b6a0d8382339f85958a810ab 100755 (executable)
@@ -5,7 +5,23 @@ import sys, os
 # This must be imported and called before webbrowser
 # because webbrowser reads BROWSER environment variable at the import time
 from browser_stack import set_current_browser
-set_current_browser()
+browser = set_current_browser()
+
+if sys.argv[1] in ("-p", "--private", "--incognito"):
+    try:
+        url = sys.argv[2]
+    except IndexError:
+        url = ''
+    if browser == 'firefox':
+        if url:
+            os.system('firefox --private-window "%s"' % url)
+        else:
+            os.system('firefox --private-window')
+        sys.exit()
+    elif browser in ("google-chrome", "chrome", "chromium", "chromium-browser"):
+        os.system('%s --incognito "%s"' % (browser, url))
+        sys.exit()
+    sys.exit("Unsupported browser")
 
 import webbrowser