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"