import json
import sys
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:
show_tokens = bool(settings_from_argv().get("showTokens", True))
for line in iter(sys.stdin.readline, ""):
line = line.strip()
if not line:
continue
try:
event = json.loads(line)
except ValueError:
continue
if event.get("kind") != "theme_changed":
continue
data = event.get("data", {})
tokens = data.get("tokens", {})
text = f"\U0001f3a8 {data.get('theme', '?')}"
if show_tokens:
text += f" · bg {tokens.get('background', '?')} · fg {tokens.get('foreground', '?')}"
print(json.dumps({"type": "SetWidget", "text": text}), flush=True)
if __name__ == "__main__":
main()