Blob


1 # process.awk
3 This awk script processes the events generated by `event-gen' and
4 outputs the text of the bar for dzen2. It needs some variable to
5 be defined on the command line, see `panel'.
7 BEGIN {
8 visible = true
9 }
11 /^tag/ {
12 cmd = sprintf("herbstclient tag_status %s", monitor)
13 cmd | getline
14 for (i = 1; i <= NF; i++) {
15 tags[i] = $i
16 }
17 close(cmd)
18 }
20 /^date/ {
21 $1 = ""
22 date = substr($0, 2)
23 }
25 /^quit_panel/ {
26 exit 0
27 }
29 /^reload/ {
30 exit 0
31 }
33 /^focus_changed/ || /^window_title_changed/ {
34 $1 = ""
35 $2 = ""
36 windowtitle = substr($0, 3)
37 }
39 /^play/ || /^next/ || /^prev/ {
40 cmd = "amused status"
41 cmd | getline
42 $1 = ""
43 file = substr($0, 2)
44 close(cmd)
46 # poor man basename
47 player = gensub(".*/", "", 1, file)
48 # and strip out the extension
49 player = gensub("\.[A-Za-z0-9]+$", "", 1, player)
50 }
52 {
53 for (i = 1; i <= length(tags); i++) {
54 t = tags[i]
55 if (t ~ "^#") {
56 printf("^bg(%s)^fg(%s)", selbg, selfg)
57 } else if (t ~ "^\\+") {
58 printf "^bg(#9CA668)^fg(#141414)"
59 } else if (t ~ "^:") {
60 printf "^bg()^fg(#222222)"
61 } else if (t ~ "^!") {
62 printf "^bg(#FF0675)^fg(#141414)"
63 } else {
64 printf "^bg()^fg(#d6d6d6)"
65 }
67 printf(" %s ^bg()^fg()", substr(t, 2))
68 }
70 printf("| %s ", date);
72 if (player != "") {
73 printf("| %s ", player);
74 }
76 printf("| %s ", windowtitle)
78 printf("\n", right)
79 fflush()
80 next
81 }