···11-<h1>
22- <img src="data/icons/hicolor/scalable/apps/io.github.alyraffauf.Switchyard.svg" width="64" height="64" align="left" style="margin-right: 10px;">
33- Switchyard
44-</h1>
55-66-<br clear="left"/>
77-88-**A rules-based URL router for Linux.**
99-1010-Set up smart, automatic routing. Or choose your browser on the fly.
1111-1212-[](https://github.com/alyraffauf/switchyard/actions/workflows/ci.yml)
11+[](https://github.com/alyraffauf/switchyard/actions/workflows/ci.yml) [](http://www.gnu.org/licenses/gpl-3.0)
132143<p align="center">
1515- <img src="docs/images/switchyard-picker.png" alt="Switchyard Picker" width="600">
44+ <img src="data/icons/hicolor/scalable/apps/io.github.alyraffauf.Switchyard.svg" width="64" height="64">
55+ <br>
66+ <strong style="font-size: 2em;">Switchyard</strong>
77+ <br><br>
88+ <strong>A rules-based browser launcher for Linux.</strong>
99+ <br>
1010+ Set up smart, automatic routing. Or choose your browser on the fly.
1611</p>
17121813<p align="center">
1919- <img src="docs/images/switchyard.png" alt="Switchyard Settings" width="600">
1414+ <img src="docs/images/switchyard-picker.png" alt="Switchyard Picker" width="600">
2015</p>
21162217<p align="center">
2323- <img src="docs/images/switchyard-rulesedit.png" alt="Switchyard Rule Editor" width="600">
1818+ <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>
2419</p>
25202621## Features
···38333934### Flatpak (Recommended)
40354141-Requires [just](https://github.com/casey/just) for building.
3636+Switchyard is available on [Flathub](https://flathub.org/apps/io.github.alyraffauf.Switchyard):
42374338```bash
4444-# Build and install (automatically installs Flatpak runtimes if needed)
4545-just flatpak
3939+flatpak install flathub io.github.alyraffauf.Switchyard
4640```
47414842### Nix Flake
49435050-A flake is provided for NixOS or Nix users. It also supplies a devShell and a formatter.
5151-5252-Add this repository to your flake inputs:
5353-5454-```nix
5555-{
5656- inputs.switchyard.url = "github:alyraffauf/switchyard";
5757-}
5858-```
5959-6060-Then, add this to your NixOS configuration:
6161-6262-```nix
6363-# Add to your NixOS configuration
6464-{
6565- environment.systemPackages = [
6666- inputs.switchyard.packages.${system}.default
6767- ];
6868-}
4444+```bash
4545+nix run github:alyraffauf/switchyard
6946```
70477148### Building from Source
···7350For non-Flatpak builds, requires Go 1.24+, GTK4/libadwaita development libraries, and [just](https://github.com/casey/just).
74517552```bash
7676-# Install dependencies (Fedora)
7777-just install-deps
7878-7979-# Build
5353+just install-deps # For Fedora
8054just build
8181-8282-# Install to /usr/local
8383-sudo just install
8484-8585-# Or install to custom prefix
8686-sudo PREFIX=/usr just install
5555+sudo just install # To /usr/local
8756```
88578989-### Set as Default Browser
9090-9191-After installation, set Switchyard as your default browser so it can route all clicked links:
9292-9393-```bash
9494-xdg-settings set default-web-browser io.github.alyraffauf.Switchyard.desktop
9595-```
9696-9797-Or use your desktop environment's graphical settings to set Switchyard as the default browser.
9898-9999-## Usage
5858+#### Building Flatpak
1005910160```bash
102102-# Open settings
103103-flatpak run io.github.alyraffauf.Switchyard
104104-105105-# Open a URL (typically called automatically by the system)
106106-flatpak run io.github.alyraffauf.Switchyard "https://example.com"
107107-108108-# Non-Flatpak
109109-switchyard
110110-switchyard "https://example.com"
6161+just flatpak # Build and install
11162```
11263113113-### Keyboard Shortcuts
114114-115115-**In the picker:**
116116-117117-- `Ctrl+1-9` - Select browser by number
118118-- `Escape` - Close picker
119119-120120-**In settings:**
121121-122122-- `Ctrl+Q` - Quit
123123-12464## Documentation
125656666+- [Using](docs/Using.md) - Set as default browser, usage examples.
12667- [Configuration](docs/Configuration.md) - Config file format, rules, and settings.
12768- [URI Scheme](docs/URI%20Scheme.md) - Custom `switchyard://` URLs for specifying browser preferences.
12869- [Prior Art](docs/Prior%20Art.md) - Similar tools that inspired Switchyard.
129129-130130-## Development
131131-132132-### Running Tests
133133-134134-The project includes unit tests for the core rule matching logic. Tests can run without GTK dependencies.
135135-136136-```bash
137137-# Run tests
138138-just test
139139-140140-# Run tests with coverage report
141141-just test-coverage
142142-143143-# View HTML coverage report
144144-go tool cover -html=coverage.out
145145-```
146146-147147-Tests are automatically run in CI on every push and pull request.
148148-149149-## License
150150-151151-[GPL-3.0-or-later](LICENSE.md)
+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.