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"