Development
git clone https://github.com/Seqat/tuxctl.git
cd tuxctl
cargo run # debug build
cargo build --release # optimized build in target/release/tuxctl
Work happens on the dev branch; main receives releases. The
contributing guide
has the branch and commit conventions, the code guidelines, and where tests
go.
Checks
These run on every push and pull request, and should pass before a change is proposed:
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test
The minimum supported Rust version is 1.88 (cargo +1.88 check --all-targets).
Scripts
scripts/ has the tools
used for releases and performance work:
smoke.pydrives the release binary in a pseudo-terminal and checks keys, resizing, exit and terminal restoration.measure.pymeasures CPU, memory and redraw rates in standard scenarios; with--checkit enforces the guards CI uses.rss.pywatches memory over a long run.
See scripts/README.md
for their options, and Performance for how measurements are
made and compared.
This documentation
The pages live in docs/ and are built with mdBook:
mdbook serve docs --open
The key tables on Controls are checked by a test against the real key bindings, so they cannot drift from the code.