Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
tui gome bowser go
0

Configure Feed

Select the types of activity you want to include in your feed.

198 1 0

Clone this repository

https://tangled.org/aly.codes/switchyard https://tangled.org/did:plc:itxd4rmdphs2cz6jcsvc4m3f
git@tangled.org:aly.codes/switchyard git@tangled.org:did:plc:itxd4rmdphs2cz6jcsvc4m3f

For self-hosted knots, clone URLs may differ based on your setup.



README.md

CI License: GPL v3 Ko-fi Mozilla Add-on

Switchyard Icon

Switchyard

A rules-based browser launcher for Linux.

Switchyard Launcher

Get it on Flathub

Get the Firefox Add-on

Features#

  • Browser rules: Automatically open links in specific browsers based on conditions you define.
  • Link redirections: Clean up links before they open—remove tracking parameters, swap domains, and more.
  • Quick launcher: When no rule matches, choose a browser with a click or keyboard shortcut.
  • Lightweight: Runs only when you click a link. No background processes.
  • GTK4 + libadwaita: Native GNOME look and feel.

Installation#

Switchyard is available on Flathub:

flatpak install flathub io.github.alyraffauf.Switchyard

Nix Flake#

nix run github:alyraffauf/switchyard

Building from Source#

For non-Flatpak builds, requires Go 1.24+, GTK4/libadwaita development libraries, and just.

just install-deps # For Fedora
just build
sudo just install # To /usr/local

Building Flatpak#

just flatpak # Build and install

Documentation#

  • Using - Set as default browser, usage examples.
  • Configuration - Config file format, rules, and settings.
  • URI Scheme - Custom switchyard:// URLs for specifying browser preferences.
  • Bowser Extension - Extensions for Firefox and Chrome.
  • Prior Art - Similar tools that inspired Switchyard.

Notes#

Flaktpak on NixOS: host browsers are not detected#

On NixOS, browser desktop files live in /run/current-system/sw/share/applications, which is not visible inside Flatpak by default.

To expose them to Switchyard, add the path to the XDG application search path:

flatpak override --user io.github.alyraffauf.Switchyard \
  --filesystem=/run/current-system/sw/share:ro \
  --env=XDG_DATA_DIRS=/app/share:/usr/share:/run/current-system/sw/share