3 405b6660 2022-02-22 op This script is the event generator for the bar. The ideas is that
4 405b6660 2022-02-22 op it sits waiting for stuff to happen (window focus, date change,
5 405b6660 2022-02-22 op music player, ...)
7 405b6660 2022-02-22 op #!/usr/bin/env rc
11 405b6660 2022-02-22 op Kill the player monitor and the date subshell upon exit
15 405b6660 2022-02-22 op kill $playerpid
18 405b6660 2022-02-22 op fn siguhp { quit }
19 405b6660 2022-02-22 op fn sigint { quit }
21 405b6660 2022-02-22 op The idea behind `uniq_linebuffered' is to avoid refreshing the bar
22 405b6660 2022-02-22 op every tick if the state doesn't change. It doesn't work for some
23 405b6660 2022-02-22 op reason however...
25 405b6660 2022-02-22 op # XXX: for some reasons this don't work
26 405b6660 2022-02-22 op fn uniq_linebuffered {
27 405b6660 2022-02-22 op awk '$0 != l { print ; l=$0 ; fflush(); }'
30 405b6660 2022-02-22 op Simulate the tag and play event at the start to force the process
31 405b6660 2022-02-22 op to update the tags and music info.
36 405b6660 2022-02-22 op Date event generator:
39 405b6660 2022-02-22 op date=`{date +'%H:%M, %Y-%m-%d'}
40 405b6660 2022-02-22 op printf 'date\t%s\n' $"date
41 405b6660 2022-02-22 op sleep 10 || break
42 405b6660 2022-02-22 op } | uniq_linebuffered &
45 405b6660 2022-02-22 op Music player event generator:
47 0a0c91f4 2022-05-29 op amused monitor play,next,prev,jump &
48 405b6660 2022-02-22 op playerpid=$apid
50 405b6660 2022-02-22 op Window manager event generator:
54 405b6660 2022-02-22 op Kill everything upon exit