Skip to content

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:

FolderWhat’s in it
crates/linkunbound-corePure Rust: URLs, rules, browsers, preferences, the update feed. No platform APIs
crates/linkunbound-winWindows: registration, detection, icons, startup
crates/linkunbound-macmacOS: Launch Services, Apple Events, icons, login item
crates/linkunbound-shellThe 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.

Edit on the wiki