gotop/README.md

2.7 KiB

gotop

image

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 32/64bit Linux and 64bit OSX.

To download the latest binary for your system from GitHub, you can run the download script:

sh -c "$(curl https://raw.githubusercontent.com/cjbassi/gotop/master/download.sh)"

Then move gotop into your $PATH somewhere.

Arch Linux

Alternatively, if you're on Arch Linux, you can install the gotop package from the AUR.

Source

go get github.com/cjbassi/gotop

Usage

Keybinds

  • Quit: q or Ctrl-c
  • Navigation:
    • <up>/<down> and j/k: up and down
    • C-d and C-u: up and down half a page
    • C-f and C-b: up and down a full page
    • 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

Mouse

  • click to select process
  • mouse wheel to scroll through processes

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. You can see the template and get more info here and see the default colorscheme as an example here.

TODO

  • Network Usage
    • increase height of sparkline depending on widget size
  • Process List
    • memory total goes above 100%
  • general
    • command line option to set polling interval for CPU and mem
    • command line option to only show processes, CPU, and mem
    • zooming in and out of graphs
    • gopsutil cross-compiling issue on linux_amd64 for darwin_i386
  • code cleanup
    • more comments
    • termui buffers should ignore characters set outside the widget area
      • ignore writes or give an error?
    • termui Blocks should be indexed at 0, and maybe change their X and Y variables too
    • try to get the drawille fork merged upstream
    • draw borders and label after widget contents
    • only merge buffers that are within the original's area