CPU, RAM, and load monitor for use with tmux
240752d800
Since the headers for cpu, memory and load functions are virtually the same for all platforms, I've decided to move them into common/ dir and do some refacotring: * removed per-platform header files * implemented get_cpu_count() function across all platforms. We are using it cpu on every platform, yet not on every one this was implemented as a separate function. * removed platform detection through preprocessor from main: we don't need this there anymore, since the headers are common for all platforms. CMake will handle setting of correct source files for us now. * Unified used defines for CPU states across all platforms and made linux use them. Added some platform detection to cpu.h in order to set them correctly across the platforms. * moved getsysctl.h to common/ dir, since it's used on Net and Free BSD, and thus become a common include. |
||
---|---|---|
common | ||
freebsd | ||
linux | ||
netbsd | ||
openbsd | ||
osx | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
CMakeLists.txt | ||
CONTRIBUTING.rst | ||
LICENSE | ||
README.rst |
==================================================== tmux-mem-cpu-load ==================================================== ---------------------------------------------------- CPU, RAM memory, and load monitor for use with tmux_ ---------------------------------------------------- .. image:: https://travis-ci.org/thewtex/tmux-mem-cpu-load.svg :target: https://travis-ci.org/thewtex/tmux-mem-cpu-load Description =========== A simple, lightweight program provided for system monitoring in the *status* line of **tmux**. The memory monitor displays the used and available memory. The CPU usage monitor outputs a percent CPU usage over all processors. It also displays a textual bar graph of the current percent usage. The system load average is also displayed. Example output:: 2885/7987MB [||||| ] 51.2% 2.11 2.35 2.44 ^ ^ ^ ^ ^ ^ ^ | | | | | | | 1 2 3 4 5 6 7 1. Currently used memory. 2. Available memory. 3. CPU usage bar graph. 4. CPU usage percentage. 5. Load average for the past minute. 6. Load average for the past 5 minutes. 7. Load average for the past 15 minutes. For `terminals with 256 color support`_, graded colors can be displayed by passing the **--colors** flag. Installation ============ Dependencies ------------ Currently, Linux, Mac OSX, FreeBSD and OpenBSD are supported. Building ~~~~~~~~ * >= CMake_ -2.6 * C++ compiler with C++11 support (e.g. gcc/g++ >= 4.6) Download -------- There are links to the source code at the `project homepage`_. Build ----- :: cd <source dir> cmake . make Install ------- :: su - make install logout Configuring tmux_ ================= Edit ``$HOME/.tmux.conf`` to display the program's output in *status-left* or *status-right*. For example:: set -g status-interval 2 set -g status-left "#S #[fg=green,bg=black]#(tmux-mem-cpu-load --colors --interval 2)#[default]" Note that the *interval* argument to `tmux-mem-cpu-load` should be the same number of seconds that *status-interval* is set at. Another optional argument is the number of bars in the bar graph, which defaults to 10. This can, for instance, be set to the number of cores in a multi-core system. The *colors* option will add graded colors for each of the measures. The full usage:: Usage: tmux-mem-cpu-load [OPTIONS] Available options: -h, --help Prints this help message --colors Use tmux colors in output -i <value>, --interval <value> Set tmux status refresh interval in seconds. Default: 1 second -g <value>, --graph-lines <value> Set how many lines should be drawn in a graph. Default: 10 Authors ======= Matt McCormick (thewtex) <matt@mmmccormick.com> Contributions from: * Justin Crawford <justinc@pci-online.net> * krieiter <krieiter@gmail.com> * Mark Palmeri <mlp6@duke.edu> * `Pawel 'l0ner' Soltys`_ <pwslts@gmail.com> .. _tmux: http://tmux.sourceforge.net/ .. _CMake: http://www.cmake.org .. _`project homepage`: http://github.com/thewtex/tmux-mem-cpu-load .. _`terminals with 256 color support`: http://misc.flogisoft.com/bash/tip_colors_and_formatting#terminals_compatibility .. _`Pawel 'l0ner' Soltys` : http://l0ner.github.io/