Home
TR

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/applications and an icon in ~/.local/share/icons
  • on GNOME and KDE binds Super+F to the window (SCOUR_KEY=ctrl+alt+s for another key, SCOUR_KEY=none to 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.