Sūcī is written in Rust and uses GTK 4. Building it needs three things on any system: the Rust toolchain, GTK 4 (version 4.14 or later), and pkg-config, which tells Rust where GTK is. The first build downloads and compiles about 200 small Rust libraries and takes 3–10 minutes; later builds are quick.
sudo apt install build-essential libgtk-4-dev git curl
curl https://sh.rustup.rs -sSf | sh # installs Rust; accept the defaults
source ~/.cargo/env
git clone https://github.com/wujastyk/suci.git
cd suci
cargo build --release
./target/release/suci # run it
packaging/build-deb.sh # optional: make an installable .deb
On Fedora use sudo dnf install gtk4-devel gcc; on Arch, sudo pacman -S gtk4 base-devel.
Works on macOS 12 or later, on both Apple Silicon and Intel Macs.
Install Apple’s command-line tools (compiler, git). In Terminal:
xcode-select --install
Install Homebrew by following the one-line instructions at https://brew.sh.
Install GTK 4 and helpers:
brew install gtk4 adwaita-icon-theme librsvg pkgconf
adwaita-icon-theme supplies the toolbar icons; librsvg draws them
and is also used to make the app icon.
Install Rust:
curl https://sh.rustup.rs -sSf | sh
source ~/.cargo/env
Build and run:
git clone https://github.com/wujastyk/suci.git
cd suci
cargo build --release
./target/release/suci
Optional – make a double-clickable app:
packaging/macos/make-app.sh
cp -r target/macos/Suci.app /Applications/
The first time you open it, macOS may say the app is from an unidentified developer: right-click (or Control-click) Suci.app in Applications and choose Open, then Open again. This is needed only once.
Notes for macOS
dylibbundler or GTK’s gtk-mac-bundler; this is not automated yet.cargo build reports that gtk4 or glib-2.0 was not found, run
brew link gtk4 and open a new Terminal window.The simplest route uses MSYS2, which provides GTK, Rust and the C compiler together. Everything is done inside one MSYS2 terminal; no Windows settings need changing.
Install MSYS2 from https://www.msys2.org (accept the default folder
C:\msys64).
Open “MSYS2 UCRT64” from the Start menu (the icon with a yellow-brown background; not “MSYS2 MSYS”). Bring it up to date:
pacman -Syu
If it asks you to close the window, do so, reopen MSYS2 UCRT64, and run
pacman -Syu once more.
Install GTK 4, Rust and the tools:
pacman -S --needed git zip \
mingw-w64-ucrt-x86_64-gtk4 \
mingw-w64-ucrt-x86_64-adwaita-icon-theme \
mingw-w64-ucrt-x86_64-librsvg \
mingw-w64-ucrt-x86_64-rust \
mingw-w64-ucrt-x86_64-pkgconf \
mingw-w64-ucrt-x86_64-gcc
Build and run (still in the UCRT64 terminal):
git clone https://github.com/wujastyk/suci.git
cd suci
cargo build --release
./target/release/suci.exe
Make a folder you can use outside MSYS2 or give to others:
packaging/windows/bundle.sh
This creates target/windows/Suci/ (and a .zip of it) containing
suci.exe with all the GTK files it needs. Copy the folder anywhere, for
example to C:\Program Files\Suci or your Documents, and start
Suci.bat (or bin\suci.exe). You can pin it to the Start menu or make a
desktop shortcut to bin\suci.exe.
Windows SmartScreen may warn about an unrecognised app the first time:
click More info → Run anyway.
Notes for Windows
C:\…) are understood, as are
Linux paths when a library is shared between systems, as long as the PDF
folder is set in Preferences.suci.exe --check library.bib prints an integrity report, but only when run
from a terminal with a debug build (cargo build); the release build has no
console window.Sūcī was developed and tested on Linux. The code is portable and the automatic GitHub builds compile and test it on macOS and Windows, but the interface has not yet been tried by a person on those systems. One thing to check there: Copy reference puts rich text (with italics) on the clipboard; if italics are lost when pasting into Mail or Word, please report it.
~/.java on Linux, ~/Library/Preferences/com.apple.java.util.prefs.plist
on macOS, and the registry on Windows). If PDFs show as “not found”, set the
folder in Preferences.~/.config/suci/settings.json~/Library/Application Support/suci/settings.json%APPDATA%\suci\settings.json.csl files) go in a styles folder beside the
settings file; Preferences → Open styles folder opens it.cargo test --release runs the test suite on any system.Every push to GitHub builds and tests Sūcī on Linux, macOS and Windows
(.github/workflows/release.yml). Pushing a version tag, e.g.
git tag v0.3.1 && git push origin v0.3.1
publishes a GitHub Release with the Linux .deb and the Windows .zip
attached. macOS users build with the steps above.