NAME
rainbarf - CPU/RAM/battery stats chart bar for tmux (and GNU screen)
VERSION
version 0.4
SYNOPSIS
rainbarf --tmux --width 40 --no-battery
DESCRIPTION
Fancy resource usage charts to put into the tmux
status line. The CPU utilization history
chart is tinted with the following colors to reflect the system memory
allocation:
* green: free memory;
* yellow: active memory;
* blue: inactive memory;
* red: wired memory on *Mac OS X*;
* cyan: cached memory on *Linux*.
If available, battery charge is displayed on the right.
Just go to to see some
screenshots.
USAGE
Installation
perl Build.PL
./Build test
./Build install
Configuration
Add the following line to your ~/.tmux.conf file:
set -g status-right '#(rainbarf)'
Or, under *GNOME Terminal*:
set -g status-right '#(rainbarf --bright)'
Reload the tmux config by running "tmux source-file ~/.tmux.conf".
OPTIONS
--help
This.
--[no]battery
Display the battery charge indicator.
--[no]bolt
Display even fancier battery indicator.
--[no]bright
Tricky one. Disabled by default. See "CAVEAT".
--fg COLOR_NAME
Force chart foreground color.
--bg COLOR_NAME
Force chart background color.
--[no]loadavg
Use load average
metric instead of CPU utilization. You might want to set the "--max"
threshold since this is an absolute value and has varying ranges on
different systems.
--max NUMBER
Maximum "loadavg" you expect before rescaling the chart. Default is
1.
--order INDEXES
Specify the memory usage bar order. The default is "fwaic" ( free,
wired, active, inactive & cached ).
--[no]tmux
Force "tmux" colors mode. By default, rainbarf detects automatically
if it is being called from "tmux" or from the interactive shell.
--screen
screen(1)
colors mode. Experimental. See "CAVEAT".
--width NUMBER
Chart width. Default is 38, so both the chart and the battery
indicator fit the "tmux" status line. Higher values may require
disabling the battery indicator or raising the "status-right-length"
value in ~/.tmux.conf.
CAVEAT
Color scheme
If you only see the memory usage bars but no CPU utilization chart,
that's because your terminal's color scheme need an explicit distinction
between foreground and background colors. For instance, "red on red
background" will be displayed as a red block on such terminals. Thus,
you may need the ANSI bright attribute for greater contrast. There are
two problems with it, though:
1. Other color schemes (notably, solarized
) have different meaning for
the ANSI bright attribute. So using it will result in a quite
psychedelic appearance.
2. The older versions of Term::ANSIColor dependency do not recognize it
at all, resulting in a confusing error message *Invalid attribute
name bright_yellow at ...*. However, the whole Term::ANSIColor is
optional, it is only required to preview the effects of the
"OPTIONS" via command line before actually editing the ~/.tmux.conf.
That is, "rainbarf --bright --tmux" is guaranteed to work despite
the outdated Term::ANSIColor!
Persistent storage
CPU utilization stats are persistently stored in the ~/.rainbarf.dat
file. Every rainbarf execution will update and rotate that file. Since
"tmux" calls rainbarf periodically (every 15 seconds, by default), the
chart will display CPU utilization for the last ~9.5 minutes (15 * 38).
Thus, several "tmux" instances running simultaneously for the same user
will result in a faster chart scrolling.
screen
Stable "screen" version unfortunately has a broken UTF-8 handling
specifically for the status bar. Thus, I have only tested the rainbarf
with the variant from . My
~/.screenrc contents:
backtick 1 15 15 rainbarf --bright --screen
hardstatus string "%1`"
hardstatus lastline
REFERENCES
* top(1)
is used to get the CPU/RAM stats if no
/proc filesystem is available.
* ioreg(8)
is used to get the battery status on
*Mac OS X*.
* ACPI is used
to get the battery status on *Linux*.
* Battery was a source of
inspiration.
* Spark was another source of
inspiration.
AUTHOR
Stanislaw Pusep
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Stanislaw Pusep .
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.