dotfiles/desktop/.config/waybar/modules/khal.py
Marty Oehme 6905ce3ea7
waybar: Change calendar block whitespace
When there are no new calendar events for the current day we do not
display any whitespace after the icon.
2024-07-25 22:01:50 +02:00

39 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python
# from https://gist.github.com/bjesus/178a9bd3453470d74803945dbbf9ed40
# List upcoming khal events in simple json container fit for waybar
#
# Hovering over the item displays all upcoming
# The icon changes if there are events today, and displays the
# closest upcoming one.
import datetime
import json
import subprocess
from html import escape
data = {}
today = datetime.date.today().strftime("%Y-%m-%d")
next_week = (datetime.date.today() + datetime.timedelta(days=10)).strftime("%Y-%m-%d")
output = subprocess.check_output("khal list now " + next_week, shell=True)
output = output.decode("utf-8")
lines = output.split("\n")
new_lines: list[str] = []
for line in lines:
clean_line = escape(line).split(" ::")[0]
if len(clean_line) and clean_line[0] not in ["0", "1", "2"]:
clean_line = "\n<b>" + clean_line + "</b>"
new_lines.append(clean_line)
output = "\n".join(new_lines).strip()
if today in output:
data["text"] = "" + output.split("\n")[1]
else:
data["text"] = ""
data["tooltip"] = output
print(json.dumps(data))