tMerge branch 'master' of z3bra.org:scripts - scripts - various script and utils
 (HTM) git clone git://z3bra.org/scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 7aeac4ef0584de76ef578bcb842c95434b5da7f9
 (DIR) parent 6ffd419b64b639da84b134b0583eca79616a8edb
 (HTM) Author: z3bra <willy@mailoo.org>
       Date:   Wed, 26 Mar 2014 19:43:21 +0100
       
       Merge branch 'master' of z3bra.org:scripts
       
       Diffstat:
         A menu                                |      19 +++++++++++++++++++
         D menu.sh                             |      19 -------------------
         M popup                               |     120 +++++++++++++++++++++++++------
       
       3 files changed, 117 insertions(+), 41 deletions(-)
       ---
 (DIR) diff --git a/menu b/menu
       t@@ -0,0 +1,19 @@
       +#!/bin/sh
       +X=1790
       +Y=820
       +
       +if which xdpyinfo >/dev/null; then
       +    dimensions=`xdpyinfo -ext XINERAMA | grep 'head #0' | sed 's/^  head #//p'`
       +
       +    IFS=' :x@,' read i w h x y <<< "$dimensions"
       +fi
       +
       +X=`expr ${w} - 120 - 10`
       +Y=`expr ${h} - 240 - 10`
       +
       +thingmenu -x -s -g 120x120+${X}+${Y} \
       +    "pop a terminal"    "urxvt" \
       +    "browse the web"    "surf || dwb" \
       +    "view a pdf"        "mupdf || zathura" \
       +    "play a game"       "steam" \
       +    "restart 2bwm"      "pkill 2bwm; 2bwm" 2> /dev/null
 (DIR) diff --git a/menu.sh b/menu.sh
       t@@ -1,19 +0,0 @@
       -#!/bin/sh
       -X=1790
       -Y=820
       -
       -if which xdpyinfo; then
       -    dimensions=`xdpyinfo -ext XINERAMA | grep 'head #0' | sed 's/^  head #//p'`
       -
       -    IFS=' :x@,' read i w h x y <<< "$dimensions"
       -fi
       -
       -X=`expr ${w} - 120 - 10`
       -Y=`expr ${h} - 240 - 20`
       -
       -thingmenu -x -s -g 120x120+${X}+${Y} \
       -    "pop a terminal"    "urxvt" \
       -    "browse the web"    "surf || dwb" \
       -    "view a pdf"        "mupdf || zathura" \
       -    "play a game"       "steam" \
       -    "restart 2bwm"      "pkill 2bwm; 2bwm"
 (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"