.github/ISSUE_TEMPLATE | ||
assets | ||
src | ||
tests | ||
.gitignore | ||
.markdownlint.json | ||
.travis.yml | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
rustfmt.toml |
bottom
A graphical top clone, written in Rust. Inspired by both gtop and gotop
Installation
Linux
You can install by cloning and using cargo build --release
, or use cargo install bottom
. Other installation methods based on distros are as follows:
Arch Linux
You can get it from the AUR by installing bottom
.
Windows
You can currently install by cloning and building yourself using cargo build --release
, or use cargo install bottom
. You may need to install a font like FreeMono and use a terminal like cmder for font support to work properly, unfortunately.
macOS
macOS support will hopefully come soonTM.
Support
The compatibility of each widget and operating systems are, as of version 0.1.0, as follows:
OS/Widget | CPU | Memory | Disks | Temperature | Processes | Networks |
---|---|---|---|---|---|---|
Linux | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Windows | ✓ | ✓ | ✓ | Currently not working | ✓ | Partially supported (total RX/TX unavailable) |
macOS | Untested | Untested | Untested | Untested | Untested | Untested |
Usage
Run using btm
.
Command line options
-
-h
,--help
shows the help screen and exits. -
-a
,--avgcpu
enables also showing the average CPU usage in addition to per-core CPU usage. -
-m
,--dot-marker
uses a dot marker instead of the default braille marker. -
-c
,--celsius
displays the temperature type in Celsius. This is the default. -
-f
,--fahrenheit
displays the temperature type in Fahrenheit. -
-k
,--kelvin
displays the temperature type in Kelvin. -
-v
,--version
displays the version number and exits. -
-d
,--debug
enables debug logging. -
-r <RATE>
,--rate <RATE>
will set the refresh rate in milliseconds. Lowest it can go is 250ms, the highest it can go is 2128 - 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. -
-l
,--left_legend
will move external table legends to the left side rather than the right side. Right side is default. -
-u
,--current_usage
will make a process' CPU usage be based on the current total CPU usage, rather than assuming 100% CPU usage. Only affects Linux for now. -
g
,--group
will group together processes with the same name by default (equivalent to pressingTab
).
Keybindings
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. Pressf
again to unfreeze. Note that monitoring will still continue in the background. -
Ctrl+Up/k
,Ctrl+Down/j
,Ctrl+Left/h
,Ctrl+Right/l
to navigate between panels. -
Esc
to close a dialog window. -
?
to get a help screen explaining the controls. Note all controls exceptEsc
to close the dialog will be disabled while this is open.
Scrollable Tables
-
Up
andDown
scrolls through the list if the panel is a table (Temperature, Disks, Processes). -
gg
orHome
to jump to the first entry of the current table. -
G
(Shift+g
) orEnd
to jump to the last entry of the current table.
Processes
-
dd
to kill the selected 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. -
Tab
to group together processes with the same name. Disables PID sorting.dd
will now kill all processes covered by that name.
Mouse actions
- Scrolling with the mouse will scroll through the currently selected list, similar to using the up/down arrow keys.