tTools to generate an input well suited for a bar - scripts - various script and utils
 (HTM) git clone git://z3bra.org/scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit a874cfd7fff74d1ea76246954445839093fb0ed3
 (DIR) parent ce9ab30db7657ff32b273bd760c249256d10bbc4
 (HTM) Author: z3bra <willy@mailoo.org>
       Date:   Thu,  3 Apr 2014 10:43:04 +0200
       
       Tools to generate an input well suited for a bar
       
       Diffstat:
         A mkbar                               |      83 +++++++++++++++++++++++++++++++
       
       1 file changed, 83 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/mkbar b/mkbar
       t@@ -0,0 +1,83 @@
       +#!/bin/sh
       +#
       +# z3bra - (c) wtfpl 2014
       +# Fetch infos on your computer, and print them to stdout every second.
       +
       +clock() {
       +    date '+%H:%M'
       +}
       +
       +mails() {
       +    fcount ~/var/mail/INBOX/new
       +}
       +
       +battery() {
       +    BATC=/sys/class/power_supply/BAT1/capacity
       +    BATS=/sys/class/power_supply/BAT1/status
       +
       +    # prepend percentage with a '+' if charging, '-' otherwise
       +    test "`cat $BATS`" = "Charging" && echo -n '+' || echo -n '-'
       +
       +    # append the character '%' after the number
       +    sed 's/$/%%/' $BATC
       +}
       +
       +volume() {
       +    amixer get Master | sed -n 'N;s/^.*\[\([0-9]\+%\).*$/\1%/p'
       +}
       +
       +cpuload() {
       +    LINE=`ps -eo pcpu |grep -vE '^\s*(0.0|%CPU)' |sed -n '1h;$!H;$g;s/\n/ +/gp'`
       +    echo `bc <<< $LINE`%%
       +}
       +
       +memused() {
       +    read t f <<< `grep -E 'Mem(Total|Free)' /proc/meminfo |awk '{print $2}'`
       +    echo `bc <<< "scale=2; 100 - $f / $t * 100" | cut -d. -f1`%%
       +}
       +
       +network() {
       +    read lo int1 int2 <<< `ip link | sed -n 's/^[0-9]: \(.*\):.*$/\1/p'`
       +    if iwconfig $int1 >/dev/null 2>&1; then
       +        wifi=$int1
       +        eth0=$int2
       +    else
       +        wifi=$int2
       +        eth0=$int1
       +    fi
       +    ip link show $eth0 | grep 'state UP' >/dev/null && int=$eth0 || int=$wifi
       +
       +    ping -c 1 8.8.8.8 >/dev/null 2>&1 && 
       +        echo "$int up" || echo "$int down"
       +}
       +
       +groups() {
       +    cur=`xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}'`
       +    tot=`xprop -root _NET_NUMBER_OF_DESKTOPS | awk '{print $3}'`
       +
       +    for w in `seq 0 $((cur - 1))`; do line="${line}░░"; done
       +    line="${line}██"
       +    for w in `seq $((cur + 2)) $tot`; do line="${line}░░"; done
       +    echo $line
       +}
       +
       +nowplaying() {
       +    cur=`mpc current`
       +    # this line allow to choose whether the output will scroll or not
       +    test "$1" = "scroll" && PARSER='skroll -n20 -d0.5 -r' || PARSER='cat'
       +    test -n "$cur" && $PARSER <<< $cur || echo "- stopped -"
       +}
       +
       +# This loop will fill a buffer with our infos, and output it to stdout.
       +while :; do
       +    buf="%{l} "
       +    buf="${buf} $(groups) %{r}"
       +    buf="${buf} %{F#4c4c4c} CLK: %{F#ffffff}$(clock) "
       +    buf="${buf} %{F#4c4c4c} NET: %{F#ffffff}$(network) "
       +    buf="${buf} %{F#4c4c4c} CPU: %{F#ffffff}$(cpuload) "
       +    buf="${buf} %{F#4c4c4c} RAM: %{F#ffffff}$(memused) "
       +    buf="${buf} %{F#4c4c4c} VOL: %{F#ffffff}$(volume)  "
       +
       +    echo $buf
       +    sleep 1 # The HUD will be updated every second
       +done