2020-01-13 01:52:39 +01:00
# ytop
2019-07-20 02:36:20 +02:00
2020-01-21 00:45:38 +01:00
![Minimum rustc version ](https://img.shields.io/badge/rustc-1.39+-green.svg )
2020-04-11 21:28:29 +02:00
[![Matrix ](https://img.shields.io/badge/matrix-%23ytop-blue.svg )](https://matrix.to/#/#ytop:matrix.org)
2020-01-21 00:45:38 +01:00
2019-07-20 02:36:20 +02:00
< div align = "center" >
2020-01-23 18:06:25 +01:00
*Another* TUI based system monitor, this time in Rust!
2019-07-20 02:36:20 +02:00
2020-01-13 17:40:58 +01:00
< img src = "./assets/demos/demo.gif" / >
< img src = "./assets/screenshots/minimal.png" width = "96%" / >
2019-07-20 02:36:20 +02:00
< / div >
2020-01-13 17:42:45 +01:00
## Missing features
2020-04-21 21:06:37 +02:00
- macOS is missing disk io counters and process commandline
2020-01-18 21:35:41 +01:00
- Process filtering isn't implemented
2020-01-13 17:42:45 +01:00
- Mouse usage isn't implemented
2020-01-13 17:56:59 +01:00
## Installation
2020-02-16 01:17:25 +01:00
Currently works on Linux and macOS with support planned for all major platforms.
2020-01-13 17:56:59 +01:00
2020-01-23 16:13:51 +01:00
### Prebuilt binaries
2020-01-13 17:56:59 +01:00
2020-01-23 19:17:08 +01:00
Prebuilt binaries are provided in the [releases ](https://github.com/cjbassi/ytop/releases ) tab.
2020-01-13 17:56:59 +01:00
2020-03-23 10:42:10 +01:00
### Package managers
[![Packaging status ](https://repology.org/badge/vertical-allrepos/ytop.svg )](https://repology.org/project/ytop/versions)
2020-01-23 16:13:51 +01:00
### Arch Linux
Install `ytop` , `ytop-bin` , or `ytop-git` from the AUR.
### Homebrew
```bash
brew tap cjbassi/ytop
brew install ytop
```
2020-02-28 02:18:49 +01:00
### Alpine Linux
Available in the testing repository, so you need to be on Alpine Linux Edge.
```bash
apk add ytop
```
2020-01-23 16:13:51 +01:00
### From source
2020-01-13 17:56:59 +01:00
```bash
2020-05-10 23:51:14 +02:00
cargo install ytop
2020-01-13 17:56:59 +01:00
```
2019-07-20 02:36:20 +02:00
## Usage
### Keybinds
- Quit: `q` or `<C-c>`
2020-01-18 21:35:41 +01:00
- Pause: `<Space>`
2019-07-20 02:36:20 +02:00
- Process navigation:
- `k` and `<Up>` : up
- `j` and `<Down>` : down
- `<C-u>` : half page up
- `<C-d>` : half page down
- `<C-b>` : full page up
- `<C-f>` : full page down
- `gg` and `<Home>` : jump to top
- `G` and `<End>` : jump to bottom
- Process actions:
- `<Tab>` : toggle process grouping
2019-07-28 02:29:01 +02:00
- `dd` : kill selected process or process group
2019-07-20 02:36:20 +02:00
- Process sorting:
2020-04-21 22:17:13 +02:00
- `p` : PID/Count
- `n` : Command
- `c` : CPU
- `m` : Mem
2019-07-20 02:36:20 +02:00
- Process filtering:
- `/` : start editing filter
- (while editing):
- `<Enter>` : accept filter
- `<C-c>` and `<Escape>` : clear filter
- CPU and Mem graph scaling:
- `h` : scale in
- `l` : scale out
- `?` : toggles keybind help menu
### Mouse
- click to select process
- mouse wheel to scroll through processes
### Colorschemes
2020-01-13 01:52:39 +01:00
ytop ships with a few colorschemes which can be set with the `-c` flag followed by the name of one. You can find all the colorschemes in the [colorschemes folder ](./colorschemes ).
2019-07-20 02:36:20 +02:00
2020-01-13 23:35:13 +01:00
To make a custom colorscheme, copy one of the default ones to `~/.config/ytop/<new-name>.json` and load it with `ytop -c <new-name>` . Colorscheme PRs are welcome!
2019-07-20 02:36:20 +02:00
### CLI Options
```
USAGE:
2020-01-13 01:52:39 +01:00
ytop [FLAGS] [OPTIONS]
2019-07-20 02:36:20 +02:00
FLAGS:
2020-02-15 20:54:25 +01:00
-a, --average-cpu Show average CPU in the CPU widget
-b, --battery Show Battery widget (overridden by 'minimal' flag)
-f, --fahrenheit Show temperatures in fahrenheit
2019-07-20 02:36:20 +02:00
-h, --help Prints help information
2020-02-15 20:54:25 +01:00
-m, --minimal Only show the CPU, Mem, and Process widgets
-p, --per-cpu Show each CPU in the CPU widget
-s, --statusbar Show a statusbar with the time
2019-07-20 02:36:20 +02:00
-V, --version Prints version information
OPTIONS:
2020-02-15 20:54:25 +01:00
-c, --colorscheme < colorscheme > Set a colorscheme [default: default]
2020-02-16 05:35:00 +01:00
-i, --interface < interface > The name of the network interface to show in the Net widget. 'all' shows all
interfaces [default: all]
2020-02-16 05:36:19 +01:00
-I, --interval < interval > Interval in seconds between updates of the CPU and Mem widgets. Can specify
2020-02-16 02:29:02 +01:00
either a whole number or a fraction with a numerator of 1 [default: 1]
2019-07-20 02:36:20 +02:00
```
2020-04-11 00:39:33 +02:00
## Related projects
- [bashtop ](https://github.com/aristocratos/bashtop )
- [bottom ](https://github.com/ClementTsang/bottom )
- [glances ](https://github.com/nicolargo/glances )
- [gotop ](https://github.com/cjbassi/gotop )
- [gtop ](https://github.com/aksakalli/gtop )
- [htop ](https://github.com/hishamhm/htop )
- [vtop ](https://github.com/MrRio/vtop )
- [zenith ](https://github.com/bvaisvil/zenith )