Modern rules-based browser launcher and link redirector ready to replace your default browser. https://switchyard.aly.codes/
  • Go 83.2%
  • Python 7.9%
  • Just 3.1%
  • TypeScript 2.3%
  • Nix 2%
  • Other 1.5%
Find a file
2026-06-02 11:21:16 -04:00
.github github: fix amo 2026-05-28 00:35:18 -04:00
browser-setup move desktop integration to its own package and package with nix 2026-06-02 11:21:16 -04:00
data update for v0.15.2 2026-05-28 10:59:09 -04:00
docs move desktop integration to its own package and package with nix 2026-06-02 11:21:16 -04:00
flake move desktop integration to its own package and package with nix 2026-06-02 11:21:16 -04:00
flatpak flatpak: bump to gnome runtime 50 and glib 2.88, fix glib patch 2026-04-19 08:25:21 -04:00
scripts move desktop integration to its own package and package with nix 2026-06-02 11:21:16 -04:00
src update for v0.15.2 2026-05-28 10:59:09 -04:00
vendor add vendor 2026-01-13 16:54:21 -05:00
webextension update for v0.15.2 2026-05-28 10:59:09 -04:00
.gitignore add result to gitignore 2026-06-01 18:36:32 -04:00
flake.lock flake.lock: Update 2026-05-29 11:15:22 -04:00
flake.nix add nix flake 2026-01-16 19:02:54 -05:00
go.mod update deps 2026-01-13 15:44:43 -05:00
go.sum update deps 2026-01-13 15:44:43 -05:00
justfile just: add flatpak-bundle 2026-05-25 21:10:05 -04:00
LICENSE.md add nix flake 2026-01-16 19:02:54 -05:00
README.md README: add firefox extension and webextension doc 2026-05-27 22:54:24 -04:00

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