tImproved popup to have more feature and use latest bar - scripts - various script and utils
 (HTM) git clone git://z3bra.org/scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 95a1c20decf79ddd565a50bcb1a8c9d9ec5d1805
 (DIR) parent 86a2b7c3fb6d6edca56de2b4ba3bc9d3f8c1b7b2
 (HTM) Author: z3bra <willy@mailoo.org>
       Date:   Wed, 26 Mar 2014 19:38:40 +0100
       
       Improved popup to have more feature and use latest bar
       
       Diffstat:
         M popup                               |     120 +++++++++++++++++++++++++------
       
       1 file changed, 98 insertions(+), 22 deletions(-)
       ---
 (DIR) diff --git a/popup b/popup
       t@@ -6,48 +6,124 @@
        TEXT='none'
        SLEEP=3
        
       +# bar options
       +font="-*-gohufont-medium-*-*--11-*-*-*-*-*-iso10646-1"
       +bg="#1d1d1d"
       +fg="#ffffff"
       +hl="#4c4c4c"
       +width=120
       +height=20
       +offx=1790
       +offy=790
       +
        usage() {
       -    echo "`basename $0` [-h] [-b] [-d <duration>] <any text..>"
       +    echo "`basename $0` [-hb] [-d delay] [-x offx] [-y offy] [-w width] [TEXT]"
        }
        
        spawn() {
       -    (echo "\c\f7 $@";sleep $SLEEP) | bar -w 120 -x 1790 -b -y 270 &
       +    (echo "%{c}$@";sleep $SLEEP) | bar -g $geom -f $font -B $bg -F $fg
       +}
       +
       +loop() {
       +    (while :; do
       +        echo "%{c}`$1`"
       +        sleep $SLEEP
       +    done) | bar -g $geom -f $font -B $bg -F $fg
       +}
       +
       +getvol() {
       +    vol=`amixer sget Master |
       +    sed -n 's/^.*\[\([0-9/]*%\)\].*\[\(o[nf]\+\)\]$/\1 (\2)/p' |
       +    uniq`
       +    case $1 in
       +        value) echo $vol | sed 's/%.*$//' ;;
       +        state) echo $vol | sed -n 's/^.*(\([onf]*\))/\1/p' ;;
       +        *) echo $vol ;;
       +    esac
       +}
       +
       +volume() {
       +    test "`getvol state`" = "off" && echo -n "muted - "
       +    echo -n "`getvol value`%%"
       +}
       +
       +volumebar() {
       +    max=10
       +    cur=$((`getvol value` / max))
       +
       +    test "`getvol state`" = "off" && fg='#d43f10'
       +
       +    for v in $(seq 1 $((max - 1))); do
       +        if [ "$v" -lt "$cur" ]; then
       +             val="$val%{F${fg}}━━"
       +         else
       +             val="$val%{F${hl}}━━"
       +        fi
       +    done
       +
       +    echo -n "${val}"
       +}
       +
       +battery() {
       +    BATC=`cat /sys/class/power_supply/BAT1/capacity`
       +    BATS=`cat /sys/class/power_supply/BAT1/status`
       +    echo "$BATC%% ($BATS)"
       +}
       +
       +mail() {
       +    echo "`fcount ~/var/mail/INBOX/new` new mail!"
       +}
       +
       +date() {
       +    date "+%d/%m/%y \(%H:%M\)"
       +}
       +
       +group() {
       +    cur=`xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}'`
       +    num=`xprop -root _NET_NUMBER_OF_DESKTOPS | awk '{print $3}'`
       +
       +    val=''
       +
       +    for w in $(seq 1 $((num - 1))); do
       +        if [ "$w" -eq "$cur" ]; then
       +             val="$val%{F${fg}}━━"
       +         else
       +             val="$val%{F${hl}}━━"
       +        fi
       +    done
       +
       +    echo -n "${val}"
        }
        
        test "$#" -lt 1 && exit 1
        
       -while getopts ":bd:h" opt; do
       +while getopts ":bd:hlw:x:y:" opt; do
            case $opt in
       -        b) BEEP=1 ;;
       +        b) BEEP=1        ;;
       +        l) LOOP=1        ;;
                d) SLEEP=$OPTARG ;;
       +        w) width=$OPTARG ;;
       +        x) offx=$OPTARG  ;;
       +        y) offy=$OPTARG  ;;
                h) usage; exit 0 ;;
                *) usage; exit 1 ;;
            esac
        done
        
       +geom=${width}x${height}+${offx}+${offy}
       +
        shift $(( OPTIND - 1 ));
        
        case $1 in
       -    volume)
       -        TEXT=`amixer sget Master |
       -            sed -n 's/^.*\[\([0-9/]*%\)\].*\[\(o[nf]\+\)\]$/\1 (\2)/p' |
       -            uniq`
       -        ;;
       -    battery)
       -        BATC=`cat /sys/class/power_supply/BAT1/capacity`
       -        BATS=`cat /sys/class/power_supply/BAT1/status`
       -        TEXT="$BATC% ($BATS)"
       +    volumebar|volume|battery|mail|date|group)
       +        TEXT=`$1`
       +        FUNC="$1" ;;
       +    *)
       +        TEXT="$@" 
       +        FUNC="echo $TEXT"
                ;;
       -    mail)
       -        TEXT="`fcount ~/var/mail/INBOX/new` new mail!"
       -        ;;
       -    date)
       -        TEXT=`date "+%d/%m/%y \(%H:%M\)"`
       -        ;;
       -
       -    *) TEXT="$@" ;;
        esac
        
        # can be *REALLY* annoying
        test -n "$BEEP" && beep -f 1500 -d 20 -l 100
       -spawn "$TEXT"
       +test -n "$LOOP" && loop "$FUNC" || spawn "$TEXT"