feat calfw: barevné zdroje s condition-case fallback (research verified)

This commit is contained in:
2026-02-24 22:34:56 +01:00
parent efeb4347ca
commit 5494b874eb

View File

@@ -1930,9 +1930,29 @@ current frame."
(evil-set-initial-state 'calfw-details-mode 'emacs)
(defun my/open-calendar ()
"Otevři calfw org kalendář."
"Otevři calfw s barevnými zdroji. Suky=modrá, Klára=žlutá, Rodina=zelená, Agenda=černá.
Falls back to calfw-org-open-calendar pokud něco selže."
(interactive)
(calfw-org-open-calendar))
(condition-case err
(let ((sources '()))
;; Agenda zdroj — org-agenda-files, nil = automaticky
(push (calfw-org-create-source nil "Agenda" "black") sources)
;; CalDAV soubory — jen pokud existují
(dolist (spec '(("Suky" "~/org/caldav/suky.org" "SteelBlue")
("Klára" "~/org/caldav/klara.org" "Gold")
("Rodina" "~/org/caldav/family.org" "ForestGreen")))
(let ((file (expand-file-name (nth 1 spec))))
(when (file-exists-p file)
(push (calfw-org-create-file-source
(nth 0 spec) file (nth 2 spec))
sources))))
(calfw-open-calendar-buffer
:contents-sources (nreverse sources)
:view 'month
:sorter 'calfw-org--schedule-sorter))
(error
(message "calfw colored sources failed (%s), fallback." (error-message-string err))
(calfw-org-open-calendar))))
(map! :leader "o C" #'my/open-calendar))