# sloptop `sloptop` is a Rust TUI resource monitor for Linux. ## oneliner: ```bash git clone https://gitlab.randomdevelopment.biz/dakota/sloptop.git && cargo build --release && cp target/release/sloptop /usr/local/bin/ ``` ```bash sudo wget "https://gitlab.randomdevelopment.biz/dakota/sloptop/-/raw/main/bin/sloptop" -O /bin/sloptop && sudo chmod +x /bin/sloptop ``` ## Features - htop-style process table by default with selection and scrolling - Sortable process columns (PID/CPU/MEM) with direction indicators - Toggleable process details pane (right on wide terminals, bottom on narrow) - CPU total bar + per-core mini-bars - GPU widget (NVIDIA via `nvidia-smi`, AMD via Linux sysfs when available) - Memory/swap bars and disk usage bars (top-N by usage) - Disk pseudo-filesystem filtering toggle (`tmpfs`/`devtmpfs`/`overlay`) - Compact network rates + totals + interface label - Adjustable refresh interval, pause/resume, responsive layout ## Build Prerequisites: - Rust toolchain (`rustc` + `cargo`) Build optimized binary: ```bash cargo build --release ``` Binary path: ```bash ./target/release/sloptop ``` ## Run Default refresh interval is 1000 ms: ```bash cargo run -- --interval-ms 1000 ``` Accepted interval range: `200..=5000` ms. ## Keybindings - `q` / `Esc`: quit - `p` / `Space`: pause/resume sampling (when summary is focused) - `+` / `=`: increase refresh interval by 200 ms - `-`: decrease refresh interval by 200 ms - `Tab`: switch focus between summary and process table - `↑`/`↓`, `PgUp`/`PgDn`, `j`/`k`: move process selection - `c` / `m` / `p`: sort by CPU / MEM / PID (`p` sorts PID when process table focused) - `r`: reverse sort direction - `d`: toggle process details pane - `f`: toggle pseudo-filesystem disk filtering ## Notes - Target platform is Linux. - Network throughput is computed as a delta between consecutive samples. - Disk and network metrics are system-wide aggregates. - GPU metrics are best-effort: NVIDIA requires `nvidia-smi`; AMD uses available `/sys/class/drm` fields. ## Next steps - Add top-process table with sorting/filtering - Add historical sparklines and alert thresholds - Extend platform-specific support and testing for macOS/Windows