diff --git a/config.el b/config.el index d2b7d12..094502d 100644 --- a/config.el +++ b/config.el @@ -1930,18 +1930,30 @@ current frame." (evil-set-initial-state 'calfw-details-mode 'emacs) (defun my/open-calendar () - "Otevři calfw se všemi kalendáři: org-agenda + caldav/ soubory." + "Otevři calfw s barevnými zdroji per kalendář. + Suky = modrá | Klára = žlutá | Rodina = zelená | Agenda = černá (default)" (interactive) (require 'calfw) (require 'calfw-org) - ;; Přidej caldav/ soubory do calfw jako další zdroj - (let* ((caldav-dir (expand-file-name "~/org/caldav/")) - (caldav-files (when (file-directory-p caldav-dir) - (directory-files caldav-dir t "\\.org$"))) - (org-agenda-files (append org-agenda-files caldav-files))) - (if (fboundp 'calfw-org-open-calendar) - (calfw-org-open-calendar) - (cfw:open-org-calendar)))) + (let* ((cd (expand-file-name "~/org/caldav/")) + (f (lambda (path) (expand-file-name path cd))) + (sources + (delq nil + (list + ;; Org-agenda položky — černá, default styl + (calfw-org-create-source org-agenda-files "Agenda" "black") + ;; CalDAV — barevné zdroje + (when (file-exists-p (funcall f "suky.org")) + (calfw-org-create-file-source "Suky" (funcall f "suky.org") "SteelBlue")) + (when (file-exists-p (funcall f "klara.org")) + (calfw-org-create-file-source "Klára" (funcall f "klara.org") "Gold")) + (when (file-exists-p (funcall f "family.org")) + (calfw-org-create-file-source "Rodina" (funcall f "family.org") "ForestGreen")) + (when (file-exists-p (funcall f "placeholders.org")) + (calfw-org-create-file-source "Placeholders" (funcall f "placeholders.org") "gray60")))))) + (calfw-open-calendar-buffer + :view 'month + :contents-sources sources))) (map! :leader "o C" #'my/open-calendar))