Blame


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