tMerge branch 'master' of gitorious.org:z3bra/scripts - scripts - various script and utils
 (HTM) git clone git://z3bra.org/scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 1cbcba3dd3b3d231d6c0059f10a845c4a03ca18f
 (DIR) parent ab3decbcbe448c33385aaed0aa389523565dcfef
 (HTM) Author: Willy Goiffon <w.goiffon@gmail.com>
       Date:   Mon,  4 Nov 2013 01:14:05 +0100
       
       Merge branch 'master' of gitorious.org:z3bra/scripts
       
       Diffstat:
         M bar/config.sh                       |      94 ++++++++++---------------------
         M bar/status.sh                       |     109 +++++++++++++++++++------------
       
       2 files changed, 97 insertions(+), 106 deletions(-)
       ---
 (DIR) diff --git a/bar/config.sh b/bar/config.sh
       t@@ -14,7 +14,6 @@
        bg="0"
        fg="9"
        hl="8"
       -dk="1"
        
        # separator
        sp="  "
       t@@ -22,67 +21,40 @@ sp="  "
        # path to executable
        bar="/usr/bin/bar -f"
        
       -# pipe to feed the bar
       -fifo=/tmp/bar.fifo
       -
       -# refresh frenquency (in seconds)
       -refresh=0.75
       -
       -# info icons (from stlarch_font package. use gbdfed to view/modify font)
       -# i_arch='\ue0a1'     # arch logo
       -# # i_pkgs='\ue14d'   # pacman
       -# i_pkgs='\ue0aa'     # pacman ghost
       -# i_mail='\ue072'     # mail icon
       -# i_wifi='\ue0f0'     # signal
       -# i_netw='\ue149'     # wired
       -# i_time='\ue017'     # clock
       -# # i_batt='\ue040'     # thunder
       -# i_batt='\ue10c'     # power
       -# i_load='\ue021'     # micro chip
       -# i_memy='\ue145'     # floppy
       -# i_musk='\ue04d'     # headphones
       -# i_alsa='\ue05d'     # speaker
       -i_arch='SYS'
       -i_pkgs='PKG'
       -i_mail='MSG'
       -i_wifi='SIG'
       -i_netw='NET'
       -# i_time='CLK'
       -i_batt='BAT'
       -i_load='CPU'
       -i_memy='RAM'
       -i_grap='GPU'
       -i_fans='FAN'
       -i_musk='MPD'
       -i_alsa='VOL'
       -i_mail='MSG'
       -i_time='CLK'
       +#info icons (from stlarch_font package. use gbdfed to view/modify font)
       +i_arch='\ue0a1'     # arch logo
       +i_pkgs='\ue14d'   # pacman
       +i_pkgs='\ue0aa'     # pacman ghost
       +i_mail='\ue072'     # mail icon
       +i_wifi='\ue0f0'     # signal
       +i_netw='\ue149'     # wired
       +i_time='\ue017'     # clock
       +i_batt='\ue040'     # thunder
       +i_sect='\ue10c'     # power (on A/C)
       +i_load='\ue021'     # micro chip
       +i_memy='\ue145'     # floppy
       +i_musk='\ue04d'     # headphones
       +i_alsa='\ue05d'     # speaker
        
        # workspace icons / names     (α β γ δ ε ζ η θ ι κ λ)
       -# i_trm=$(echo -e '\ue09f')         # default
       -# i_web=$(echo -e '\ue0ab')         # web browsing
       -# i_dev=$(echo -e '\ue19a')         # intense coding
       -# i_com=$(echo -e '\ue074')         # irc, voip, etc..
       -# i_fun=$(echo -e '\ue19d')         # games
       -# i_sys=$(echo -e '\ue09e')         # sys admin
       -# i_wrk=$(echo -e '\ue146')         # reports, etc..
       -# i_meh=$(echo -e '\ue14d')         # just chillin'
       -# i_far=$(echo -e '\ue00e')         # just chillin'
       -i_trm=$(echo -e 'ZSH')
       -i_web=$(echo -e 'WEB')
       -i_dev=$(echo -e 'DEV')
       -i_com=$(echo -e 'IRC')
       -i_fun=$(echo -e 'FUN')
       -i_sys=$(echo -e 'SYS')
       -i_wrk=$(echo -e 'WRK')
       -i_meh=$(echo -e 'MEH')
       -i_far=$(echo -e 'ALL')
       +i_trm=$(echo -e '0')
       +i_web=$(echo -e '1')
       +i_dev=$(echo -e '2')
       +i_com=$(echo -e '3')
       +i_fun=$(echo -e '4')
       +i_sys=$(echo -e '5')
       +i_wrk=$(echo -e '6')
       +i_meh=$(echo -e '7')
       +i_far=$(echo -e '8')
        
        
        # specific parameters
        # desktop names
        dskp_tag=('' $i_trm $i_web $i_dev $i_com $i_fun $i_sys $i_wrk $i_meh $i_far)
        
       +# colors
       +colors=(black red green yellow blue cyan magenta white black white)
       +
        # now playing format
        mpc_format='[%title% ]|[%file%]'
        
       t@@ -90,17 +62,11 @@ mpc_format='[%title% ]|[%file%]'
        alsa_channel='Master'
        
        # define you own interfaces
       -net_wire='enp4s0'
       -net_wifi='enp3s0'
       -# which interface do you want to use ?
       -net_interface=$net_wire
       +net_wire='eth0'
       +net_wifi='wlan0'
        
        # Only the time ? with seconds ? Maybe the current year...?
        date_format="%H.%M"
        
       -# used to get current workspace
       -wm_lib_xcb="XCB"    # DO NOT MODIFY
       -wm_lib_xlib="XLIB"  # DO NOT MODIFY
       -wm_lib=$wm_lib_xcb  # which library does your WM use ?
       -                    # xcb *should* work with any WM, as it uses `xprop`, whereas
       -                    # xlib uses `wmctrl` which works ONLY with Xlib.
       +# The default program to use, is -O <program> is not passed
       +default_output='bar'
 (DIR) diff --git a/bar/status.sh b/bar/status.sh
       t@@ -2,30 +2,45 @@
        
        source $(dirname $0)/config.sh
        
       +OUT=$default_output
       +
       +function fg() {
       +    case $1 in
       +        bar)    echo "\f$2" ;;
       +        tmux)   echo "#[fg=${colors[$2]}]" ;;
       +        none)   echo "" ;;
       +        ?)      echo "\f$2" ;;
       +    esac
       +}
       +
       +function bg() {
       +    case $1 in
       +        bar)    echo "\b$2" ;;
       +        tmux)   echo "#[bg=$2]" ;;
       +        none)   echo "" ;;
       +        ?)      echo "\b$2" ;;
       +    esac
       +}
       +
        # print formatted output. need 2 params: display <value> <icon>
        function display () {
       -    echo -n     "\f${hl}"
       -    echo -ne    "$2 "
       -    echo        "${dl}\f${fg}$1"
       +    echo -n     "$(fg $OUT ${hl})"
       +    echo -en    "$2 "
       +    echo        "$(fg $OUT ${fg})$1"
        }
        
        function workspaces () {
       -    if [ "$wm_lib" = "$wm_lib_xcb" ]; then
       -        dskp_num=$(xprop -root _NET_NUMBER_OF_DESKTOPS | cut -d ' ' -f3)
       -        dskp_cur=$(xprop -root _NET_CURRENT_DESKTOP | cut -d ' ' -f3)
       -    elif [ "$wm_lib" = "$wm_lib_xlib" ]; then
       -        dskp_num=$(wmctrl -d| wc -l)
       -        dskp_cur=$(wmctrl -d |grep '*' |cut -d' ' -f1)
       -    fi
       +    dskp_num=$(xprop -root _NET_NUMBER_OF_DESKTOPS | cut -d ' ' -f3)
       +    dskp_cur=$(xprop -root _NET_CURRENT_DESKTOP | cut -d ' ' -f3)
        
            buffer=""
        
            for w in $(seq 1 $(($dskp_num-1))); do
                if [ "$w" -eq "$dskp_cur" ]; then
       -         buffer="$buffer $(echo -e '\ue190') "
       -             #buffer="$buffer\u${fg} ${dskp_tag[$w]} \u${bg}"
       -         else
       -            buffer="$buffer \f${hl}$(echo -e '\ue190')\fr "
       +            buffer="$buffer$(echo -e '\ue190')"
       +            #buffer="$buffer\u${fg} ${dskp_tag[$w]} \u${bg}"
       +        else
       +            buffer="$buffer$(fg $OUT ${hl})$(echo -e '\ue190')$(fg $OUT ${fg})"
                    #buffer="$buffer ${dskp_tag[$w]} "
                fi
            done
       t@@ -61,8 +76,9 @@ function groups() {
        
        function mails () {
            new=$(~/bin/mcount ~/var/mail/INBOX/new/)
       -    cur=$(~/bin/mcount ~/var/mail/INBOX/cur/)
       -    val="$new/$cur"
       +    #cur=$(~/bin/mcount ~/var/mail/INBOX/cur/)
       +    #val="$new/$cur"
       +    val="$new"
            ico=${i_mail}
        
            display "$val" "$ico"
       t@@ -81,14 +97,14 @@ function mpd_now_playing () {
        }
        
        function volume () {
       -    val=$(amixer sget $alsa_channel | sed -n 's/.*\[\([0-9/]*%\)\].*/\1/p')
       +    val=$(amixer sget $alsa_channel | sed -n 's/.*\[\([0-9/]*%\)\].*/\1/p' | uniq)
            ico=${i_alsa}
        
            display "$val" "$ico"
        }
        
        function battery () {
       -    val=$(acpi -b | sed 's/^.*[^0-9%]//')
       +    val=$(acpi -b | sed 's/^.* \([0-9]*%\).*$/\1/')
            ico=${i_batt}
        
            display "$val" "$ico"
       t@@ -168,33 +184,42 @@ function network () {
        
        function clock () {
            val=$(date +${date_format})
       -    #val=$((100*$(date +%H%M)/2400)) # Give the time in percentage
            ico=${i_time}
        
            display "$val" "$ico"
        }
        
        function fillbar () {
       -    buffer="\b${bg}\f${fg}\l\u${bg}  "
       -    buffer="$buffer$(mpd_now_playing) "
       -    buffer="$buffer\c"
       -    buffer="$buffer$(groups) "
       -    buffer="$buffer\r"
       -    # buffer="$buffer$(network) ${sp}"
       -    buffer="$buffer$(mails) ${sp}"
       -    buffer="$buffer$(memory) ${sp}"
       -    #buffer="$buffer$(processes) ${sp}"
       -    #buffer="$buffer$(gputemp) ${sp}"
       -    buffer="$buffer$(gpufanspeed) ${sp}"
       -    buffer="$buffer$(volume) ${sp}"
       -    #buffer="$buffer$(packages) ${sp}"
       -    buffer="$buffer$(clock)"
       -    buffer="$buffer "
       -    echo "$buffer"
       -}
       -
       -while :; do
       -    source $(dirname $0)/config.sh
       -    fillbar
       -    sleep ${refresh}
       -done | ${bar}
       +    while getopts "B:F:H:LCRO:s:bcflmnprtvw" opt; do
       +        case $opt in
       +            # Specific options for bar-aint-recursive
       +            B) bg=$OPTARG ;;    # background color
       +            F) fg=$OPTARG ;;    # foreground color
       +            H) hl=$OPTARG ;;    # highlights color
       +            L) buffer="${buffer}\l " ;;              # left justify
       +            C) buffer="${buffer}\c " ;;              # center text
       +            R) buffer="${buffer}\r " ;;              # right justify
       +
       +            # Which program is the output intended for ? (bar|tmux|none)
       +            O) OUT=$OPTARG ;;
       +
       +            # Content of the output
       +            b) buffer="${buffer}$(battery) ${sp}"           ;;
       +            c) buffer="${buffer}$(clock) ${sp}"             ;;
       +            f) buffer="${buffer}$(gpufanspeed) ${sp}"       ;;
       +            l) buffer="${buffer}$(mpd_now_playing) ${sp}"   ;;
       +            m) buffer="${buffer}$(mails) ${sp}"             ;;
       +            n) buffer="${buffer}$(network) ${sp}"           ;;
       +            p) buffer="${buffer}$(processes) ${sp}"         ;;
       +            r) buffer="${buffer}$(memory) ${sp}"            ;;
       +            t) buffer="${buffer}$(gputemp) ${sp}"           ;;
       +            v) buffer="${buffer}$(volume) ${sp}"            ;;
       +            w) buffer="${buffer}$(groups) ${sp}"            ;;
       +        esac
       +    done
       +
       +    # Set the default fg/bg and remove trailing separator (if any)
       +    echo "$(bg $OUT ${bg})$(fg $OUT ${fg}) $buffer " | sed "s/${sp}$//"
       +}
       +
       +fillbar $@