text user interface for browser tabaholics & tab-hoarders, with vim-like keybindings
This program currently helps mainly:
-
to give a readable overview of all open browser windows and tabs,
-
to find and get back to things you know you have open in some window, and
-
to save and close windows of tabs, or groups of them.
Saved windows are currently saved to ~/urls-tab_wrangler
as lists of tab-separated values with two columns: title and URL.
Untitled ones are numbered and chucked into the untitled subfolder.
The next main features I would like to implement are:
-
searching through and reloading previously closed windows
-
naming windows, hopefully with some mechanism for persistence across runs
-
breaking a group of tabs out into a new or existing window
-
implementing "undo"
I wrote this for my own use, and not to share or show off.
I do use it on a daily basis myself, but it's still far from complete.
I didn't design it with other people's environments in mind.
I use Sway window manager in Arch Linux.
The feature to shift focus to an open window depends on Sway's swaymsg.
I have also been able to test this in Ubuntu 22.04 (Jammy Jellyfish),
and was able to get that same functionality using wmctrl -
see the commented-out line at the end of browser.py for how.
In the future, maybe I'll try to support and detect different environments,
but for now that's a low priority on the distant horizon.
I work on this project once in a blue moon, when I find time and motivation.
I'm sharing this mainly in the hope of helping to keep my main dependency, the amazing brotab, alive, by contributing to its ecosystem. I figure the more useful software there is out there which depends on it, the greater the incentive will be for everyone to help keep that project alive and up-to-date. Maybe eventually people will help contribute to my project too, but at least for now, at first, I can say that I unfortunately won't have much time to offer support for it.
-
for shifting focus to a window:
- jq
- Sway window manager,
or alternatively
wmctrlif using Ubuntu (in which case uncomment the commented-out line at end ofbrowser.py)
Currently I just keep this in ~/tab_wrangler
and run it from ~ with:
python -m tab_wrangler
If there's interest, I could work on making this into a proper Python package and/or providing packages for Arch Linux or Debian/Ubuntu. But for now I am lazy. Pull requests welcome!
c: Close all browser windows, saving their contents to untitled files.
Careful, as "undo" is not yet implemented!
d: Close ("(d)elete") a window, or group of windows.
s: (S)ave and close a window, or group of windows.
w: Name, save, and close ("(w)rite") a window, or group of windows.
enter: Focus the selected window.
/: Search forwards.
?: Search backwards.
n: Repeat last search.
N: Repeat last search in reverse.
space: Select a window. Multiple windows can be selected to save and/or close them as a group.
j: Move down a window.
k: Move up a window.
g: Jump to the first window in the list.
G: Jump to the last window in the list.
q: Quit.