Installation
Prebuilt binaries or a build from source, which distributions the binaries run on, and the steps to a first search.
From a release
Download the tarball from the releases page:
tar xzf scour-0.2.0-alpha.1-linux-x86_64.tar.gz
cd scour-0.2.0-alpha.1-linux-x86_64
./install.sh
The script never asks for a password. What it does:
- puts seven binaries in
~/.local/bin:scour,scourd,scour-gui,scour-tui,scour-web,scour-watch,scour-mcp - puts a menu entry in
~/.local/share/applicationsand an icon in~/.local/share/icons - on GNOME and KDE binds Super+F to the window (
SCOUR_KEY=ctrl+alt+sfor another key,SCOUR_KEY=noneto skip); a second press brings the same window forward - prints what to do next
Deleting those files undoes it. The index and settings live elsewhere; scour where prints both.
Where the binaries run
They are built against glibc 2.39:
| Distribution | Status |
|---|---|
| Ubuntu 24.04+ | runs |
| Debian 13+ | runs |
| Fedora 40+ | runs |
| Arch, openSUSE Tumbleweed and other rolling distributions | runs |
| Ubuntu 22.04, Debian 12 | build from source |
It was tried end to end in clean Ubuntu 24.04 and Fedora containers, as a stranger would: the installer ran, all seven binaries reported their version, the service indexed the home directory, the command line searched, the terminal face drew, the browser face served its page, and the window opened on a virtual display. The window needs fontconfig/freetype and the X11/Wayland client libraries, which every desktop already has.
From source
Requirements: Rust 1.88 or later (rustup), pkg-config, and the fontconfig development headers, which only the window needs:
| Distribution | Packages |
|---|---|
| Ubuntu, Debian | sudo apt install pkg-config libfontconfig1-dev |
| Fedora | sudo dnf install pkgconf fontconfig-devel |
| Arch | sudo pacman -S pkgconf fontconfig |
git clone https://github.com/ReviseTouch/Scour.git
cd Scour
cargo build --release
scripts/release # assembles the tarball under dist/
cd dist && tar xzf scour-*-linux-x86_64.tar.gz && cd scour-*-linux-x86_64 && ./install.sh
A clean build takes a few minutes; target/ takes a few GB and can be deleted afterwards. To install by hand instead of install.sh: install -m755 target/release/scour{,d,-gui,-tui,-web,-watch,-mcp} ~/.local/bin/ — no menu entry and no shortcut in that case.
A C compiler is used if one is present, for a single thing: pinning two libm symbols to an older version so the window can be copied to a machine with an older glibc than the one it was built on. Without a compiler the build still succeeds; the result simply needs the glibc it was made on.
First run
scourd & # indexes your home directory on first run
scour report # search from the terminal
scour-gui # the window — also in the application menu
The first indexing pass depends on how many files there are. On a machine with 4.8 million entries it takes a few minutes, and search works throughout; results grow as the index fills.
Starting it with your session
There are two ways, and the difference between them is how the index keeps up — see Watching.
User unit (simple, no privileges):
install -Dm644 packaging/scourd.service ~/.config/systemd/user/scourd.service
systemctl --user enable --now scourd.service
System unit (with a fanotify mark, asks for root once):
systemctl --user disable --now scourd.service # if the user unit is on
sudo bash packaging/install-service.sh # [--user NAME] [ROOT...]
systemctl start scour.service
The installer takes the user from whoever ran sudo and the roots to watch from its arguments (default /home). The first line matters: two services running at once both race for the index lock, and the loser exits. Afterwards that account starts and stops the service without a prompt.
Settings
TOML, at ~/.config/scour/config.toml. The exclusion lists are the part worth reading — they are the first place to look when something you expected is missing. See Ignore rules.