xmtop/README.md

135 lines
3.8 KiB
Markdown
Raw Normal View History

2018-04-12 01:51:51 +08:00
<div align="center">
2018-02-19 15:25:02 +08:00
2019-05-30 06:07:01 +08:00
<a href="./assets/logo">
<img src="./assets/logo/logo.png" width="20%" />
</a>
2018-04-16 07:28:47 +08:00
<br><br>
Another terminal based graphical activity monitor, inspired by [gtop](https://github.com/aksakalli/gtop) and [vtop](https://github.com/MrRio/vtop), this time written in [Go](https://golang.org/)!
2018-02-19 15:25:02 +08:00
2019-05-30 06:07:01 +08:00
<img src="./assets/demos/demo.gif" />
<img src="./assets/screenshots/minimal.png" width="96%" />
2018-03-05 13:19:31 +08:00
2018-04-16 07:28:47 +08:00
</div>
2018-02-19 15:25:02 +08:00
## Installation
2019-05-30 06:07:01 +08:00
Working and tested on Linux, FreeBSD and macOS. Windows support is planned. OpenBSD works with some caveats.
2018-04-16 07:36:45 +08:00
2019-01-17 13:00:38 +08:00
### Source
```bash
2019-05-30 06:07:01 +08:00
go get github.com/cjbassi/gotop
2019-01-17 13:00:38 +08:00
```
2019-01-17 06:57:54 +08:00
### Prebuilt binaries
2018-02-19 15:25:02 +08:00
2019-01-17 06:02:54 +08:00
**Note**: Doesn't require Go.
2018-11-30 13:41:42 +08:00
Clone the repo and then run [scripts/download.sh](./scripts/download.sh) to download the correct binary for your system from the [releases tab](https://github.com/cjbassi/gotop/releases):
2018-04-14 07:46:27 +08:00
2018-10-23 10:18:06 +08:00
```bash
2018-05-11 12:37:54 +08:00
git clone --depth 1 https://github.com/cjbassi/gotop /tmp/gotop
/tmp/gotop/scripts/download.sh
```
2018-02-19 15:25:02 +08:00
2019-01-05 01:35:18 +08:00
Then move `gotop` into your `$PATH` somewhere.
2018-02-19 15:25:02 +08:00
### Arch Linux
2019-01-05 01:35:18 +08:00
Install `gotop`, `gotop-bin`, or `gotop-git` from the AUR.
2018-02-19 15:25:02 +08:00
### FreeBSD
```bash
pkg install gotop
```
2018-05-24 12:51:33 +08:00
### Homebrew
```bash
2018-05-24 12:51:33 +08:00
brew tap cjbassi/gotop
brew install gotop
```
### Snap
```bash
snap install gotop-cjbassi
```
**Note**: You may need to enable certain permissions for all of the widgets to work:
```bash
snap connect gotop-cjbassi:hardware-observe
snap connect gotop-cjbassi:mount-observe
snap connect gotop-cjbassi:system-observe
```
2018-02-21 10:57:18 +08:00
## Usage
### Keybinds
2018-02-19 15:25:02 +08:00
2018-08-17 07:29:31 +08:00
- Quit: `q` or `<C-c>`
- 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
- `dd`: kill selected process or group of processes
- Process sorting:
2018-08-17 07:29:31 +08:00
- `c`: CPU
- `m`: Mem
- `p`: PID
- 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
2018-08-17 07:29:31 +08:00
- `?`: toggles keybind help menu
2018-05-11 15:56:44 +08:00
2018-02-21 11:03:53 +08:00
### Mouse
2018-02-19 15:25:02 +08:00
2018-08-17 07:29:31 +08:00
- click to select process
- mouse wheel to scroll through processes
2018-02-19 15:25:02 +08:00
2018-03-10 05:36:54 +08:00
### Colorschemes
2018-02-19 15:25:02 +08:00
2018-12-23 11:18:32 +08:00
gotop 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-02-16 18:11:05 +08:00
To make a custom colorscheme, check out the [template](./colorschemes/template.go) for instructions and then use [default.json](./colorschemes/default.json) as a starter. Then put the file at `~/.config/gotop/<name>.json` and load it with `gotop -c <name>`. Colorschemes PR's are welcome!
2018-05-11 15:56:44 +08:00
2018-03-10 05:36:54 +08:00
### CLI Options
2018-08-17 07:29:31 +08:00
`-c`, `--color=NAME` Set a colorscheme.
`-m`, `--minimal` Only show CPU, Mem and Process widgets.
`-r`, `--rate=RATE` Number of times per second to update CPU and Mem widgets [default: 1].
2019-02-16 17:56:35 +08:00
`-V`, `--version` Print version and exit.
2018-09-19 07:39:41 +08:00
`-p`, `--percpu` Show each CPU in the CPU widget.
2019-01-05 01:51:31 +08:00
`-a`, `--averagecpu` Show average CPU in the CPU widget.
`-s`, `--statusbar` Show a statusbar with the time.
2019-05-30 06:07:01 +08:00
`-b`, `--battery` Show battery level widget (`minimal` turns off). [preview](./assets/screenshots/battery.png)
2019-05-15 04:44:18 +08:00
`-i`, `--interface=NAME` Select network interface [default: all].
2018-04-12 02:23:19 +08:00
2018-04-14 08:02:10 +08:00
## Built With
2019-01-01 08:55:50 +08:00
- [gizak/termui](https://github.com/gizak/termui)
- [nsf/termbox](https://github.com/nsf/termbox-go)
- [exrook/drawille-go](https://github.com/exrook/drawille-go)
- [shirou/gopsutil](https://github.com/shirou/gopsutil)
- [goreleaser/nfpm](https://github.com/goreleaser/nfpm)
2019-01-05 01:51:31 +08:00
- [distatus/battery](https://github.com/distatus/battery)
2018-04-14 08:02:10 +08:00
2018-04-10 10:15:25 +08:00
## Stargazers over time
[![Stargazers over time](https://starcharts.herokuapp.com/cjbassi/gotop.svg)](https://starcharts.herokuapp.com/cjbassi/gotop)