46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
#!/bin/bash
|
||
|
||
state=0
|
||
sleep_pid=0
|
||
|
||
function toggle() {
|
||
state=$(((state+1)%3))
|
||
|
||
if [ "$sleep_pid" -ne 0 ]; then
|
||
kill $sleep_pid >/dev/null 2>&1
|
||
fi
|
||
}
|
||
|
||
trap "toggle" USR1
|
||
|
||
function bclock() {
|
||
local row0=("⠀" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
|
||
local row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
|
||
local row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
|
||
local row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
|
||
local row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
|
||
local row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
|
||
local chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
|
||
|
||
local hour=$(date +"%H")
|
||
local minute=$(date +"%M")
|
||
local second=$(date +"%S")
|
||
[[ $hour = 0* ]] && hour=${hour:1:1}
|
||
[[ $minute = 0* ]] && minute=${minute:1:1}
|
||
[[ $second = 0* ]] && second=${second:1:1}
|
||
|
||
echo " ${chars[$hour]} ${chars[$minute]} ${chars[$second]}"
|
||
}
|
||
|
||
while true; do
|
||
if [ $state -eq 0 ]; then
|
||
bclock
|
||
elif [ $state -eq 1 ]; then
|
||
echo " $(date +'%H:%M:%S')"
|
||
else
|
||
echo " $(date +'%a, %m/%d/%Y')"
|
||
fi
|
||
sleep 1 &
|
||
sleep_pid=$!
|
||
wait
|
||
done
|