aboutsummaryrefslogtreecommitdiff
path: root/tmuxrdr/plugin/bin/clock-mode
blob: 220d53d35a921f371b6967ee6853324ecfca79dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
# tmux prefix+t (clock-mode): a big 24-hour clock in clock-mode-colour (blue),
# centred, until any key. Run as a popup.
trap 'stty "$tty"; printf "\033[0m\033[?25h"' EXIT
tty="$(stty -g)"
stty -icanon -echo min 0 time 10
printf '\033[?25l'
while :; do
    set -- $(stty size)
    printf '\033[H\033[2J\033[34m'
    date '+%H:%M' | awk -v rows="$1" -v cols="$2" '
        BEGIN {
            f["0"] = "###|#.#|#.#|#.#|###"; f["1"] = "..#|..#|..#|..#|..#"
            f["2"] = "###|..#|###|#..|###"; f["3"] = "###|..#|###|..#|###"
            f["4"] = "#.#|#.#|###|..#|..#"; f["5"] = "###|#..|###|..#|###"
            f["6"] = "###|#..|###|#.#|###"; f["7"] = "###|..#|..#|..#|..#"
            f["8"] = "###|#.#|###|#.#|###"; f["9"] = "###|#.#|###|..#|###"
            f[":"] = ".|#|.|#|."
        }
        {
            for (r = 1; r <= 5; r++) line[r] = ""
            for (i = 1; i <= length($0); i++) {
                split(f[substr($0, i, 1)], g, "|")
                for (r = 1; r <= 5; r++) line[r] = line[r] g[r] "."
            }
            w = length(line[1]) * 2
            for (i = 1; i <= int((rows - 5) / 2); i++) print ""
            for (r = 1; r <= 5; r++) {
                s = line[r]; gsub(/#/, "██", s); gsub(/\./, "  ", s)
                printf "%" int((cols - w) / 2) "s%s\n", "", s
            }
        }'
    [ -n "$(dd bs=1 count=1 2>/dev/null)" ] && break
done