···11-[](https://github.com/alyraffauf/switchyard/actions/workflows/ci.yml) [](http://www.gnu.org/licenses/gpl-3.0) [](https://ko-fi.com/alyraffauf) [](https://addons.mozilla.org/firefox/addon/switchyard/)
11+[](https://github.com/alyraffauf/switchyard/actions/workflows/ci.yml) [](http://www.gnu.org/licenses/gpl-3.0) [](https://ko-fi.com/alyraffauf) [](https://addons.mozilla.org/firefox/addon/switchyard/) [](https://chromewebstore.google.com/detail/switchyard/ncehhpikkabfdcceimdhjjjodogflokc)
2233<div align="center">
44 <img width="128" height="128" src="data/icons/hicolor/scalable/apps/io.github.alyraffauf.Switchyard.svg" alt="Switchyard Icon">
···1313<p align="center">
1414 <a href="https://flathub.org/apps/io.github.alyraffauf.Switchyard"><img src="https://flathub.org/api/badge?locale=en&style=flat" alt="Get it on Flathub"></a>
1515</p>
1616-<p align="center">
1717- <a href="https://addons.mozilla.org/firefox/addon/switchyard/"><img src="https://shieldcn.dev/amo/v/switchyard.svg?variant=branded" alt="Get the Firefox Add-on"></a>
1818-</p>
1919-2016## Features
21172218- **Browser rules**: Automatically open links in specific browsers based on conditions you define.
2319- **Link redirections**: Clean up links before they open—remove tracking parameters, swap domains, and more.
2420- **Quick launcher**: When no rule matches, choose a browser with a click or keyboard shortcut.
2525-- **Lightweight**: Runs only when you click a link. No background processes.
2621- **GTK4 + libadwaita**: Native GNOME look and feel.
27222823## Installation
···5651```bash
5752just flatpak # Build and install
5853```
5959-6060-## Documentation
6161-6262-- [Using](docs/Using.md) - Set as default browser, usage examples.
6363-- [Configuration](docs/Configuration.md) - Config file format, rules, and settings.
6464-- [URI Scheme](docs/URI%20Scheme.md) - Custom `switchyard://` URLs for specifying browser preferences.
6565-- [Bowser Extension](docs/WebExtension.md) - Extensions for Firefox and Chrome.
6666-- [Prior Art](docs/Prior%20Art.md) - Similar tools that inspired Switchyard.
6767-6868-## Notes
6969-7070-### Flaktpak on NixOS: host browsers are not detected
7171-7272-On NixOS, browser desktop files live in `/run/current-system/sw/share/applications`, which is not visible inside Flatpak by default.
7373-7474-To expose them to Switchyard, add the path to the XDG application search path:
7575-7676-```bash
7777-flatpak override --user io.github.alyraffauf.Switchyard \
7878- --filesystem=/run/current-system/sw/share:ro \
7979- --env=XDG_DATA_DIRS=/app/share:/usr/share:/run/current-system/sw/share
8080-```
···11-# Configuration
11+---
22+title: Configuration
33+description: Configure browser rules, conditions, and link redirections.
44+order: 20
55+---
2637Switchyard can be configured through its settings UI or by editing the config file directly.
48
···11-# Prior Art
11+---
22+title: Prior Art
33+description: Related URL routers and browser pickers for Linux, macOS, and Windows.
44+order: 50
55+---
2637Switchyard draws inspiration from other excellent URL routers and browser pickers.
48
···11-# Switchyard URI Scheme
11+---
22+title: URI Scheme
33+description: Use switchyard:// links to open URLs with browser preferences.
44+order: 30
55+---
2637Switchyard registers a custom URI scheme that allows links to specify browser preferences directly. This is useful for situations where you want to create links that always open in a specific browser, but don't want a permanent rule. Example use cases include note-taking, to-do apps, etc.
48
-11
docs/Using.md
···11-# Using Switchyard
22-33-## Set as Default Browser
44-55-After installation, set Switchyard as your default browser so it can route all clicked links:
66-77-```bash
88-xdg-settings set default-web-browser io.github.alyraffauf.Switchyard.desktop
99-```
1010-1111-Or use your desktop environment's graphical settings to set Switchyard as the default browser.
···11-# Switchyard Browser Extension
11+---
22+title: Browser Extension
33+description: Use the Switchyard browser extension and native messaging integration.
44+order: 40
55+---
2637A companion browser extension that lets you open any page in Switchyard with one click. It lives in the `webextension/` directory, ships as a standard WebExtension compatible with Firefox and Chromium, and is included in GitHub releases as `switchyard-webextension.zip`.
48···610711## How It Works
81299-The browser extension stays simple by making use of our [URI Scheme](./URI%20Scheme.md). When you click a browser button or "Switchyard", it redirects the current tab to a `switchyard://open?url=...` URL. The operating system sees the registered `switchyard://` scheme and launches the Switchyard desktop app, which parses the URL and forwards your page to the right browser.
1313+The browser extension stays simple by making use of our [URI Scheme](/docs/uri-scheme/). When you click a browser button or "Switchyard", it redirects the current tab to a `switchyard://open?url=...` URL. The operating system sees the registered `switchyard://` scheme and launches the Switchyard desktop app, which parses the URL and forwards your page to the right browser.
10141115With [desktop integration](#desktop-integration) enabled, the extension can also ask Switchyard for your installed browsers and display them directly in the popup for one-click launching.
1216···14181519The Switchyard extension can also show your installed browsers directly in the popup, letting you send the current tab to a specific browser in one click. This requires installing a native messaging host on your system.
16201717-Please read [`browser-setup/main.py`](../browser-setup/main.py) before running this command:
2121+Please read [`browser-setup/main.py`](https://github.com/alyraffauf/switchyard/blob/master/browser-setup/main.py) before running this command:
18221923```bash
2020-curl -fsSL https://raw.githubusercontent.com/alyraffauf/Switchyard/master/scripts/install-desktop-integration.sh | bash -s -- --install --yes
2424+curl -fsSL https://raw.githubusercontent.com/alyraffauf/switchyard/master/scripts/install-desktop-integration.sh | bash -s -- --install --yes
2125```
22262327After installation, restart your browser(s). The extension popup will list your installed browsers.
···2529### Uninstall
26302731```bash
2828-curl -fsSL https://raw.githubusercontent.com/alyraffauf/Switchyard/master/scripts/install-desktop-integration.sh | bash -s -- --uninstall
3232+curl -fsSL https://raw.githubusercontent.com/alyraffauf/switchyard/master/scripts/install-desktop-integration.sh | bash -s -- --uninstall
2933```
30343135This removes all manifests and wrappers, but the `flatpak override` permissions granted during install are left in place. It's up to the user to decide what to do with them.
···11+---
22+title: NixOS & Flatpak
33+description: Allow the Flatpak build of Switchyard to find host browser desktop files on NixOS.
44+order: 25
55+---
66+77+On NixOS, browser desktop files live in `/run/current-system/sw/share/applications`. That path is not visible inside Flatpak by default, so Switchyard may not detect host browsers.
88+99+To expose them to Switchyard, add the path to the Flatpak sandbox and include it in the XDG application search path:
1010+1111+```bash
1212+flatpak override --user io.github.alyraffauf.Switchyard \
1313+ --filesystem=/run/current-system/sw/share:ro \
1414+ --env=XDG_DATA_DIRS=/app/share:/usr/share:/run/current-system/sw/share
1515+```
1616+1717+Restart Switchyard after applying the override.
+26
website/src/content/docs/using.md
···11+---
22+title: Using Switchyard
33+description: Learn what Switchyard does and how to start routing links.
44+order: 10
55+---
66+77+Switchyard is a rules-based browser launcher for Linux. Once it is set as your default browser, clicked links pass through Switchyard first. It can then open the link in a specific browser, ask you which browser to use, or rewrite the URL before opening it.
88+99+Use it when different parts of your life belong in different browsers: work links in Chrome, personal links in Firefox, video links in Brave, or privacy-friendly redirects before anything opens.
1010+1111+The basic flow is:
1212+1313+1. Set Switchyard as your default browser.
1414+2. Add browser rules for domains, keywords, globs, or regular expressions.
1515+3. Optionally add link redirections to clean up or rewrite URLs.
1616+4. Let Switchyard route links automatically, or show the launcher when no rule matches.
1717+1818+## Set as Default Browser
1919+2020+After installation, set Switchyard as your default browser so it can route all clicked links:
2121+2222+```bash
2323+xdg-settings set default-web-browser io.github.alyraffauf.Switchyard.desktop
2424+```
2525+2626+Or use your desktop environment's graphical settings to set Switchyard as the default browser.