multiprocess bar
This commit is contained in:
parent
05a3e848a2
commit
5fb95bcab3
2 changed files with 50 additions and 6 deletions
|
@ -1,6 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd $(dirname $0)
|
||||
FIFO="/tmp/bar.fifo"
|
||||
|
||||
FORMAT_LEFT="%(music)s %(services)s %(diskspace)s"
|
||||
FORMAT_RIGHT="%(wifi)s %(battery)s %(clock)s "
|
||||
|
||||
icon_color="#A0A57E"
|
||||
icon() { echo -n "%{F$icon_color}"; printf '%b' "\ue$1"; echo -n "%{F-}"; }
|
||||
|
@ -74,7 +77,7 @@ battery() {
|
|||
info="%{F$color_battery_low}$level%%{F-}"
|
||||
fi
|
||||
|
||||
echo -n "%{A:I "battery 1061":}$icon $info%{A}"
|
||||
echo -n "%{A:I 'battery 1061':}$icon $info%{A}"
|
||||
}
|
||||
|
||||
clock() {
|
||||
|
@ -98,9 +101,26 @@ run_handler() {
|
|||
done
|
||||
}
|
||||
|
||||
run_worker() {
|
||||
SLEEP=$1
|
||||
TAG=$2
|
||||
COMMAND=$3
|
||||
( while true; do
|
||||
echo -n "$TAG "
|
||||
$COMMAND
|
||||
echo
|
||||
sleep $SLEEP
|
||||
done > $FIFO ) &
|
||||
}
|
||||
|
||||
while true; do
|
||||
echo "%{l} $(music) $(services) $(diskspace)%{r}$(updates) $(wifi) $(battery) $(clock) "
|
||||
sleep 1
|
||||
done | lemonbar -g 1366x15 -f "Stlarch:size=6:style=regular" -f "Terminus:size=8" -B "#88000000" | run_handler
|
||||
cd $(dirname $0)
|
||||
|
||||
[ -e "$FIFO" ] && rm -f $FIFO
|
||||
mkfifo $FIFO
|
||||
|
||||
|
||||
run_worker 1 clock clock
|
||||
run_worker 5 battery battery
|
||||
|
||||
( while true; do cat $FIFO; done ) | python ./barformatter.py "$FORMAT_LEFT" "$FORMAT_RIGHT" # | lemonbar -g 1366x15 -f "Stlarch:size=6:style=regular" -f "Terminus:size=8" -B "#88000000" | run_handler
|
||||
|
||||
|
|
24
scripts/barformatter.py
Executable file
24
scripts/barformatter.py
Executable file
|
@ -0,0 +1,24 @@
|
|||
from sys import argv, exit
|
||||
|
||||
class DefaultDict(dict):
|
||||
def __init__(self,default):
|
||||
super(DefaultDict, self).__init__()
|
||||
self.default = default
|
||||
|
||||
def __getitem__(self, key):
|
||||
return self.get(key, self.default)
|
||||
|
||||
if len(argv) <= 2:
|
||||
print("%s <format_left> <format_right>" % argv[0])
|
||||
exit(1)
|
||||
|
||||
format_left = argv[1]
|
||||
format_right = argv[2]
|
||||
cache = DefaultDict("")
|
||||
|
||||
_format = lambda: '%{l}' + (format_left % cache) + '%{r}' + (format_right % cache)
|
||||
|
||||
while True:
|
||||
print(_format())
|
||||
tag,content = input().rstrip('\n').split(' ',1)
|
||||
cache[tag] = content
|
Loading…
Reference in a new issue