from tkinter import * from tkinter import ttk import sys import subprocess calendar = subprocess.check_output(["cal", "-m"]) calendar = calendar.decode("utf-8") calendar = calendar.split("\n") calendar = [x.split() for x in calendar] today = subprocess.check_output(["date", "+\"%d\""]) today = today.decode("utf-8")[:-1] today = today.strip("\"") month_year = calendar[0] calendar_fields = [calendar[1], calendar[2], calendar[3], calendar[4], calendar[5], calendar[6]] root = Tk() root.geometry("+0+0") root.attributes("-type", "dialog") frame = ttk.Frame(root) frame.grid() date_label = ttk.Label(frame, text=" ".join(month_year)).grid(row=0, columnspan=7) prev_month_button = ttk.Button(frame, text="<", command=exit, width=1).grid(row=0, column=0) next_month_button = ttk.Button(frame, text=">", command=exit, width=1).grid(row=0, column=6) def get_agenda(date): date = "2022-12-" + date agenda = subprocess.check_output(["khal", "list", date, date]) agenda = agenda.decode("utf-8")[:-1] agenda = agenda.split("\n")[1] return agenda row_count = 1 column_count = 0 for r in calendar_fields: for c in r: if c == today: label = ttk.Label(frame, text=c, background="green").grid(row=row_count, column=column_count) else: label = ttk.Label(frame, text=c).grid(row=row_count, column=column_count) column_count += 1 column_count = 0 row_count += 1 agenda_label = ttk.Label(frame, text=get_agenda(today)).grid(row=row_count+1, columnspan=7) def exit(): sys.exit() root.mainloop()