Help
How to help
LinkUnbound is made by one person in their spare time. Every kind of help counts, and most of it needs no code.
LinkUnbound is made by one person in their spare time. Every kind of help counts, and most of it needs no code.
Use it and tell us
- Report a bug: open an issue. A diagnostic report attached saves a lot of back and forth.
- A browser it doesn’t detect, or a private-window switch it doesn’t know: say which, with its version and system.
- Ideas: what you wish a browser picker did. Discussions is the place for open questions.
- Security problems: privately, as described in SECURITY.md, never in a public issue.
Spread the word
There’s no telemetry and no advertising, so people only find LinkUnbound when someone recommends it. A star on GitHub, a rating in the Microsoft Store, or a mention to a colleague who juggles browsers all help.
Support the work
LinkUnbound is free and will stay free. If it saves you an annoyance a day:
If you can’t or don’t want to, that’s completely fine.
Translate
The interface is in English and Spanish. To add a language, you translate two catalogues:
crates/linkunbound-core/src/i18n.rs: the picker, the notice, the tray and the update strip.app/src/i18n.ts: the settings window.
Neutral register, no regional variants. The steps are in CONTRIBUTING.md. This wiki can be translated too.
Write code
LinkUnbound is a Cargo workspace (Rust) plus a React settings window on Tauri:
| Folder | What’s in it |
|---|---|
crates/linkunbound-core | Pure Rust: URLs, rules, browsers, preferences, the update feed. No platform APIs |
crates/linkunbound-win | Windows: registration, detection, icons, startup |
crates/linkunbound-mac | macOS: Launch Services, Apple Events, icons, login item |
crates/linkunbound-shell | The resident: the Slint picker and notice, tray, single instance |
app/ | The settings window (React) and its Tauri side |
Quick start:
git clone https://github.com/rgdevment/LinkUnbound.git
cd LinkUnbound
npm ci && npm ci --prefix app
bash scripts/sidecar.sh
cd app && npm run tauri dev
Before opening a pull request:
cargo fmt --all
cargo clippy --workspace --all-targets
cargo test --workspace
npm run lint --prefix app && npm test --prefix app
Work on main for 2.x; v1-stable only takes security and crash fixes for 1.4.x. Commit subjects follow Conventional Commits. The first pull request asks you to sign a one-time CLA; you keep the copyright on your work.
Everything else (architecture on each system, conventions, the hooks) is in CONTRIBUTING.md.
Improve this wiki
Found something wrong, unclear or missing here? Open an issue in the main repository and say which page.