Skip to content

tuxctl v0.2.1

Choose a tag to compare

@Seqat Seqat released this 22 Sep 20:10
· 109 commits to main since this release
1459f08

v0.2.1 is a reliability and efficiency release. tuxctl uses less CPU and is more robust, and no keys or screens changed.

Reliability

  • A hung systemctl can no longer stall the Services tab or block exit. The listing times out after 10 s and shows systemctl timed out.
  • If a background collector stops delivering data, the frame title now shows a stale marker for the affected screen instead of presenting frozen data as live.

Efficiency

  • Snapshots that arrive together are drawn in a single redraw, and background redraws happen at most every 50 ms. Keyboard, mouse and resize still redraw immediately.
  • Process command lines are cached per (PID, start_time) instead of being re-read from /proc every second.
  • Process sort and search keys are computed once per snapshot, and the process list is only filtered and sorted while the Processes tab is visible.
  • Measured idle CPU dropped by about 25–35% (for example, Overview went from 0.85% to 0.60%). RSS stays bounded at about 6.1 MiB after 15 minutes.

Fixes

  • The Logs PRIORITY header is no longer truncated.
  • The Overview root filesystem row no longer draws its label over the gauge.
  • Interfaces reporting an unknown state, such as lo, are shown neutrally as ◌ unknown.

Project

  • Minimum supported Rust version: 1.88 (rust-version in Cargo.toml).
  • Added CHANGELOG.md.

Verification

  • 262 automated tests passing
  • cargo fmt --check PASS
  • cargo check PASS
  • cargo clippy --all-targets --all-features PASS
  • cargo test PASS
  • cargo build --release PASS

Minimum supported terminal size: 40×15.

Installation

Linux only

git clone https://github.com/Seqat/tuxctl.git
cd tuxctl
cargo install --path .

Then run:

tuxctl

Full Changelog: v0.2.0...v0.2.1