github xxxserxxx/gotop v4.0.0
Alice in Wonderland

latest releases: v4.2.0, v4.1.4, v4.1.3...
3 years ago

NOTE: Command line options have changed.

This is a major release for gotop; it includes new features, improvements, fixes, and changes to the command-line arguments.

Argument changes & new features

The arg parsing library changed to a smaller, and more POSIX-compliant, library. New arguments have been added, deprecated arguments have been removed, and some values have changed.

  • --graphscale allows setting the initial scale of graphs, rather than requiring manual setting every run

  • -v, -V, and --version all print the version

  • --minimal and --battery arguments to select a layout have been removed; use --layout minimal or --layout battery instead

  • --bandwidth, which did nothing, was removed

  • --extensions has been removed. Go's plugin mechanism in it's current state has too many limitations to make it useful for gotop, so until this changes a different approach to extending gotop has been implemented.

  • --rate now takes a Duration; this now means the refresh period, rather than the number of times per second to refresh. Examples are -r 0.5s (twice a second), -r 500ms (same), -r 2s (every two seconds), -r 5m (every 5 minutes), etc.

  • --mbps shows the network transfer rates in Mbps

  • -C sets a different config file than the default

  • --list prints out various settings and options.

    • devices shows all of the filterable values for widgets that have filtration (currently only temperatures is implemented, but this will grow)
    • layouts list all of the built-in layouts
    • colorschemes prints all of the built-in color schemes
    • paths shows where gotop will search for config files and logs
    • widgets list the widget names that can be used in layouts
    • keys prints the keyboard bindings
  • --write-config will cause gotop to create a config file in the user-local config directory. This can be used with command line options to change config file settings, preventing most needs to edit the file manually. For example, when gotop is first installed an no config file exists, the command

     gotop --rate 2s -asl kitchensink -c solarized --write-config
    

    will create a config file with the values specified on the command line, and all of the other options with their defaults. The refresh rate can then be changed with:

     gotop --rate 1s --write-config
    

Everything that can be set on the command line, except -C itself, is configurable in the command line.

Configuration files can now have comment lines: any line starting with # will be ignored, as are blank lines.

Other changes

System-wide configurations are supported; gotop now looks for configurations in /etc/gotop (on Linux) -- this location varies between OSes. Configurations have precedence: a configuration specified by -C will always be used; followed by a config file found in $PWD; followed by a config file in the user's config dir (XDG_CONFIG_DIR for XDG systems, and $HOME otherwise); followed by the system-wide location.

Graph labels that don't fit (vertically) in the window are now drawn in additional columns (#40). This means that systems with more CPU cores than fit in the graph window will now be shown, rather than being truncated at the bottom of the graph. If you are running a ThreadRipper, this may mean the graph is filled with CPU labels, and you may want to use the -a switch.

Darwin exposes a large number of thermal sensors. While gotop attempts to choose a sensible subset of sensors, a different set can be configured. This can be configured in a config file by uncommenting the temperatures setting and adding a comma-separated list of sensor names; the options can be printed with the --list devices argument.

For Linux console users (non-X, non-Wayland), a Linux console font is provided that might improve the look of gotop. This can be used by running:

curl -O https://github.com/xxxserxxx/gotop/raw/master/fonts/Lat15-VGA16-braille.psf
setfont Lat15-VGA16-braille.psf

The extension mechanism has been changed to make using special features easier. Two extensions are currently provided: one gives access to NVidia graphics card sensors, and the other enables rendering metrics from gotop running on remote machines. Because permutations make providing pre-built binaries impractical, this requires having Go installed and building gotop yourself; however, a tool has been provided to simplify this process.

  • The extension builder tool is where you start. Download this and follow the instructions, which consist of two steps (and an optional third).
  • The NVidia extension enables NVidia sensors; this does not need to be downloaded manually. The URL is provided to the builder tool.
  • The remote gotop extension enables showing sensors from remote gotop instances in a locally running gotop.

Instructions and limitations for the builder and extensions are on each of the project's pages.

gopsutil, the toolkit which provides most of the sensor data for gotop, has been upgraded to a more recent version.

The metrics library was replaced by a much more lightweight library, improving the code and reducing the size of the gotop executable by 25%.

Gotop was relicensed from AGPL to MIT-3.

Bug fixes

This release includes a number of bug fixes. Firstly, it carries forward all of the FreeBSD fixes in the recently released v3.5.3 version. Additional fixes are:

  • The help & statusbar features now obey the color scheme.
  • The help text layout was stale, and is now accurate.
  • A panic related to using custom color schemes has been fixed.
  • A bug introduced in an earlier version caused the memory widget to randomly assign colors to sensors at each run, introducing confusion between runs.
  • Disk space values were being truncated instead of being rounded; this was most visible on larger disks.
  • Temperature sensor data on Darwin were unreliable and usually wrong.
  • Gotop logging has always been chatty when there were issues, with the same error being repeated on every refresh. More of these messages are smart in this release in that they're reported the first time encountered, and then silenced -- this reduces the noise in the log file.

Don't miss a new gotop release

NewReleases is sending notifications on new releases.