xmtop/README.md
2018-02-20 18:57:18 -08:00

3.2 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

Go compiles to a single binary so you just need to get that into your $PATH.
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

Currently only tested on Arch Linux x86_64, so create an issue if your binary doesn't work.

Arch Linux

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

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
  • <left>/<right> and h/l: zoom in and out of graphs
  • ?: toggles keybind help menu
  • u: update gotop

Mouse Control

  • 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