2019-09-17 02:54:39 +00:00
# bottom
2019-09-04 03:27:25 +00:00
2019-09-18 18:52:18 +00:00
[![Build Status ](https://travis-ci.com/ClementTsang/bottom.svg?token=1wvzVgp94E1TZyPNs8JF&branch=master )](https://travis-ci.com/ClementTsang/bottom) [![crates.io link ](https://img.shields.io/crates/v/bottom.svg )](https://crates.io/crates/bottom)
2019-09-15 02:29:40 +00:00
2019-09-25 05:34:33 +00:00
A top clone, written in Rust. Inspired by both [gtop ](https://github.com/aksakalli/gtop ) and [gotop ](https://github.com/cjbassi/gotop )
2019-09-04 03:27:25 +00:00
2019-09-17 01:45:48 +00:00
![Quick demo recording ](assets/recording_1.gif )
2019-09-09 04:09:58 +00:00
## Installation
2019-09-05 22:28:54 +00:00
2019-09-09 04:09:58 +00:00
### Linux
2019-12-07 04:48:38 +00:00
You can install by cloning and using `cargo build --release` , or download the pre-compiled binary in Releases.
2019-09-09 04:09:58 +00:00
### Windows
2019-12-15 05:17:15 +00:00
You can currently install by cloning and building yourself using `cargo build --release` . You may need to install a font like [FreeMono ](https://fonts2u.com/free-monospaced.font ) and use a terminal like cmder for font support to work properly, unfortunately.
2019-09-09 04:09:58 +00:00
2019-12-17 07:11:16 +00:00
### macOS
2019-09-09 04:09:58 +00:00
2019-12-17 07:11:16 +00:00
macOS support will hopefully come soon< sup > TM< / sup > .
2019-09-08 05:28:03 +00:00
2019-09-17 01:45:48 +00:00
## Usage
2019-12-22 22:37:07 +00:00
Note that all options and keybindings on GitHub may reflect the current development build, and not that of the current releases. For now, refer to the [crate ](https://crates.io/crates/bottom ) README for documentation as of time of release.
2019-10-10 22:05:26 +00:00
2019-09-17 02:39:57 +00:00
### Command line options
2019-12-16 07:40:35 +00:00
- `-h` , `--help` shows the help screen and exits.
2019-09-17 02:39:57 +00:00
2019-12-16 07:40:35 +00:00
- `-a` , `--avgcpu` enables also showing the average CPU usage in addition to per-core CPU usage.
2019-09-25 05:54:38 +00:00
2019-12-16 07:40:35 +00:00
- `-m` , `--dot-marker` uses a dot marker instead of the default braille marker.
2019-09-17 02:39:57 +00:00
2019-09-25 05:34:33 +00:00
- `-c` , `--celsius` displays the temperature type in Celsius. This is the default.
2019-09-17 02:39:57 +00:00
2019-12-16 07:40:35 +00:00
- `-f` , `--fahrenheit` displays the temperature type in Fahrenheit.
2019-09-17 02:39:57 +00:00
2019-12-16 07:40:35 +00:00
- `-k` , `--kelvin` displays the temperature type in Kelvin.
2019-09-17 02:39:57 +00:00
2019-09-25 05:34:33 +00:00
- `-v` , `--version` displays the version number and exits.
2019-09-17 02:39:57 +00:00
2019-12-13 04:03:34 +00:00
- `-d` , `--debug` enables debug logging.
2019-12-26 00:00:24 +00:00
- `-r <RATE>` , `--rate <RATE>` will set the refresh rate in _milliseconds_ . Lowest it can go is 250ms, the highest it can go is 2< sup > 128</ sup > - 1. Defaults to 1000ms, and lower values may take more resources due to more frequent polling of data, and may be less accurate in some circumstances.
2019-09-17 02:39:57 +00:00
2019-12-28 06:21:49 +00:00
- `-l` , `--left_legend` will move external table legends to the left side rather than the right side. Right side is default.
2019-12-22 22:37:07 +00:00
### Keybindings
2019-09-17 01:45:48 +00:00
#### General
2019-10-10 22:01:23 +00:00
- `q` , `Ctrl-c` to quit.
- `Ctrl-r` to reset the screen and reset all collected data.
2019-09-17 01:45:48 +00:00
2019-10-10 02:50:36 +00:00
- `f` to freeze the screen from updating with new data. Press `f` again to unfreeze. Note that monitoring will still continue in the background.
2019-10-10 02:34:09 +00:00
2019-12-15 05:17:15 +00:00
- `Ctrl+Up/k` , `Ctrl+Down/j` , `Ctrl+Left/h` , `Ctrl+Right/l` to navigate between panels.
2019-09-25 20:43:13 +00:00
2019-12-15 05:17:15 +00:00
- `Up` and `Down` scrolls through the list if the panel is a table (Temperature, Disks, Processes).
2019-10-10 02:00:10 +00:00
2019-10-10 02:42:50 +00:00
- `Esc` to close a dialog window.
2019-10-10 02:00:10 +00:00
2019-10-10 02:50:36 +00:00
- `?` to get a help screen explaining the controls. Note all controls except `Esc` to close the dialog will be disabled while this is open.
2019-09-17 01:45:48 +00:00
2019-12-26 04:34:23 +00:00
#### Processes, temperature, and disk panels
2019-09-17 01:45:48 +00:00
2019-12-31 02:05:39 +00:00
- `dd` to kill the selected process
2019-09-17 01:45:48 +00:00
2019-09-25 05:34:33 +00:00
- `c` to sort by CPU usage. Sorts in descending order by default. Press again to reverse sorting order.
2019-09-17 01:45:48 +00:00
2019-09-25 05:34:33 +00:00
- `m` to sort by memory usage. Sorts in descending order by default. Press again to reverse sorting order.
2019-09-17 01:45:48 +00:00
2019-09-25 05:34:33 +00:00
- `p` to sort by PID. Sorts in ascending order by default. Press again to reverse sorting order.
2019-09-17 01:45:48 +00:00
2019-09-25 05:34:33 +00:00
- `n` to sort by process name. Sorts in ascending order by default. Press again to reverse sorting order.
2019-09-17 01:45:48 +00:00
2019-12-26 04:34:23 +00:00
- `gg` to jump to the first entry of the current table.
- `G` (`Shift+g`) to jump to the last entry of the current table.
2019-12-17 07:11:16 +00:00
### Mouse actions
2019-09-17 01:45:48 +00:00
2019-09-17 02:39:57 +00:00
[* Scrolling either scrolls through the list if the panel is a table (Temperature, Disks, Processes), or zooms in and out if it is a chart.]: < >
2019-12-26 04:34:23 +00:00
- Scrolling currently only scrolls through the list if the panel is a table (Temperature, Disks, Processes).
2019-09-17 02:39:57 +00:00
2019-12-31 02:05:39 +00:00
## Widget Functionality
### CPU
### Memory
### Sensors
### Disk
### Network
### Processes
2019-12-17 07:11:16 +00:00
## Thanks, kudos, and all the like
2019-09-04 03:27:25 +00:00
2019-09-25 05:34:33 +00:00
- As mentioned, this project is very much inspired by both [gotop ](https://github.com/cjbassi/gotop ) and [gtop ](https://github.com/aksakalli/gtop ) .
- This application was written with the following libraries:
- [chrono ](https://github.com/chronotope/chrono )
- [clap ](https://github.com/clap-rs/clap )
- [crossterm ](https://github.com/TimonPost/crossterm )
- [failure ](https://github.com/rust-lang-nursery/failure )
- [fern ](https://github.com/daboross/fern )
- [futures-rs ](https://github.com/rust-lang-nursery/futures-rs )
- [futures-timer ](https://github.com/rustasync/futures-timer )
- [heim ](https://github.com/heim-rs/heim )
- [log ](https://github.com/rust-lang-nursery/log )
- [sysinfo ](https://github.com/GuillaumeGomez/sysinfo )
- [tokio ](https://github.com/tokio-rs/tokio )
2019-12-13 04:03:34 +00:00
- [tui-rs ](https://github.com/fdehau/tui-rs )
2019-09-25 05:34:33 +00:00
- [winapi ](https://github.com/retep998/winapi-rs )