diff options
Diffstat (limited to 'mybar')
-rwxr-xr-x | mybar/mybar.awk | 135 | ||||
-rwxr-xr-x | mybar/mybar.sh | 63 | ||||
-rwxr-xr-x | mybar/wifi.awk | 22 |
3 files changed, 220 insertions, 0 deletions
diff --git a/mybar/mybar.awk b/mybar/mybar.awk new file mode 100755 index 0000000..d16dbf1 --- /dev/null +++ b/mybar/mybar.awk @@ -0,0 +1,135 @@ +#!/bin/awk -f + +BEGIN { + date="" + cpu="" + mem="" + battery="" + window="" + wminfo="" + redshift="" + wifi="" + + cpu_pused=0 + cpu_ptotal=0 +} +$1 == "date" { + date = $2 " " $3 " " $4 +} +$1 == "cpu" { + used=$2+$3+$4+$7+$8; + total=used+$5+$6; + + if(total - cpu_ptotal != 0) { + tmp=int(100*(used-cpu_pused)/(total-cpu_ptotal)); + } else { + tmp=0 + } + if(tmp > 100) { + tmp=0 + } + cpu_pused=used + cpu_ptotal=total + + if(tmp < 10) { + sp = " " + } else if(tmp < 100) { + sp = " " + } else { + sp = "" + } + f = int((tmp+5) / 10) + tmp = "CPU: " sp tmp "%" + cpu = "\\u3" substr(tmp, 1, f) "\\u4" substr(tmp, 1+f, 10-f) "\\ur" +} +$1 == "window" { + window=substr($0, 7, length($0)-6); +} +$1 == "mem" { + if($2 < 10) { + sp = " " + } else if($2 < 100) { + sp = " " + } else if($2 < 1000){ + sp = " " + } else { + sp = "" + } + tmp = "Mem:" sp $2 "MB" + f = int(($2 / 4096 * 10) + .5) + mem = "\\u3" substr(tmp, 1, f) "\\u4" substr(tmp, 1+f, 10-f) "\\ur" +} +$1 == "bspwm" { + #wminfo=substr($0, 7, length($0)-6) + split(substr($0, 7, length($0)-6), info, ":") + + wminfo=" \\u5" + sep="" + for(i in info) { + raw=info[i] + k=substr(raw, 1, 1) + v=substr(raw, 2, length(raw)-1) + + add = "" + if(k=="u") add = "\\b2" v + else if(k=="U") add = "\\u3\\b2" v + else if(k=="f") add = "\\f1" v + else if(k=="F") add = "\\f1\\u3" v + else if(k=="o") add = v + else if(k=="O") add = "\\u3" v + + if(add != "") { + wminfo = wminfo sep add "\\fr\\u5\\br" + sep = " " + } + } + wminfo = wminfo "\\ur" +} +$1 == "redshift" { + if($2 == "-x") { + redshift = "\\u2" + } else { + redshift = "" + } +} +$1 == "bat" { + val=$3 + if($2 == "Full") { + val=100 + } + if($2 == "Charging") { + tmp="-charging-" + } else { + tmp="Bat:" + + if(val < 10) { + sp=" " + } else if(val < 100) { + sp=" " + } else { + sp=" " + } + tmp=tmp sp val "%" + } + f = int((val+5) / 10) + battery = "\\u3" substr(tmp, 1, f) "\\u4" substr(tmp, 1+f, 10-f) "\\ur" + if((val < 5) && ($2 != "Charging")) { + battery="\\b2" battery "\\br" + } +} +$1 == "wifi" { + if($2 == "-") { + wifi="" + } else { + tmp=$2 + if(length(tmp) > 10) { + tmp=substr(tmp, 1, 8) ".." + } + f = int(($3+5) / 10) + wifi = "\\u3" substr(tmp, 1, f) "\\u4" substr(tmp, 1+f, 10-f) "\\ur" + } +} +{ + print "\\l" wminfo "\\c" window "\\r" wifi " " battery " " mem " " cpu " " redshift "R\\ur " date " " + fflush() +} diff --git a/mybar/mybar.sh b/mybar/mybar.sh new file mode 100755 index 0000000..5adc11e --- /dev/null +++ b/mybar/mybar.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +update_wminfo() { + bspc control --subscribe | while read line; do + echo "bspwm $line" + done +} + +update_time() { + while true; do + date '+date %a. %Y-%b-%d %H:%M' + sleep 1 + done +} + +update_mem() { + while true; do + awk ' +$1 == "MemTotal:" { total=$2; } +$1 == "MemFree:" { free=$2; } +$1 == "Buffers:" { buf=$2; } +$1 == "Cached:" { cache=$2; } +END { print "mem " int((total - free - buf - cache) / 1024); }' < /proc/meminfo + sleep 2 + done +} + +update_cpu() { + while true; do + grep '^cpu\s' < /proc/stat + sleep 2 + done +} + +update_bat() { + while true; do + battery -f "bat %s %d" + sleep 2 + done +} + +update_wifi() { + while true; do + wicd-cli -y -d | ~/mybar/wifi.awk + sleep 2 + done +} + +trap 'trap - TERM; kill 0' INT TERM QUIT EXIT + +update_wminfo > "$BAR_FIFO" & +update_time > "$BAR_FIFO" & +update_mem > "$BAR_FIFO" & +update_cpu > "$BAR_FIFO" & + +if test $(hostname) = "kch42-notebook"; then + update_bat > "$BAR_FIFO" & + update_wifi > "$BAR_FIFO" & +fi + +xtitle -sf 'window %s' > "$BAR_FIFO" & + +cat "$BAR_FIFO" | ~/mybar/mybar.awk | bar diff --git a/mybar/wifi.awk b/mybar/wifi.awk new file mode 100755 index 0000000..90d3f9d --- /dev/null +++ b/mybar/wifi.awk @@ -0,0 +1,22 @@ +#!/bin/awk -f + +BEGIN { + FS=":" + essid="-" + qual="0" +} +$1 == "Essid" { + split($2, parts, " ") + sep="" + essid = "" + for(i in parts) { + essid = sep parts[i] + sep="_" + } +} +$1 == "Quality" { + qual = $2 +} +END { + print "wifi " essid " " qual +} |