2.6 KiB
Latest todo
install.sh
./install.sh
Builds the workspace, installs the four binaries to ~/.local/bin, writes starter configs, fetches the 80k blocklist rules, sets up a systemd user service for the proxy, and prompts before registering furst as your default browser.
--prefix
default ~/.local/bin --no-build install from an existing target/release --no-lists skip the blocklist download --no-service skip the systemd unit --no-default-browser never touch xdg-settings -y, --yes answer prompts yes --uninstall [--purge] reverse itThree properties worth knowing:
- Re-running is safe. Configs that already exist are left alone — I verified this by appending an edit to rules.toml, re-running, and confirming it survived.
- The default-browser change is prompted, not assumed. A non-interactive run (piped, CI) declines it rather than silently changing your desktop.
- It passes --workspace to cargo. That's the trap that bit me twice during development: the root package is only furst, so a bare cargo build silently skips the other three binaries and you install stale ones.
--uninstall removes binaries, service, and desktop entry but keeps your configs; --purge takes those too. It also warns that your default browser is left unset and tells you how to point it back at Firefox.
GUIDE.md
225 lines covering what the READMEs don't: the click-to-handler flow, making the proxy stick (including that Firefox ignores http_proxy and needs manual configuration), the commands worth knowing, and a "fixing things" section ordered by effort — because extraction is heuristic and some pages will come out wrong.
That section is the one that matters in practice. It walks from cheapest fix to most involved: click original → inspect with curl … | furst-read --stdin --text → adjust the POSITIVE/NEGATIVE class lists in extract.rs → move the site to the heavy rule.
Verified in a sandbox
I ran the whole thing under a fake HOME so it couldn't touch your machine, then checked afterward: no stray processes, no ~/.config/furst, no furst.desktop, no systemd units, and your default browser is still firefox.desktop. Tested install, re-run idempotency, --uninstall, --purge, --help, and an unknown flag.
Two things I did not exercise, so treat them as unproven until your first real run: the systemd service path (enabling a user unit would have affected your actual session) and the interactive default-browser prompt. Both are short and straightforward, but they're the parts that will run for the first time on your machine.