import datetime
import json
import sys
import threading
def settings_from_argv() -> dict:
argv = sys.argv[1:]
for i, arg in enumerate(argv):
if arg == "--par-term-settings" and i + 1 < len(argv):
try:
value = json.loads(argv[i + 1])
except json.JSONDecodeError:
return {}
return value if isinstance(value, dict) else {}
return {}
def main() -> None:
settings = settings_from_argv()
use_24h = bool(settings.get("format24h", True))
stop = threading.Event()
def watch_stdin() -> None:
while sys.stdin.readline() != "":
pass
stop.set()
threading.Thread(target=watch_stdin, daemon=True).start()
while not stop.is_set():
now = datetime.datetime.now()
text = now.strftime("%H:%M" if use_24h else "%I:%M %p")
print(json.dumps({"type": "SetWidget", "text": f"\U0001f552 {text}"}), flush=True)
stop.wait(1.0)
if __name__ == "__main__":
main()