Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.py drives the release binary in a pseudo-terminal and checks keys, resizing, exit and terminal restoration.
  • measure.py measures CPU, memory and redraw rates in standard scenarios; with --check it enforces the guards CI uses.
  • rss.py watches 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.