effectively, what you want is opening a new url in a window without closing the current window manually (if I understand well), nor having to close tabs manually.
Basic solution
The solution could be to run a command that combines two things:
- open a new window from the command line with the url as argument
- automatically close the current window
This way the pid of the browser will not change, and you would not have to manually close tabs and/or windows.
The small script below does exactly that, using firefox. The reason to use firefox is that (e.g.) chrome has multiple pids by definition, making the process more complicated.
installing wmctrl
The script uses wmctrl to find and close the current firefox windows, you might have to install it first:
sudo apt-get install wmctrl
The script
#!/usr/bin/env python3
import subprocess
import socket
import sys
url =sys.argv[1]
def get_info(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()
def run_command(command):
subprocess.call(["/bin/bash", "-c", command])
currpid = get_info("pidof firefox")
browserwindow = [l.split()[0] for l in get_info("wmctrl -l -p").splitlines() if currpid in l]
run_command("firefox -new-window "+url)
for i in browserwindow:
run_command("wmctrl -ic "+i)
How to use
Copy the script into an empty file, save it as firejump.py
. Open a firefox window (any address, just a window) and run the script by the command:
python3 /path/to/firejump.py <new_url>
Disable warning to close the current window
For the procedure to run without the annoying firefox warning that you are closing the current tabs or windows: disable the warnings by unticking it in the preferences:

More advanced solution
If you really need to jump over a list of thousands of url's, it might be useful to extend the script a little (see the script below), and let it automatically jump to the next url from a list, that you created in a text file, and run the script with a key combination to jump to the next url.
How to use
- Copy the script below into an empty texfile, save it as
jump_list.py
- create in the same folder a text file, named (exactly):
urls.txt
fill the file with your urls, one per line:
www.something.com
www.another_thing.com
www.yet_another_thing.nl
www.itshardtostop.be
and so on
Open a firefox window (any address, just a window).
Now when you run the script, firefox opens the first url.
Run it again and it will jump to the next url and so on, until the last url of the list has passed.
Explanation
The script reads the lines in the file urls.txt
by index. It keeps track of the (last used) index in a file that the script creates in the script's own directory. Every time the script runs, the number is increased by one until the last line is reached.
The script
#!/usr/bin/env python3
import subprocess
import os
curr_path = os.path.dirname(os.path.abspath(__file__))
def get_info(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()
def run_command(command):
subprocess.call(["/bin/bash", "-c", command])
def write_totrack(file, next_url):
with open(file, "wt") as wrt:
wrt.write(next_url)
def read_file(file):
with open(file) as src:
return src.read()
keep_track = curr_path+"/"+"next_visit.txt"
url_list = read_file(curr_path+"/"+"urls.txt").splitlines()
if not os.path.exists(keep_track):
next_url = "1"; index = 0
write_totrack(keep_track, next_url)
else:
index = int(read_file(keep_track))
next_url = index+1
write_totrack(keep_track, str(next_url))
if index < len(url_list):
curr_url = url_list[index]
currpid = get_info("pidof firefox")
browserwindow = [l.split()[0] for l in get_info("wmctrl -l -p").splitlines() if currpid in l]
run_command("firefox -new-window "+curr_url)
for i in browserwindow:
run_command("wmctrl -ic "+i)
else:
pass
Run the script by:
python3 /path/to/jump_list.py
Add it to $PATH
More elegant would be to save the script to ~/bin
, make it executable, remove the language extension and run it by the command:
jump_list
Add to Shortcut Keys
To really make it comfortable, add it to a shortcut combination: System Settings > "Shortcut Keys" > "Custom Shortcuts"