67b60c84e0
st is waaaaay to laggy in its rendering to my taste. cmatrix doesn't even run on it well. It was a great learning experience however. For instance I learned how the terminal title is determined and could improve it to make my terminal.sh work more reliably.
85 lines
2.4 KiB
Python
Executable file
85 lines
2.4 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
from datetime import datetime
|
|
import time
|
|
import pytz
|
|
|
|
|
|
try:
|
|
# if len(sys.argv) < 3:
|
|
# print("Usage: {scriptname} timezone_left timezone_right".format(scriptname=sys.argv[0]), file=sys.stderr)
|
|
# exit(1)
|
|
|
|
# try:
|
|
# tzleft = pytz.timezone(sys.argv[1])
|
|
# tzright = pytz.timezone(sys.argv[2])
|
|
# except pytz.exceptions.UnknownTimeZoneError as e:
|
|
# print('Unknown time zone "{}"'.format(e.args[0]), file=sys.stderr)
|
|
# exit(1)
|
|
|
|
|
|
hourhands = ""
|
|
minutehands = ""
|
|
|
|
def face_for(t):
|
|
minute = minutehands[ t.minute // 5 ]
|
|
hour = hourhands [ t.hour % 12 ]
|
|
|
|
return color_for(t) + "%{T8}%{F}%{F#000}%{O-27}" + hour + "%{O-27}" + minute + "%{T-}%{F}"
|
|
|
|
|
|
def color_for(t):
|
|
if t.hour < 5 or t.hour > 22:
|
|
return "%{F#888}"
|
|
elif t.hour < 10:
|
|
return "%{F#DB9}"
|
|
elif t.hour < 14:
|
|
return "%{F#DDB}"
|
|
elif t.hour < 19:
|
|
return "%{F#DDD}"
|
|
else:
|
|
return "%{F#D9B}"
|
|
|
|
|
|
while True:
|
|
utcnow = datetime.now(tz=pytz.utc)
|
|
localnow = datetime.now()
|
|
# leftnow = utcnow.astimezone(tzleft )
|
|
# rightnow = utcnow.astimezone(tzright)
|
|
|
|
localcolor = color_for(localnow)
|
|
|
|
khal_link = lambda x: "%{A1:i3-sensible-terminal -x khal interactive &:}" + x + "%{A}"
|
|
clock_link = lambda x, args: "%{A1:i3-sensible-terminal -x tty-clock -cC3 " + args + " &:}" + x + "%{A}"
|
|
|
|
print(
|
|
khal_link(
|
|
localcolor +
|
|
localnow.strftime("%A") +
|
|
"%{F} "
|
|
) +
|
|
|
|
# face_for(leftnow) +
|
|
|
|
clock_link(" %{T4}" + localcolor + localnow.strftime("%H") + "%{F}", "") +
|
|
clock_link("%{O2}%{T8}" + face_for(localnow), "-D") +
|
|
clock_link("%{O2}%{T4}" + localcolor + localnow.strftime("%M") + "%{T-}%{F} ", "-s") +
|
|
|
|
# face_for(rightnow) + " " +
|
|
|
|
khal_link(
|
|
" " +
|
|
localcolor +
|
|
localnow.strftime("%d %b") +
|
|
"%{F}"
|
|
),
|
|
|
|
flush = True
|
|
)
|
|
|
|
delay = 60 - localnow.second - (localnow.microsecond * 10e-7)
|
|
time.sleep(delay)
|
|
|
|
except Exception as e:
|
|
print(e, file=sys.stderr)
|