2018-02-19 15:25:02 +08:00
# gotop
2018-02-22 04:09:46 +08:00
![image ](https://github.com/cjbassi/gotop/blob/master/demo.gif )
2018-02-19 15:25:02 +08:00
2018-03-05 12:00:55 +08:00
Another TUI 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-21 10:57:18 +08:00
Built with [gopsutil ](https://github.com/shirou/gopsutil ), [drawille-go ](https://github.com/exrook/drawille-go ), and a modified version of [termui ](https://github.com/gizak/termui ).
2018-02-19 15:25:02 +08:00
## Installation
2018-02-21 11:38:59 +08:00
### Binaries
2018-02-21 18:37:29 +08:00
Binaries are currently available for 32/64bit Linux and 64bit OSX.
2018-02-19 15:25:02 +08:00
2018-02-26 14:51:51 +08:00
To download the latest binary for your system from GitHub, you can run the [download ](https://github.com/cjbassi/gotop/blob/master/download.sh ) script:
2018-02-19 15:25:02 +08:00
2018-02-23 06:42:26 +08:00
```
2018-02-27 04:55:05 +08:00
sh -c "$(curl https://raw.githubusercontent.com/cjbassi/gotop/master/download.sh)"
2018-02-23 06:42:26 +08:00
```
2018-02-19 15:25:02 +08:00
2018-02-26 14:51:51 +08:00
Then move `gotop` into your $PATH somewhere.
2018-02-19 15:25:02 +08:00
### Arch Linux
2018-02-26 15:02:50 +08:00
Alternatively, if you're on Arch Linux, you can install the `gotop` package from the AUR.
2018-02-19 15:25:02 +08:00
2018-02-21 11:38:59 +08:00
### Source
2018-02-23 06:42:26 +08:00
```
go get github.com/cjbassi/gotop
```
2018-02-21 11:38:59 +08:00
2018-02-19 15:25:02 +08:00
2018-02-21 10:57:18 +08:00
## Usage
### Keybinds
2018-02-19 15:25:02 +08:00
2018-03-05 12:00:55 +08:00
* Quit: `q` or `<C-c>`
2018-02-19 15:25:02 +08:00
* Navigation:
* `<up>` /`< down > ` and `j` /`k`: up and down
2018-03-05 12:00:55 +08:00
* `<C-d>` and `<C-u>` : up and down half a page
* `<C-f>` and `<C-b>` : up and down a full page
2018-02-19 15:25:02 +08:00
* `gg` and `G` : jump to top and bottom
* Process Sorting:
* `c` : CPU
* `m` : Mem
* `p` : PID
* `<tab>` : toggle process grouping
* `dd` : kill the selected process or process group
* `?` : toggles keybind help menu
2018-02-21 11:03:53 +08:00
### Mouse
2018-02-19 15:25:02 +08:00
* click to select process
2018-02-26 14:51:51 +08:00
* mouse wheel to scroll through processes
2018-02-19 15:25:02 +08:00
## Colorschemes
2018-02-20 03:54:04 +08:00
A different Colorscheme can be set with the `-c` flag followed its name. You can find them in the `colorschemes` folder.
2018-02-21 15:57:27 +08:00
Feel free to add a new one. You can use 256 colors, bold, underline, and reverse. You can see the template and get more info [here ](https://github.com/cjbassi/gotop/blob/master/colorschemes/template.go ) and see the default colorscheme as an example [here ](https://github.com/cjbassi/gotop/blob/master/colorschemes/default.go ).
2018-02-19 15:25:02 +08:00
## TODO
* Network Usage
- increase height of sparkline depending on widget size
* Process List
- memory total goes above 100%
2018-03-04 09:05:52 +08:00
* Graphs
- zooming in and out of graphs
2018-02-20 16:03:45 +08:00
- command line option to set polling interval for CPU and mem
2018-03-04 09:05:52 +08:00
* general
2018-02-20 16:03:45 +08:00
- command line option to only show processes, CPU, and mem
2018-02-26 15:02:50 +08:00
- gopsutil cross-compiling issue on linux_amd64 for darwin_i386
2018-03-04 09:05:52 +08:00
* try to get the drawille fork merged upstream
* termui code cleanup
2018-02-26 15:02:50 +08:00
- termui buffers should ignore characters set outside the widget area
2018-02-24 13:15:38 +08:00
- ignore writes or give an error?
- termui Blocks should be indexed at 0, and maybe change their X and Y variables too
2018-02-26 15:02:50 +08:00
- draw borders and label after widget contents
- only merge buffers that are within the original's area