No description
Find a file
2019-12-13 02:58:26 -05:00
.github/ISSUE_TEMPLATE Update bug_report.md 2019-11-03 22:01:27 -05:00
assets Added dd command on linux. 2019-09-16 21:45:48 -04:00
src Tweaked mouse and keyboard accept rates 2019-12-13 02:55:25 -05:00
tests Fix for broken tests 2019-10-20 01:13:25 -04:00
.gitignore [skip travis] Update .gitignore to please cargo. 2019-09-16 23:17:09 -04:00
.travis.yml ...and I forgot to commit this. 2019-12-06 23:52:28 -05:00
Cargo.toml Fix for winapi 2019-12-13 02:45:09 -05:00
LICENSE Initial commit 2019-08-28 19:43:30 -04:00
README.md [skip travis] Update Readme. 2019-12-13 02:58:26 -05:00
rustfmt.toml Update tui version... legends aren't showing up yet, will have to fork again. 2019-12-06 00:57:04 -05:00
TODO.md Fanagle with tui. Going to probably put this on halt until tui-rs pushes a new stable release... 2019-11-05 16:33:57 -05:00

bottom

Build Status crates.io link

A top clone, written in Rust. Inspired by both gtop and gotop

Quick demo recording

Installation

Linux

You can install by cloning and using cargo build --release, or download the pre-compiled binary in Releases.

Windows

You can currently install by cloning and building yourself. You may need to install a font like FreeMono and use a terminal like cmder for font support to work properly, unfortunately.

MacOS

Currently, I'm unable to really dev or test on MacOS, so I'm not sure how well this will work, if at all. I'll try to source MacOS hardware to test this application.

Usage

Note that all options and keybinds on GitHub may reflect the current development build, and not that of the current releases. For now, refer to the crate README for documentation as of time of release.

Command line options

  • -h, --help to show the help screen and exit (basically has all of the below CLI option info).

  • -a, --avgcpu enables showing the average CPU usage on rustop.

  • -m, --dot-marker uses a dot marker instead of the default braille marker. This is useful for things like Powershell which display braille markers incorrectly.

  • -c, --celsius displays the temperature type in Celsius. This is the default.

  • -f, --fahrenheit displays the temperature type in Fahrenheit. This is the default.

  • -k, --kelvin displays the temperature type in Kelvin. This is the default.

  • -v, --version displays the version number and exits.

  • -d, --debug enables debug logging.

  • -r <RATE>, --rate <RATE> will set the refresh rate in milliseconds. Pick a range from 250ms to UINT_MAX. Defaults to 1000ms, and higher values may take more resources due to more frequent polling of data, and may be less accurate in some circumstances.

Keybinds

General

  • q, Ctrl-c to quit.

  • Ctrl-r to reset the screen and reset all collected data.

  • f to freeze the screen from updating with new data. Press f again to unfreeze. Note that monitoring will still continue in the background.

  • Up/k, Down/j, Left/h, Right/l to navigate between panels.

  • Shift+Up and Shift+Down scrolls through the list if the panel is a table (Temperature, Disks, Processes).

  • Esc to close a dialog window.

  • ? to get a help screen explaining the controls. Note all controls except Esc to close the dialog will be disabled while this is open.

Processes Panel

  • dd to kill the selected process - I would highly recommend you to be careful using this, lest you accidentally kill the wrong process.

  • c to sort by CPU usage. Sorts in descending order by default. Press again to reverse sorting order.

  • m to sort by memory usage. Sorts in descending order by default. Press again to reverse sorting order.

  • p to sort by PID. Sorts in ascending order by default. Press again to reverse sorting order.

  • n to sort by process name. Sorts in ascending order by default. Press again to reverse sorting order.

Mouse Actions

  • Scrolling currently only scrolls through the list if you are on the Processes panel. This will change in the future.

Thanks

Why

I was looking to try writing more things in Rust, and I love the gotop tool. And thus, this project was born.