Another TUI graphical activity monitor, inspired by [vtop](https://github.com/MrRio/vtop) and [gtop](https://github.com/aksakalli/gtop), this time written in [Go](https://golang.org/)!
Built with [gopsutil](https://github.com/shirou/gopsutil), [drawille-go](https://github.com/exrook/drawille-go), and a heavily modified version of [termui](https://github.com/gizak/termui) which uses [termbox-go](https://github.com/nsf/termbox-go).
## Installation
Go code compiles to a single executable so you just need to somehow get that into your $PATH.
Either manually download the latest release for your OS from the releases tab and move it into `/bin`, or run this command to do it for you:
sudo ...
If you install this way, starting gotop with the `-u` flag or pressing `u` in gotop will check to see if there is a newer version available and automatically update if so.
*`<left>`/`<right>` and `h`/`l`: zoom in and out of graphs
*`?`: toggles keybind help menu
*`u`: update gotop
## Mouse Control
* mouse wheel to scroll processes
* click to select process
## Colorschemes
A different Colorscheme can be set with the `-c` startup flag followed its name, all of which can be found in the `colorschemes` folder.
Feel free to add a new one. You can use 256 colors for them, including bold, underline, and reverse. More info [here](https://godoc.org/github.com/nsf/termbox-go#Attribute) and [here](https://godoc.org/github.com/nsf/termbox-go#OutputMode) under Output256.
## TODO
* Network Usage
- increase height of sparkline depending on widget size
* Process List
- memory total goes above 100%
- extract out column position logic into a function
* Disk Usage
- color percentage
- change bar color to white
* general
- option to set polling interval for CPU and mem
- more themes
- zooming in and out of graphs
- updating
- option to only show processes, CPU, and mem
- gif of gotop
- more packages
- add license
* cleaning up code
- termui Blocks should ignore writing to the outside area
- Ignore writes to outside of inner area, or give error?
- termui Blocks should be indexed at 0, and maybe change X and Y variables too
- remove gotop unique logic from termui widgets
- try to get drawille fork merged upstream
- more documentation
- Draw borders and label after other stuff
- Only merge stuff in the range
- Merge should include offset
- Remove merge from grid buffer function, just render