feat calfw: barevné zdroje per kalendář (Suky=modrá, Klára=žlutá, Rodina=zelená, Agenda=černá)

This commit is contained in:
2026-02-24 22:16:32 +01:00
parent bbbb5ec803
commit fdaf91e7f6

View File

@@ -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))