3.1 KiB
gotop
Another TUI graphical activity monitor, inspired by gtop and vtop, this time written in Go!
Built with gopsutil, drawille-go, and a modified version of termui.
Installation
Binaries
Binaries are currently available for 32bit and 64bit Linux and OSX.
To download the latest binary for your OS into /usr/bin
, you can run the install script:
curl https://raw.githubusercontent.com/cjbassi/gotop/master/install.sh | sudo bash
If you install this way, starting gotop with the -u
flag will update if there's a newer version.
To uninstall:
sudo rm /usr/bin/gotop
Arch Linux
Alternatively, if you're on Arch Linux you can install the gotop
package from the AUR.
Source
github.com/cjbassi/gotop
Usage
Keybinds
- Quit:
q
orCtrl-c
- Navigation:
<up>
/<down>
andj
/k
: up and downC-d
andC-u
: up and down half a pageC-f
andC-b
: up and down a full pagegg
andG
: jump to top and bottom
- Process Sorting:
c
: CPUm
: Memp
: PID
<tab>
: toggle process groupingdd
: kill the selected process or process group<left>
/<right>
andh
/l
: zoom in and out of graphs?
: toggles keybind help menuu
: update gotop
Mouse
- click to select process
- mouse wheel to scroll Process List
Colorschemes
A different Colorscheme can be set with the -c
flag followed its name. You can find them in the colorschemes
folder.
Feel free to add a new one. You can use 256 colors, bold, underline, and reverse. More info here and here under 'Output256'.
TODO
- Network Usage
- increase height of sparkline depending on widget size
- Process List
- memory total goes above 100%
- Disk Usage
- color percentage based on usage
- change bar color to white
- CPU Usage
- support colors for more CPU cores
- general
- add support for themes
- copy over vtop themes
- command line option to set polling interval for CPU and mem
- command line updating
- command line option to only show processes, CPU, and mem
- zooming in and out of graphs
- add gif
- create a mac binary
- 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 list and table
- turn column width logic into a function
- 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
- Remove merge altogether
- termui Blocks should ignore writing to the outside area