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) (evil-set-initial-state 'calfw-details-mode 'emacs)
(defun my/open-calendar () (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) (interactive)
(require 'calfw) (require 'calfw)
(require 'calfw-org) (require 'calfw-org)
;; Přidej caldav/ soubory do calfw jako další zdroj (let* ((cd (expand-file-name "~/org/caldav/"))
(let* ((caldav-dir (expand-file-name "~/org/caldav/")) (f (lambda (path) (expand-file-name path cd)))
(caldav-files (when (file-directory-p caldav-dir) (sources
(directory-files caldav-dir t "\\.org$"))) (delq nil
(org-agenda-files (append org-agenda-files caldav-files))) (list
(if (fboundp 'calfw-org-open-calendar) ;; Org-agenda položky — černá, default styl
(calfw-org-open-calendar) (calfw-org-create-source org-agenda-files "Agenda" "black")
(cfw:open-org-calendar)))) ;; 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)) (map! :leader "o C" #'my/open-calendar))