Skip to content

egovelox/swell

Repository files navigation

🌊 Swell

Because no swell, no surf.

A panel-based UI to browse your tabs, history and bookmarks in waves.

Unified control on multiple web-browsers and/or profiles and/or browser-windows.

Swell turns a browser-control CLI called mozeidon into a panel-based UI. πŸš€

swell_tabs_panel

πŸ„ What you can do

From anywhere on your device, you can control and switch to your web-browsers :

  • list your tabs, drag and drop to reorder them, and close one, or switch to one, or pin/unpin, or group one, etc

  • list your bookmarks, open one, edit one

  • list your history items, open one, edit one

  • list your recently-closed tabs, open one

  • fire a web-search on your favorite engine like in the URL bar

  • switch to another browser, profile, or window.

In some scenarios, Swell acts in the background ( no UI ).

It's just an os-shortcut controlling your browsers. You can

  • define your global shortcuts to switch to the previous/next visited tab.

  • define your global shortcut to close the current active tab.

🌊 Defining your own shorcuts is a bless ! 🌊

πŸ“¦ Installation

Latest release ( MacOS and Linux ) : v0.2.0

What you need

  • A recent web-browser

  • Install this firefox-extension or chrome extension depending on the browser-family ( Mozilla or Chromium ) you are using.

    βœ… Swell should work directly with Firefox, Chrome, Edge
    and with other derived browsers like Zen, Arc, Brave, etc ( requires you to create a native-manifest, see Swell Host-configuration settings ).
    ⚠️ Swell cannot work for Safari browser.

  • Linux users only : install wmctrl or you won't be able to switch to the browser window.

  • install the app using the latest Swell release based on your distribution ( Linux or MacOS )

Troubleshooting

macOS

MacOS might prevent Swell from opening, as it's not downloaded from the Apple Store. If this happens, run:

xattr -r -d com.apple.quarantine /Applications/swell.app/

Linux

⚠️ Swell may not work well with Gnome desktop ( because Wayland, because focus-stealing prevention )

βœ… Swell works well on X11 with e.g Xfce desktop.

Ubuntu and Firefox sandbox 😬

On Ubuntu, the Firefox ( snap or .deb ) version might not be able to execute the /usr/bin/mozeidon-native-app.

To confirm it, check if you can notice something about firefox or mozeidon-native-app in :

  dmesg | grep DENIED

The simplest way to fix it :

use a .deb Firefox version ( not snap ) and configure etc/apparmor.d/usr.bin.firefox to allow this binary :

// add this line inside the profile block
/usr/bin/mozeidon-native-app ixr,

and then reload apparmor:

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.firefox

If you must use the snap Firefox version, surely you will have to move
the /usr/bin/mozeidon-native-app binary inside ~/snap/firefox/common/mozeidon-native-app
and change the extension-manifest ( ~/.mozilla/native-messaging-hosts/mozeidon.json ) to point to that binary.

βš™οΈ Swell settings

Swell settings can be modified directly inside the Swell UI.

Nonetheless, you might be interested in the underlying settings file :

File location

MacOS

~/Library/Application Support/com.egovelox.swell/settings.json

Linux

~/.local/share/com.egovelkox.swell/settings.json

Defaults ( no defined shortcuts )

{
  "custom_browser_manifests": [],
  "app_settings": {
    "global_shortcut_close_current_tab": "",
    "global_shortcut_show_panel_bookmarks": "",
    "global_shortcut_show_panel_history": "",
    "global_shortcut_show_panel_recently_closed": "",
    "global_shortcut_show_panel_settings": "",
    "global_shortcut_show_panel_tabs": "",
    "global_shortcut_switch_last_visited_tab": "",
    "shortcut_close_item": "",
    "shortcut_copy_selected_item_url": "",
    "shortcut_edit_bookmark": "",
    "shortcut_hide_panel": "",
    "shortcut_list_down": "",
    "shortcut_list_up": "",
    "shortcut_next_tab": "",
    "shortcut_previous_tab": "",
    "show_favicons": true,
    "theme": "system",
    "date_locale": "en-EN",
    "web_search_engine_urls": [
      "https://www.google.com/search?q="
    ]
  }
}

Custom example with defined shortcuts :

{
  "custom_browser_manifests": [],
  "app_settings": {
    "global_shortcut_close_current_tab": "Control+p",
    "global_shortcut_show_panel_bookmarks": "Control+w",
    "global_shortcut_show_panel_history": "Control+3",
    "global_shortcut_show_panel_recently_closed": "",
    "global_shortcut_show_panel_settings": "Control+2",
    "global_shortcut_show_panel_tabs": "Control+e",
    "global_shortcut_switch_last_visited_tab": "Control+Enter",
    "shortcut_close_item": "Control+l",
    "shortcut_copy_selected_item_url": "",
    "shortcut_edit_bookmark": "",
    "shortcut_hide_panel": "Control+c",
    "shortcut_list_down": "Control+j",
    "shortcut_list_up": "Control+k",
    "shortcut_next_tab": "Control+Shift+J",
    "shortcut_previous_tab": "Control+Shift+K",
    "show_favicons": true,
    "theme": "light",
    "date_locale": "en-EN",
    "web_search_engine_urls": [
      "https://www.google.com/search?q=",
      "https://addons.mozilla.org/en-US/firefox/search/?q="
    ]
  }
}

πŸ€“ Note for mozeidon CLI users

Once you've installed Swell, you should be able to use the mozeidon-cli binary, if you wish !

macOS

/Applications/swell.app/Contents/MacOS/mozeidon-cli

Linux

/usr/bin/mozeidon-cli

Planned features coming soon

  • allow searching with regex
  • download latest Swell release as a brew cask