rainbarf - CPU/RAM stats chart for tmux & screen
version 0.2
rainbarf --tmux --width 40 --no-battery
Fancy resource usage charts to put into the tmux status line. The load 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.
rainbarf --battery --no-bright
rainbarf --battery --bolt --bright
Put rainbarf
into your $PATH
.
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
.
-
--help
This. To see as a manpage, use
perldoc ~/bin/rainbarf
(if you putrainbarf
in your~/bin
). -
--[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.
-
--max NUMBER
Maximum load you expect before rescaling the chart. Default is 1.
-
--order INDEXES
Specify the memory usage bar order. The default is
fwaic
(__f__ree, __w__ired, __a__ctive, __i__nactive & __c__ached). -
--[no]tmux
Force
tmux
colors mode. By default,rainbarf
detects automatically if it is being called fromtmux
or from the interactive shell. -
--screen
-
--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 thestatus-right-length
value in~/.tmux.conf
.
If you only see the memory usage bars but no load 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:
- Other color schemes (notably, solarized) have different meaning for the ANSI bright attribute. So using it will result in a quite psychedelic appearance.
- 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!
Load 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 load 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.
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 git://git.savannah.gnu.org/screen.git.
My ~/.screenrc
contents:
backtick 1 15 15 rainbarf --bright --screen
hardstatus string "%1`"
hardstatus lastline
- uptime(1) is used to get the load stats if
/proc/loadavg
is unavailable. - vm_stat(1) is used to get the memory stats if
/proc/meminfo
is unavailable. - 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.
Stanislaw Pusep stas@sysd.org
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.