Skip to content

tuxctl v0.2.5

Choose a tag to compare

@Seqat Seqat released this 22 Sep 22:03
· 88 commits to main since this release
eacc7d4

v0.2.5 prepares tuxctl for v0.3.0 and adds a few small features early. No key bindings changed.

New

  • --interval <DURATION> sets how often CPU, memory, and network are sampled. Accepted values are 250ms, 500ms, 1s (the default), 2s, 5s, 10s, 30s, and 60s. Processes still refresh at most once per second, and services at most every 5 seconds.
  • -h/--help and -V/--version.
  • The CPU history on Overview now shows how much time it covers, for example 60s or 5m.
  • The process detail view shows whether a process is a kernel thread or a user process.
  • The Logs screen shows journal times in your local time zone. The detail view adds the full date and the UTC offset.

Fixes

  • An active search or filter no longer disappears from the status line. Signal results, "Refreshing…", and refresh errors now appear after it.
  • A systemctl call that timed out after starting helper processes could delay shutdown. Those helpers are now stopped as well.

Under the hood

  • Continuous integration: formatting, clippy, tests, and a check against the minimum supported Rust version (1.88).
  • scripts/ contains pty smoke tests and CPU, memory, and redraw measurements.
  • Internal restructuring prepares for v0.3.0 features: an adjustable interval, disk I/O, filters, and an Esc main menu.

Idle CPU and memory are the same as in v0.2.2: about 0.6% CPU at the default interval and about 5.4 MiB of RSS after 15 minutes. With --interval 5s, idle CPU drops to about 0.2%.

Verification

  • 311 automated tests passing
  • cargo fmt --check PASS
  • cargo check PASS
  • cargo clippy --all-targets --all-features -- -D warnings PASS
  • cargo test PASS
  • cargo build --release PASS
  • CI green, including MSRV 1.88

Minimum supported terminal size: 40×15. Minimum supported Rust version: 1.88.

Installation

Linux only

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

Then run:

tuxctl
tuxctl --interval 2s

Full Changelog: v0.2.2...v0.2.5