waybar: add start/end times to calendar, general improvements

This commit is contained in:
Konstantin Koslowski 2021-05-10 10:13:22 +02:00
parent 3ddba3831d
commit b6180db9f6
2 changed files with 38 additions and 20 deletions

View file

@ -12,26 +12,40 @@ days = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Su
next_week = (datetime.date.today() + datetime.timedelta(days=10)).strftime("%Y-%m-%d") next_week = (datetime.date.today() + datetime.timedelta(days=10)).strftime("%Y-%m-%d")
output = subprocess.check_output("khal list --format \"{title}\" now "+next_week, shell=True) title = subprocess.check_output("khal list --format \"{title}\" now "+next_week,
output = output.decode("utf-8") shell=True).decode("UTF-8").split("\n")
start = subprocess.check_output("khal list --format \"{start}\" now "+next_week,
shell=True).decode("UTF-8").split("\n")
end = subprocess.check_output("khal list --format \"{end}\" now "+next_week,
shell=True).decode("UTF-8").split("\n")
lines = output.split("\n") lines = ""
new_lines = [] for i in range(len(title)):
for line in lines: t = escape(title[i])
clean_line = escape(line).split(" ::")[0] s = escape(start[i])
# bold headers e = escape(end[i])
if len(clean_line) and clean_line.split(",")[0] in days: line = ""
clean_line = f"\n<b>{clean_line}</b>" if len(t) and t.split(",")[0] in days:
new_lines.append(clean_line) line = f"\n<b>{t}</b>"
output = "\n".join(new_lines).strip() else:
ss = s.split(" ")
es = e.split(" ")
if len(es) == 1 or len(ss) == 1:
line = f"<i>{t}</i>"
else:
line = f"{ss[1]} - {es[1]}: {t}"
today_text = datetime.date.today().strftime("%a, %d %b") lines += f"{line}\n"
if today in output:
event = output.split('\n')[1] if today in lines:
data['text'] = f"{today_text}: {event}" event = lines.split('\n')[2]
if len(event) > 30:
event = f"{event[0:30]}"
data["text"] = f"{event}"
data["alt"] = "event"
else: else:
data['text'] = f"{today_text}" data["text"] = "-"
data["alt"] = "idle"
data['tooltip'] = output data["tooltip"] = lines
print(json.dumps(data)) print(json.dumps(data))

View file

@ -41,11 +41,15 @@
"format": " <span foreground='#268bd2'></span> " "format": " <span foreground='#268bd2'></span> "
}, },
"custom/calendar": { "custom/calendar": {
"format": "{}", "format": "{icon} {}",
"tooltip-format": "{}", "tooltip-format": "{}",
"tooltip": true, "tooltip": true,
"return-type": "json", "return-type": "json",
"interval": 300, "interval": 300,
"format-icons": {
"event": "<span foreground='#b8bb26'></span> ",
"idle": " "
},
"escape": false, "escape": false,
"exec": "$HOME/.config/sway/bin/waybar_khal.py 2> /dev/null", "exec": "$HOME/.config/sway/bin/waybar_khal.py 2> /dev/null",
"on-click": "foot -T float khal interactive" "on-click": "foot -T float khal interactive"
@ -79,7 +83,7 @@
"exec-if": "pgrep plexamp" "exec-if": "pgrep plexamp"
}, },
"clock": { "clock": {
"format": "<span foreground='#ebdbb2'> </span>{:%H:%M}", "format": "<span foreground='#ebdbb2'> </span>{: %a, %b %d, %H:%M}",
"on-click": "foot -T float khal interactive" "on-click": "foot -T float khal interactive"
}, },
"cpu": { "cpu": {