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-01-21 01:02:01 +01:00
[![Matrix ](https://img.shields.io/matrix/ytop:matrix.org )](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-01-23 16:13:51 +01:00
- macOS is missing temperatures, disks, 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-18 21:35:41 +01:00
- `rate` and `interfaces` cli args aren't implemented
2020-01-13 17:42:45 +01:00
2020-01-13 17:56:59 +01:00
## Installation
2020-01-23 16:13:51 +01:00
Currently working 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
Run the following to run [this ](https://github.com/japaric/trust/blob/gh-pages/install.sh ) script to download the correct binary for your system from the releases tab into `~/.cargo/bin` , courtesy of [japaric/trust ](https://github.com/japaric/trust ):
```bash
bash < (curl -LSfs https://japaric.github.io/trust/install.sh) \
-f --git cjbassi/ytop
```
Specify `--to` to change the download location.
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
```
### From source
2020-01-13 17:56:59 +01:00
Latest release:
```bash
2020-01-23 16:16:17 +01:00
cargo install -f --git https://github.com/cjbassi/ytop --tag 0.3.0
2020-01-13 17:56:59 +01:00
```
Latest commit:
```bash
cargo install -f --git https://github.com/cjbassi/ytop
```
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-01-18 21:35:41 +01: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:
-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.
-h, --help Prints help information
-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.
-V, --version Prints version information
OPTIONS:
-c, --colorscheme < colorscheme > Set a colorscheme. [default: default]
-i, --interfaces < interfaces > Comma separated list of network interfaces to show. Prepend an interface with '!'
to hide it. 'all' shows all interfaces. [default: !tun0]
-r, --rate < rate > Number of times per second to update the CPU and Mem widgets. [default: 1]
```