Skip to content

pramodtech/rainbarf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

rainbarf - CPU/RAM/battery stats chart bar for tmux (and GNU screen)

VERSION

version 0.6

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.

SCREENSHOTS

iTerm2 with tmux-powerline, Solarized theme and Terminus font

rainbarf --battery --remaining --rgb

Mac OS X screenshot

OSX Terminal with Tomorrow Night theme and Menlo font

rainbarf --battery --remaining --no-bright

Mac OS X screenshot, v2

Ubuntu Terminal with default theme and Monospace font

rainbarf --battery --bolt --bright

Ubuntu screenshot

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.

CONFIGURATION FILE

~/.rainbarf.conf can be used to persistently store "OPTIONS":

# example configuration file
width=20   # widget width
bolt       # fancy charging character
remaining  # display remaining battery
rgb        # 256-colored palette

"OPTIONS" specified via command line override that values.

OPTIONS

  • --help

    This.

  • --[no]battery

    Display the battery charge indicator.

  • --[no]remaining

    Display the time remaining until the battery is fully charged/empty. See "CAVEAT".

  • --[no]bolt

    Display even fancier battery indicator .

  • --[no]bright

    Tricky one. Disabled by default. See "CAVEAT".

  • --[no]rgb

    Use the RGB palette instead of the system colors. Also disabled by default, for the same reasons as above.

  • --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 ( __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 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

Time remaining

If the --remaining option is present but you do not see the time in your status bar, you may need to increase the value of status-right-length to 48.

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 issues 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!

Another option is skipping the system colors altogether and use the RGB palette (rainbarf --rgb). This fixes the issue 1, but doesn't affect the issue 2. It still looks better, though.

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 git://git.savannah.gnu.org/screen.git. 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 [email protected]

CONTRIBUTORS

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Stanislaw Pusep [email protected].

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

About

CPU/RAM/battery stats chart bar for tmux (and GNU screen)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Perl 100.0%